无言斋由xell进行随机更新,他是Einstein意义上的无神论者,Hayek意义上的自由主义者,Popper意义上的理性主义者,目前正在从事不赚钱的跨学科研究,最喜欢吃白切鸡,不看电视,认为一首歌的词和曲同样重要,坚决主张人权高于宠物权,擅长使用计算机、看书和睡觉,不擅长经商以及成为公务员。虽然他是Google的拥护者,但他愿意公布的电邮地址是(同这个页面风格一样简单的)xell@w.cn
博士论文
2008-11-29|19:08:39| ‼ [3] | √ [0] 

博士毕业论文的课题进行了近两年了,虽然还没有最终结果,但多少有些可以拿得出台面的东西。于是,上周终于开始动笔写论文。我在这里做一点归纳和总结,也算对这个博客有点交代。

我所关注的问题要表述起来并不困难,读过两三本复杂理论、统计物理学之类的科普读物的朋友都能明白:一边是微观个体层面,一边是宏观现象层 面,究竟二者的关联是什么?只具有有限知识和有限影响力的“随机”个体,如何能形成宏观的大规模“有序”现象?超越个体层面的宏观现象,又如何反过来作用 于每个个体身上?这其实就是一般系统论的核心问题。

对这个问题的思考一般有两种进路——科学的和形而上学的。在科学技术手段未具齐备之时,例如从人类开始思考以来,一直到二十世纪初,人类 通常都是用形而上学的方式来考虑它,由此出现的是许多厚如砖块的哲学著作,以及以此为荣耀的哲学家和思想家。在谈论系统辩证观这方面,中国人还是有相当地 位的,说引以为傲也不为过。也正因如此,大量当代中国学者依然在老路上顽固地坚持着,几乎完全无视研究方法和手段在最近一百年来的天翻地覆之变革。对于这 些“老派”知识分子,我保持尊敬,但我不想称赞他们什么。以上就是我的出发点。简而言之,我不打算用那套繁琐文人的方法去做研究,说得恶毒一点,陷进形而 上学之中就好比跟猪打架,你除了弄得自己一身脏,什么也得不到(严正声明,此句对事不对人)。形而上学这东西的优点和缺点都一样:它不可反驳,因此最可能 的结果就是争得头破血流而无所建树,没意思。

我打算采用技术路线,它意味着两个意思:其一,将大问题缩小到可以解决的领域中,不要谈论“大词”,而是去研究“具体的事情”;其二,准备好充分的、适合的、有效的工具。

对于第一点,我“忍痛”放弃了许多我感兴趣的论题,而将我的研究缩小为一点:具有有限知识的个体艺术家的自我创作、自我发展和彼此互动、互 相影响,如何产生群体性的、跨越个体生命周期的艺术风格和艺术流派。事实证明,这个课题依然太“大”了,依然搞得我无法招架。这个教训,我在以后的研究中 将时刻牢记,但现在,只能硬着头皮搞完它。

对于第二点,要从两方面看待:首先,存在着什么适合的研究技术?其次,以我的能力,能用的又有哪些?我集中调研的成果是,由于计算数学和 计算机技术这几十年来迅猛发展,这方面可用的武器非常多(其实是多到令人晕眩)。但显然的是,如果你不是蓝博,给你一挺重机枪,你扛都扛不起来,就别说拎 着它在丛林里上蹿下跳了。我一边建立理论模型,一边进行实际仿真,慢慢地总结出了几个方法,它们构成了我的本项课题的核心,分别是:

  • 在模拟个体艺术家的创作方面,应用的是进化计算,更具体地说,用的是进化计算中的一个分支:遗传算法。当然,由于艺术创造活动实在是非常特别,因此古典算法无效,我慢慢摸索出了一套自己的方案。
  • 在模拟艺术家们的互动方面,应用的是基于 Agent 的建模与仿真(即 ABMS)。这玩意在三十多年前还算新鲜事,而是十年前,还很难走出大型机,而现在已经可以在个人桌面电脑上玩啦(虽然中规模仿真还是很慢很慢……)。
  • 在分析数据方面,应用的是复杂网络分析和一些新的统计方法,当然,传统统计技术肯定也是在用的。这方面,多亏数学家、统计物理学家和社会学家们的通力合 作,还得多亏时髦的 Web 2.0 和 SNS,使得这些原本偏居数学世界中一隅的“冷门”能成为相对的热门,由此带来了丰硕的理论和成果。

