头发的故事(上)
[公告]本博客开通在线聊天
【新闻翻译】上海亟需乳房按摩师



先进地区的素质落后人士
10月24日:我的1024
我的1024
2006年10月24日 星期二 阴
当不得不睁开眼睛的时候,我极不情愿。昨夜因为写博文《文凭炙手,知识无用》,一点才上床睡觉。明显没有睡够,眼皮抗议不睁开,却没有拖的余地,一上午的英语课。
匆匆忙忙,还是在八点以前赶到了教室。特冷,天上的云是铅色的,像要下雪了。我只穿了两件衣服,不还是秋天吗?北京今年气候特反常,夏天阴雨连绵,无比凉爽,大约抢了秋天的戏,导致秋天没过两天,就夭折了,冬天卷土而来。我还没看够美女的大腿,气候已然逼美女们裹上了严实的衣服。
口语课,喜欢喝康师傅绿茶的外教Wayne说今天身体感觉有些有趣(funny),估计快感冒了,我第一次听到funny有这样的用法。感冒可不是funny的事。结果课还没上完,老外就利用我们练习的空档蜷在一旁,裹着衣服发抖。果真中招了。我今天也冷得筛糠,心里暗暗提醒自己,春捂秋冻,冻过火了,得赶紧加衣服。
写作课,外教Doug说他们从天津骑自行车到北京的疯狂经历。我曾经盘算过骑车绕四环一周,想想四环太大了,三环吧,三环也太大了,二环吧,二环车太多,一环……没有一环,只有长安街,长安街太远,还是在公寓骑一圈了事。老外有种精神是我们没有的,想到啥做啥,无所畏惧。我们往往瞻前顾后得太多,瞻前顾后完了,一件事也完蛋了。上课讲了段落写作的要点,然后继续国外酒吧流行的Pub Quizz比赛。Pub Quizz要求每个队起一个创意的名字,我们恶搞微软(Microsoft),起名巨硬(Macrohard),怎么听,都像春药的名字。由于名字就如此金枪不倒,两周前的第一次比赛,我们组一举夺冠。这一次,我们又夺冠了,毫无悬念。名字是多么重要哇。
吃了午饭到实验室,该好好工作了。连接上服务器,发现昨天跑的程序,到现在还没跑完。我这人良心大大的坏,40个语料,每个语料聚类100次,合计4000次,然后甩到服务器上让它慢慢计算聚类评价参数。电脑要有意识,早控告我虐待机器了。刚算出四分之一,等结果得等到猴年马月。电脑是这世界上最任劳任怨的劳模,当我晚上睡觉做春梦,当我周末休息约会美女的时候,它从来没有停顿过一秒,依旧马不停蹄地计算,没人安慰它一声感谢它一句。如果做出了成绩,那自然是我们的而不是它的。它无私而伟大。
实验室发包了,为了庆祝建所50周年,相当扎实的公文包,净重就有两斤。可以用来装笔记本,可惜我没有。这不是逼我买一台吗?
趁着服务器为我服务的空当,上网看看,看到了子尤逝世的消息。多好的一个年轻人,就这样去了。同样的一天,有人快乐,有人悲伤。他最让我感动的,是面对疾病的乐观。因为这种乐观,他成了一名战士。战士可以倒下,但不可以被打败。他没有输。对命运的抗争,是人类最宝贵的精神之一,很多人抗争命运,还是倒下了,但整个人类却因为这种精神而源远流长。
晚上吃饭后回去,开始了生活的另一半。下班之前的生活属于计算机,下班之后,为文字让路。看自己想看的,写自己想写的。上网碰到暗河,向她推荐最近发现的优秀博客“一把柳叶刀”,她也很感兴趣,因为一眼看到了里面关于中医的内容,她最近颇为关注关于中医的争论。但我告诉她,这个博客最特色的地方不是中医的部分,而是博主记录很多人的死亡,以及这些人死亡前所做的事情,这些事让人震撼。和柳叶刀一样,暗河工作在医院,每天目睹人的生老病死,很哲学。而对于想写一些东西的人,这些见闻绝对是巨大的精神财富。文学似乎永远绕不开死亡这个庄严的话题。
九点和女友煲电话,半小时。接着洗澡。沐浴更衣后开始写博文《文笔、观点、立场》,真够虔诚。一直写到25日凌晨接近1点。全寝室最后一个上床,我噼里啪啦的敲字声弄得室友翻来覆去睡不着觉。
当最终躺上床,作为一天的结束,我短信骚扰了一位美女。
文笔、观点、立场
文凭炙手,知识无用
令人垂涎的几本书
跳舞的美女
上帝的程序(下)
请先阅读:上帝的程序(上)
而这些程序,是如何诞生的?
有神论者认为动物精妙的构造、绝妙的本能,完美地印证了上帝的存在。那么,基于这样的认知,这些程序被看作是上帝编写的。仁慈的上帝编写这样的程序是为了保证每一种动物在自然界的存活繁衍,因此,他将生存繁衍作为这段程序的总体目标,将自然环境等外部因素作为程序的限制条件,并将总体目标一步一步细化,最终设计出生物的每一个细节,正如前面所说,这是自顶向下的设计方法。
而无神论者会认为,这个特定的上帝、造物主不是别的,正是自然界。这精妙程序的形成,不是基于特别的设计,而是源于基因的交叉变异优胜劣汰。基因上的每一位,可以看作是一个最为本原的语句。这些语句是如此本原,它们能仅仅通过交叉变异优胜劣汰就组合成有意义的程序并完成强大的功能吗?这听上去像天方夜谭。交叉和变异看上去毫无理由:交叉是两个基因选择一个特定交点,交换遗传物质;变异是基因上某一位突然发生改变。这样没有理由的行为所缔造的后代真能比前代强吗?能。因为交叉变异的同时,还有优胜劣汰。交叉和变异可能使得后代弱过前代,也可能强过前代。但适应能力弱的后代都被淘汰了,在残酷的环境和有限的资源中,仅有适应能力强的后代能存活下来。也就是说,只有那些交叉变异得最为适应环境的后来挑选了出来。正是在这样残酷的挑选中,上帝的程序越来越精妙。从最为本原的语句一层一层组合上去,使得实现的功能越来越复杂,各个功能相互协作,最终实现一个强大的目标,这其实是自底向上的设计方法。
说到交叉变异,不得不说说遗传算法。美国密歇根大学心理系和计算机与电子工程系教授约翰·霍兰(John Holland)将自然界生物的交叉变异与优胜劣汰引入程序设计之中,从而形成了遗传算法。对于一个待解决的问题,遗传算法首先确定问题的编码方式以及适应度函数。编码方式其实是将问题的可能解变型成一条类似自然界的基因,而适应度函数则用于衡量当前基因适应环境(目标问题)的优劣程度。经过初始群体的选择,一代一代交叉变异优胜劣汰下去,算法中的基因朝着越来越优秀的方向进行迭代,最终找到满意的解。在优胜劣汰的作用下,交叉变异大放异彩,交叉是在现有基因基础上进行各种组合尝试,挑选出最为优秀的基因组合,而变异,则是独辟蹊径的创新,它制造出了前所未有的基因形式,增加了群体的多样性,为进化到一个死胡同的群体辟出前进的新方向。对于找到最优解的必然性,遗传算法有理论上的证明。但我更愿意从另一个角度去理解,遗传算法其实是对自然界生物进化的模拟,它其实通过计算机验证了这样一个事实:在自然界中,最为本原的基因组经过足够多代交叉变异的尝试、优胜劣汰的挑选之后,能过组合成精妙的生命程序,仿佛出自上帝之手。如果我们依旧将它称之为上帝的程序,这上帝不是别的,正是自然界。
上帝在每个生命个体的基因上编写绝妙的程序,这些程序,绝妙到了匪夷所思的程度。但更匪夷所思的是,个体基因上的程序,可能只是上帝程序的一个片断,上帝的整个程序,分布在整个群体的动物身上。在这样的群体当中,每只动物执行一段特定的程序,所有程序共同执行,相互通信,相互协作,结果超乎想象。这方面最具代表性的例子是蚁群,单只蚂蚁弱小而低能,只能执行简单的工作,一只离群的蚂蚁只能存活数天,因为其基因中的程序,还没强大到让一只弱小的蚂蚁自食其力的程度,但是在简单信息素的交流下,让每只弱小的蚂蚁都各司其职:工蚁生产劳动、兵蚁守卫家园、蚁后繁衍后代……整个蚁群,却产生了强大的智能。比如蚂蚁所筑起的蚁丘,就是建筑上的奇迹,简直就是一座精妙的蚂蚁城市,与蚂蚁的建筑本领相比,人类的建筑水平显得相当逊色。蚁群何以产生如此惊人的智能?科学家对此进行过大量的研究,下面给出一个最为简单也最好解释的例子:一只蚂蚁找到食物后返回蚁穴,由于地面状况复杂,可能走了不少弯路,它将食物信息传播给别的蚂蚁之后,随着前往食源的蚂蚁的增多,最终能找到一条从蚁穴到食源的直线路径。这是因为:每只蚂蚁在来回过程中留下信息素,走了近道的蚂蚁在相同时间里往返次数更多,留下的信息素也更多,也就能吸引更多的蚂蚁选择这条路,在这样的不断修正中,最终能找到最短路径。在简单的本能与交互之中,智能就这样诞生了。将这样的思想引入编程中,蚂蚁算法(Ant Algorithm)应运而生,此算法能用于有效解决许多实际的优化问题:路由、拥塞控制等等。人类社会又何尝不是这样,一个人比一只蚂蚁聪明多了,但能做的事依然相当有限。但当由一个个个体的人组合成了人类社会,各司其职又相互联系,所诞生的群体智慧远远超过了单个人的能力,至少,我们居住的地球已然在我们的改造下天翻地覆了。我们只能感受到自身的程序,也只能执行自身的程序,殊不知在更高的层面上,更为宏伟壮观的程序在有条不紊地运行,我们只是其中一个小小的程序片断。——将同样的思想应用到在计算机领域中,即为分布式计算:一个需要非常巨大的运算量才能解决的问题,经过一定的构造,它能等价于多个稍小的能与别的部分进行协作,同时依赖单个计算机的运算量进行处理的子问题,把这些子问题分配给不同的计算机进行运算,计算机之间相互通信同步,最终使得这个庞大的问题迎刃而解。
存贮在基因上的程序如此强大,大到超乎我们的想象。它让地球上的生命生机勃勃,生生不息。然而,这些程序并不万能,因为基因并非万能,本能也并非万能,它只保证了生命体基本的生存需求。要想过得更好,还需要除本能之外的更多尝试,在失败与成功之中将经验保存下来,这样的过程我们称之为学习。智慧的生命能将学到的知识一代一代积累流传下去,经过漫长岁月,知识积少成多,超越某个临界值,智慧的生命依仗着它崛起而区别于其它动物,文明由此诞生。
上帝的程序(上)
这世上的所有动物,自出生便拥有一些特定的本事,无需经过任何学习。这样的本事,被称之为本能。比如袋鼠生下来就会沿着母亲的体毛爬到育儿袋中,比如寄居在别的鸟窝中的小杜鹃一出生就会用身体将其余鸟蛋拱出窝外,比如小角马一生下来就会奔跑,比如尺蠖遇到危险就会僵直装死。人类也一样,一个刚出生的婴儿就会寻找妈妈的乳房,把乳头塞进嘴中吮吸乳汁。
性也是一种本能,只要经历过青春期,都会有这样的体会,我们对异性感兴趣,并不是受父母或者老师教诲,反而,在观念错误的年代,父母和老师反对我们对异性感兴趣。但是,异性的吸引是那样难以抗拒,不受大脑控制,不受理智控制,那是一股原始的冲动,随着身体的发育而被唤醒了。
然而,为什么会有本能?本能从何而来呢?这两个问题中,第一个问题并不难回答,本能是用以保证动物生存的最基本的本领。比如角马出生便会奔跑,因为如果它不在第一时间学会奔跑,很可能就成为了猛兽口中的美食;比如蜘蛛天生就会织网,因为这一张网,是它一辈子生存的基本保障。但是,本能是从何而来的呢?这个问题却从来没有人给出过令人满意的答案。
有这样一种观点,说表面上看,动物的本能是天生固有的一种能力,但是追溯到动物起源的远古时代就不难发现,动物的本能是其祖先在远古时代生存实践的积累。说实话,这样的一种解释很难让我信服。首先这些经验,是怎么积累的?比如性本能,难道是祖先经过多次尝试得出结论只有和异性结合才能生育后代,所以把这个经验积累了下来以诱导子孙?再比如蜘蛛,脑袋只有针尖大的动物,要经过多少代的经验积累,才能织出如此完美漂亮的蛛网?再比如织布鸟要经过多少代的经验积累,才能练就让人惊叹的筑巢技艺,甚至学会叼来兽毛通过打结的方式系牢鸟巢?其次即使这些本能是生存经验的积累,那么这些本能是通过什么样的方式得以代代相传的?如果是母亲教孩子的方式,那不叫本能,那是后天的本领。如果通过遗传的方式,那又怎么可能?对于有性生殖,父亲提供精子,母亲提供卵子,遗憾的是,后天的经验存贮在大脑里,而不是精子卵子里。
我更愿意相信,本能是一段特别的程序,存贮在动物的体内,在特定的条件下,这样的程序被唤醒并执行。比如婴儿时期吃奶的本能,比如性发育后的生殖冲动。当然,也有些本能,一辈子都在工作,比如蜘蛛织网鸟织巢。
只是一些本能,巧夺天工到了人类都惊叹的地步,这样的本能,真能用一段能刻入体内的程序代替吗?这样复杂的程序如何记载?
再复杂的本能,都能化解成更为基本的更为简单的能力。举一个稍微简单些的例子:比如让小袋鼠爬入育儿袋,咋一想是件相当困难的事,这其中,需要多少个动作,牵动多少块肌肉?这个过程记录下来自然相当复杂。但是,如果把这件事分化成更为基础的能力,整件事就不难了:假定小袋鼠已经具备了顺着母亲体毛攀爬的能力,再假定小袋鼠能够嗅到母亲的乳头,这个时候,只需要点燃小袋鼠爬向母亲乳头的欲望,小袋鼠自然会顺着嗅觉先向上爬,爬到袋口再往里钻。
对应地,这在程序设计里,叫做自顶向下的设计方法,确定程序的目标之后,不断地把这目标分为更细的子目标,直到每一个子目标都能简单实现。
在计算机领域,有一条相当惊人的定律:无论一个程序多么庞大复杂,即使复杂到了操作系统的程度,只要在理论上能为计算机解决,将它不断细分下去,最终一定能由三条最基础的语句实现:置零语句、增量语句、条件转移语句。其实,用最通俗的话,置零是起点,增量是努力,条件转移是变通。完成一件事,从一个特定的起点开始,努力下去,却不能一味努力,当恰当条件来临,要有变通的智慧。这三者的巧妙结合,所向无敌。这不得不让我想起了老子的一生二、二生三、三生万物。我们用过琳琅满目的软件,这些软件归根结底,逃不过这三条最基本的语句。
生命的遗传物质DNA,精确到每一位上,何尝不是如此简单:生物体的基因组字母表只由A(腺嘌呤)、T(胸腺嘧)、G(鸟嘌呤)、C(胞嘧啶)四种核苷碱基组成,它们的组合方式,也不过AT、TA、CG、GA四种方式。然而排列起来,却是一段强大的程序,决定了整个生命体的特征,马之所以是马而不是牛,全由它决定。甚至可能生命行为上的本能,也存贮在这里,因为到现在为止,除了这里,科学家还没发现可以存贮程序的地方。
从这个意义上讲,本能,是上帝的程序。这些程序记载在动物的体内,控制着动物的形态和行为。