上面提到是理论,而与这些理论对应的工具也算齐备(否则就又变成形而上学了),ABMS 方面,Java + Eclipse + Repast Simphony 已足以满足我当下的要求,进化计算方面,我放弃了白手起家,直接采纳 JGAP 方案。数据分析方面选择更多,从专门的 Ucinet、R 到通用的 Mathematica 等等。另外,数据存储和处理用了 AMP 构架。当然,这些都只是框架,具体到每个研究,需要研究者自己在这个框架上面搭台唱戏。像 JGAP,它给出的是古典的遗传算法,我花了大半年,将之改得面目全非,以致于有时候我都想在它的 SVN 上建新的 branch,等等,按下不表。

到今年暑假,我的数学建模和计算机编程工作基本告一段落,开始进行数据分析。由此,我得直面复杂研究的一个不可避免的现象。模型在一方面 是现实的倒影(因此希望它越接近现实越好),但另一方面它自己也有自己的价值(它是活的,是另一个现实)。举个例子,依据某个参数集,在我的虚拟世界中, 艺术家们的“拉帮结伙”现象非常频繁,他们的社会交际活动“喜怒无常”,根本不按常理出牌。这意味着:

  • 这不大符合现实,因此这个参数集的设定失败了,或者至少非常糟糕。
  • 这很可能非常符合现实(只是这个现实还没被人注意到),因此这个模型价值非常。
  • 这与现实无关,它提出了另一种可能的艺术景观,值得做理论研究。
  • 这很有趣,无论其与理论或现实的关联如何,它至少表明了艺术世界的深刻本质。

这上面哪一点是对的?哪一点都对。因此我们才说复杂研究是一趟混水,没事别去趟。对于我来说,我只能不断地改进、调整我的模型,看看它到底能产生出 何种可以做最乐观解释的成果——这其实是科学的天然品性。天知道培养皿中的这一坨,是不可宽恕的实验失误(竟然让异物飘进了实验室!天啊,扣工资!),还 是改变人类的发现(青霉素!诺贝尔奖!挽救了无数人的生命!)。

按上所述,我的课题完全是一个开放性的课题,可以弄出无数的变数。但我必须将之封闭,因为我要把论文写完!当然,我早就想到这一点了,因 此我现在的任务很明确:我要证明,不需要全局参数和全局调控,彼此平行的有限个体艺术家所构成的小世界中,依然能够出现宏观可辨认的(也即,具有显著统计 意义的)跨个体、跨时期的风格。我基本上已经可以做到这一点了。另外,由于相关领域的文献一直在持续增加,而且新方法、新结果出现得很快,所以我得做好准 备,甚至到提交前一天,都要继续改动和补充。

对于论文的主体部分,心里还是有底的。毕竟在一边研究的过程中,资料也一直在“储备”中,论文需要的文献数据库、伪代码、流程图甚至部分 数据报表都已在不同时期做好,需要的时候直接使用即可。为难的倒是论文的“导言”部分,在那里我要和颜悦色地与从启蒙时代以来就一直活跃的“反科学主义”做斗争,要对那些“本应如此,不必多言”的东西唠唠叨叨地证明它的合法性,等等。但无论如何,写吧。

  >[伪专业研究
无题
2008-10-13|13:27:31| ‼ [0] | √ [0] 
  >[看图说话
个人资料的备份与同步
2008-10-01|17:23:04| ‼ [1] | √ [0] 

  在经历过一次惨烈的硬盘损坏之后,我开始有规律地对重要资料进行备份,一段时间以来,试验了各种软件和方案,在此分享一下。
  我的重要资料包括文档、代码、数据、重要软件的设置等等,这些资料分散在硬盘的十几个甚至几十个目录之中,并且几乎每天都在变化(变化包括更新和回退)。我想我的情况肯定不是特例,这其中的麻烦也是许多人都在面临的。用手工的方式进行复制显然是愚蠢的方案,不仅容易出错或遗漏,而且非常浪费时间,当你隔几天就要从几十个目录中复制几千个细碎文件的时候,无聊乏味的体力活足以让你疯狂。因此,必须借助专门的软件。经过长期试验,我推荐以下三款软件/服务,并用它们组成了一个简单而有效的解决方案:
  1. Beyond Compare,这是一款目录和文件的比较软件。有很多同类软件可以完成这项任务,而且其中一些还是开源的(例如很有名的 WinMerge),但我坚持用它是因为它确实是同类中最好的,谁用谁知道。最新的大版本是3,整合了资源管理器右键,操作界面也大幅度更新,非常容易上手。
  2. JFileSync,这是一款同步软件,开源。同步软件领域也有许多同类软件在一争高下,许多商业软件确实能提供额外的专业级别操作。但就我的应用而言,JFileSync完全能满足要求(而且免费),它提供多种同步方案,用 Profile 的形式来管理同步项目,让你一次就能以多种同步方案,同步任意数量、任意位置的资料。这个软件是用 Java 写的,这也是我倾心于它的原因,实际上我一直打算参与开发——这是题外话了。
  3. DropBox,免费的在线资料备份与同步服务,一个字,赞!下面有详细介绍。

  我的解决方案大体如下:用 JFileSync,将硬盘上的资料一次性同步到某个设备中,例如硬盘上的某个用于备份的分区、移动硬盘或U盘等等,然后用 DropBox 将备份资料上传到网络上。在这些步骤中,如果需要,用 BC 来进行监视和手工同步。
  具体来说,我在硬盘上划出了一个5G的分区,并且在里头建立了一个 bk 目录,这个目录中的所有文件就是我需要备份的资料。同步和备份的任务由 JFileSync 来完成:在 JFileSync 中建立一个新的 Profile,它允许你指定任意数量的规则,例如规则一是将A目录中的文件同步至 bk,规则二是将B目录中的文件同步至 bk,等等。JFileSync 提供了9种同步方案,包括强制使得目的目录与源目录相同,或仅仅同步目录中的结构而非文件,等等。我的策略是单向同步,但如果你需要的不仅是备份,还包括多人多机器协作,那么双向同步才符合你的要求。建立好了 Profile 之后,以后每次操作,仅需点几下鼠标即可,非常便利。
  在单独的硬盘分区上进行备份,其实还是将所有鸡蛋装在同一个篮子里,因此我也用U盘做额外备份。这个时候就是 BC 的用武之地了。第一次的时候,手工将 bk 目录全部复制到U盘上,在这之后,用 BC 来判断到底更新或改动了什么文件,然后用 BC 的各种丰富的同步功能,仅仅同步这些更改过的文件即可。当然,JFileSync 也可以实现这一点,但直观性和操作性没那么好,更主要的是,JFileSync 需要用所谓的 JFS Server 这种高级特性来完成这项任务(除非你能保证你的U盘的盘符每一次都一样,这需要额外的技巧)。哪种方法更好,全看各人情况了。但 BC 的作用就在于,它提供足够专业的比较功能,因此这个软件不仅对资料的备份与同步有用,它也可以应用在许多其他场合;反正它已经成为我的必备软件之一。
  将硬盘上的或U盘上的资料备份到网络上,这里的意义就不仅仅是多加一重保障,而且能带来更方便的应用。当我被迫使用别人的电脑的时候,当我在其他城市而需要打印一份资料的时候,只要有网线就OK——这一切的关键在于,网络上的东西必须随时是同步好了的,能反映数据的最新状况,而且这些东西必须利于提取。这几年网络硬盘领域很热闹,国内国外都有很好的服务商,但这种服务是不够的,因为网络硬盘以单文件为对象进行组织,不提供目录结构,更不提供自动同步服务。我的项目源代码目录下面有很多层子目录,数千各类文件汇集于其中,大多数文件只有几K而已;如果使用网络硬盘,我(只能)将整个目录打包并上传;当这数千个文件中的几个文件有了变动,我就只能再打包,再上传,而之前的网络上的文件也就作废了,就更别提当我只需要其中的几个文件的时候,我还得把整个压缩包下载下来。
  DropBox 很好地满足了我的要求,而且它是免费的!其它的此类网络服务多多少少都要钱,而且基本上是国外的,还得用外汇,就凭这一点,它完胜。它提供2G免费空间,单文件最多350兆,文件数量不限——对于个人用户,这已经足够啦。而且它提供了一个简单得根本不需要用户插手、自动在后台运行的客户端软件。启动这个软件,告诉它哪个目录下的文档是要上传和同步到网络中的(例如我的 bk 目录),然后就没我的事情了,它将自动搞掂剩下的工作:它会自动分析哪些文件有更改,并且只上传这些文件,它会优先考虑上传小文件以避免网络阻塞,并且自动调节上传带宽。在 DropBox 的网站上,给出的是一个跟你的本地硬盘一致的目录结构,想下载哪个小文件,直接下载即可,也可以将整个目录打包为 zip 一起下载(顺便指出,DropBox 默认就支持 HTTPS 加密)。DropBox 早一阵子得要邀请码才能注册,现在已经全面开放了,因此,你要做的就是注册个用户名,下载并运行那个小小的客户端,然后,享受这一切即可。
  在暂时没有更专业的需求之前(例如多人协作,这需要版本管理),用上面的方案来给个人资料加保险已足以应付任何需求。如果你有更好的方案或更好的软件替代,也请分享出来。

注:DropBox 目前只支持同步一个指定目录中的所有内容。根据其官方论坛上的介绍,它的下一个版本将允许用户任意指定要同步的多个目录。因此在现阶段,你只能把所有要备份/同步的内容集中到某一个目录里头去(如上所述,在 JFileSync 等同步软件的辅助下,这是很简单的事情)。

  >[伪专业研究
分页∷共15页 1 2 3 4 5 6 7 8 9 10 下一页 最后一页