Archive for August, 2007

Tuesday, August 28th, 2007

加拿大的朋友们都在问:“你什么时候回来啊?”问到我都不好意思了,因为最近真的很忙。目前论文还没有着落,工作又抓得很紧,所以实在找不出一个借口给自己放个假。争取在圣诞节之前把一系列历史遗留问题都解决,所以过了这一段就会好的,一定要镇定。

hpim0479.JPG

基于欲望的人工智能(三)

Wednesday, August 22nd, 2007
战国时期,有一个宋国的农夫,他每天都到森林里去游走。有一天,农夫又像往常一样到树林游走的时候,看到一只跑得非常急的兔子,从草丛中窜出来时,竟然不小心一头撞死在一棵大树旁。“哇!怎么有这种事?我真是幸运。要是天天有这样的兔子,那真的很爽!”农夫心想。从此以后,农夫每天就坐在那棵大树下,等候兔子来撞树。

关于守株待兔的故事,大家应该都很熟悉。故事中农夫从发生了一次兔子撞树的事件中获得了愉悦,于是他每天都站在那棵树下,等待再次获得同样的愉悦。虽然在我们看来这个农夫很愚蠢,但是整个过程如果把农夫换成机器,把兔子换成一次时间和空间的巧合,那么守株待兔就是一个成功的人工智能。在开始写这一篇之前 ,我读了一下彼得写的他对我们讨论过的人工智能的阐述,觉得写的很好。特别是关于记忆带来逻辑能力和关联式记忆,应该可以从下面的例子中找到一些影子。这只是我们把前篇的讨论放在这个例子上的一种尝试。可行与否,要等阐述完才能知道。

还是拿出我们只有时间和空间的二维矩阵,来当作当前这个机器的记忆。纵轴代表时间,横轴代表空间。时间为 7 刻钟重复一次,相当于我们 24 小时的一天。空间为由 A 至 G 的 7 棵树,代表机器人所能行动的整个一维世界。注意,机器在空间里是双向的,但是在时间里是单向的。它可以改变它所处的空间的位置,但是却不能改变它所处的时间的位置。这是我们的常识。然后,我们假设机器的愉悦集里只有一个愉悦,代号叫做。而当机器刚刚进入它的世界的时候,欲望集为空。现在的机器对任何一刻时间和任何一步空间都没有关于爽的记忆,所以矩阵里面的每个格子为 0 或者可以说为空。

before.png 

图一:爽之前的记忆

此时的机器没有任何欲望,所以它的行为是未知的。于是它开始在空间和时间里无欲望地乱走 —— 记住,虽然时间是单向的,但是可以循环。就这样,不知道过了多少次循环,或者说不知道过了多少,一切开始有了转机。也就是今天 3 刻的时候,机器站在了树 C 。而在此之前,它从来没有在这个时间出现在这个地点过。此时此刻,它有了一种从来没有过的变化,那就是愉悦集里的那个唯一的愉悦处于某种原因被(3 刻树 C)这个事件产生了。

画外音:“机器同学,请问你现在有什么感觉?”

机器:“爽!”

紧接着,一个包含了(3 刻树 C)和  的欲望就被生成,并加入了机器的欲望集。而在机器二维矩阵的记忆里,在(3 刻树 C)的位置,愉悦强度从 0 变成了一个很高的数值,假设为 6。然后向相邻的时间和空间递减。也就是说,此后的机器,越接近(3 刻树 C)它就越爽。

after.png

图二:爽之后的记忆

于是在(3 刻树 C)事件发生之后,机器希望这个事件再次发生。因为它拥有在空间里行动的能力,它会向树 C 走去,直到到达目的地。这个方向可以由机器记忆里每个删格的愉悦强度来决定。可惜时间是单向的,机器并没有能力像空间行走一样走回上一刻。但是机器一直努力会让自己处于离最近的时间和空间上。这个努力可以用图二中的红箭头来表示。红箭头的尾部代表机器出发的时间和空间,红箭头的头部代表机器在自己能力范围内能到达的时间和空间。最终,它会站在 树 C 的位置,等待下一个 3 刻的到来。

能不能再爽一次,就要看机器的造化了。

一个很有个性的叉子

Wednesday, August 22nd, 2007

今天在公司餐厅吃饭,照例拼了一盘沙拉。觅座之后,才发现叉子是这个样子的。仔细看了看,绝对不是断掉的。因为叉子的顶端很光滑,所以有可能是有意做成这样的。小朋友们,谁能回答出来这样形状的叉子有什么用?

img003.jpg

基于欲望的人工智能(二)

Wednesday, August 22nd, 2007

之前我们说可以把一个愉悦和产生这个愉悦的事件联系起来,定义成一个欲望放在欲望集里。当欲望集里有了第一个欲望的时候,这个机器就开始有了自己的思维。这个思维很简单,就是寻找再次发生这个事件的可能,以再次获得同样的愉悦。而思维是建立在记忆上的。关于,是记前面已经发生过了的事件。所以具体一点说,思维是建立在上的。

为了方便陈述,我们先假设这个机器的欲望集里只有一个欲望,而且愉悦集里也只有一种愉悦。前面我们定义过,这个欲望是一个愉悦和一个事件的联系。那么接下来我们应该研究一下机器是如何回忆的。根据前面的描述,我们把一个机器所存在的世界定义成一系列发生的事件,这一系列发生的事件的其中一个将会在这个个机器上产生一个愉悦。我们不妨给这个事件加上一些属性,来方便机器的回忆。两个之前提到过的属性,一个是时间,一个是空间。对于时间,在我们人类可以接受的解释中,是一维的。对于空间,为了方便我们的讨论,我们也把它设计成一维。因为我们之前要求这两个属性必须是离散的,所以这两个属性都有可追溯性。比如这一刻的上一刻,这一步的前一步,都是帮助我们寻找上一个事件的依据。就好像一个前锋成功进球以后,他在前一秒,或者前一步,肯定不会是在家里吃泡面,而是在禁区抬脚准备踢向足球。

我们的目的就是希望机器有一定的记忆来保存之前给它带来愉悦的一系列事件对于每个事件,除了时间和空间这两个属性,我们还可以给它一些其他的属性,比如事件发生时,这个机器所侦测到的温度,如果机器有温度计的话;这个机器所侦测到的亮度,如果机器有感光器的话。事件的属性越多,就越容易把一个事件从另外一个事件区分开来。这些属性放在一起,就变成了这个事件的特征。当然,每一个属性都必须离散化。可以说机器里保存了一个多维矩阵,每一个纬度都对应一个属性。这样矩阵里的每一个栅格里都可以看成是一个事件。为了简化下面的讨论,我们假设我们的事件只有时间和空间这两个属性,就足够与其它事件区分开来。

对于机器,时间是一刻一刻前进的。之所以我们用单位,而不是,就是怕有人把这个机器所处的离散时间和我们现实的连续时间混淆在一起。同时我们也假设它在一维空间上也是一步一步前进的。当一个产生愉悦的事件发生后,机器会根据当前的时间和空间,向回追溯之前那个时间和空间发生的事件。这所有的属性里面,时间是比较特殊的。因为时间在现实生活当中是不可逆的,但是在机器的世界里,我们可以把时间设计成循环的。就好像我们一年有十二个月,每天二十四小时一样。机器的时间可以由有限个刻度组成,从零开始,一直到最后一个刻度之后,然后重新归零。这样我们就有了一个二维的矩阵。

上面我们说,这样一个矩阵里每一个栅格都可以看成是一个事件。但实际上,这个栅格里还可以保存一个重要的变量。因为目前机器的愉悦集里只有一个愉悦,我们可以在这个栅格里保存一个数值。下限为零,没有上限。数值越高,代表这个事件所产生的愉悦强度越高。然后周围的栅格里的这个愉悦的强度会逐个递减。比如一个很饿的人吃包子的时候会很高兴,就不存在说,在包子进入嘴巴的前一刻他还是很平静。那么有人会问,难道每个栅格里都要看成是一个事件么?从某种意义上说,一个栅格里的愉悦强度,其实就是这个事件的重要性。每个栅格当然应该看成是一个事件,只不过有些事件的重要性为零,可以忽略了。

上一篇留言里彼得说过,我们假设人的所谓思考能力和逻辑判断能力是不存在的,一切只不过是对记忆进行的高速读写操作。所以我们认为实现真正的人工智能就必须模拟这种高速的记忆读写。所谓的智慧,我们可以理解为经验的积累。经验,在这里就是对一系列事件和愉悦的记忆。至此,我们提供了一个保存事件和愉悦的结构,也就是一个机器的记忆。当机器处于某个事件中,会根据这个事件的属性,去矩阵里查找这个栅格里保存的愉悦强度,然后根据附近栅格里的愉悦强度,构成一个向量,表示愉悦强度增长的方向。然后通过自己的手段,来使那个方向的事件系列地发生。通俗一点讲,这个阶段的机器,有了自己的欲望。这里要提一下,时间是不被机器的欲望所改变的。但机器可以顺着时间前进的方向寻找愉悦强度增加或减少的依据。就好像我们人类知道每天早上八点钟的时候太阳会升起,然后我们就会开心地去迎接。我们并不会在下午六点钟的时候去开心地迎接太阳的升起。

基于欲望的人工智能(一)

Tuesday, August 21st, 2007

洋人的名字名在前姓在后,所以同事们念我的名字就是 Yu Wang,乍一听起来就是“欲望”。我 Yu Wang 的欲望很多。几分钟之前,一碗热腾腾 Soba 泡面刚刚满足了我作为一个人类最基本的食欲。最不喜欢的我毛病里,除了贪嘴,其次就是爱夸夸而谈,而一谈就是长篇大论。所以现在又来准备满足我的发表欲。

去年在 Hamilton 的某个下午,跟 Peter 还有坐在一个叫做唯一的茶餐厅里,谈到了如何在机器里实现欲望,从而达到一定级别的人工智能。这个话题一开始是从生命的欲望开始的。在汉语词典里,欲望是这样定义的:对能给以愉快或满足的事物或经验的有意识的愿望。生命的存在,从某种角度就可以假设为为了满足种种这样的愿望的存在。正式因为有了这种愿望,才让举止有了目的,让行为有了目标。注意,这里不是讨论哲学和宗教,而是纯粹为了方便理解接下来的话题做的准备,所以就此打住。

为了能更好地从人工智能的角度来理解欲望,让我们进一步规范一下之前的定义:对给以愉悦(pleasure)的事件(event)的愿望,我们称之为欲望(desire)。对于愉悦,我们不知道受否能够再往下定义,也没有必要往下定义。愉悦,是在机器里实现欲望的最原始概念。而针对每个愉悦,我们都可以定义一个相应的欲望。一组愉悦,我们可以称之为愉悦集(pleasure set)。一组欲望,我们可以称之为欲望集(desire set)。这两个集在一个人工智能的实现里是全局的,也就是说一个拥有这种智能的机器人只拥有一组愉悦集和一组欲望集。在最初一个人工智能,或者说一个机器诞生的时候,这个欲望集是空的。随着事件的不断发生,我们要求愉悦集中每一个愉悦都在欲望集里有一个相应的欲望。

这里岔开话题一下,为了最简化我们的讨论,这里不讨论太多的学术术语,比如上面提到的两个集都是有限集(Finite Set);愉悦集到欲望集的关系是 Injective 的。所以,读的人应该尝试把谈到的概念放在最合理的范围内。

在欲望的定义里,我们还谈到了事件。同样,我们也不能并不需要再往下定义。事件,是机器里达到欲望的最原始概念。在我们的人工智能中,任何事件所处于的时间和空间都是离散(Discrete)的。也就是说,时间的前一秒和现在这一秒之间没有间隙给事件去发生;空间的前一个状态和现在这个状态之间也没有空隙给事件去存在。然后我们可以把这个机器所存在的世界定义成一系列发生的事件,这一系列发生的事件将会在一个机器上产生一个或多个愉悦。这是我们所需要实现的人工智能的关键。至此,我们的人工智能模型基本搭建完毕。BTW,我对事件这个概念比较有感情,因为我的硕士论文的课题就是关于离散事件系统(Discrete Event System)的。 

在某些控制系统理论里,事件和信号往往是两个分开的概念。一个事件可以产生一个信号,或者反过来被信号激活。这里,我们就可以把信号替换成我们刚刚定义的愉悦。就好像实际生活当中,我们看到一件事情发生了,比如球被射进了球门,在球迷的脑子里会产生一个愉悦;然后因为这个愉悦,可能激活这个等待入球已久的球迷去欢呼。从人工智能的角度,当某个事件发生的时候,我们可以从机器的愉悦集里提取相应的愉悦。然后对于这个机器来说,它会觉得对于这个事件的发生,它很高兴。重申一下,这里所有的东西都是被机器们称之为造物主的我们所定义出来的。机器对于它这种所谓“发自内心”的愉悦的理解,并不能超出它所处于的它的那个宇宙和逻辑。

现在我们有了愉悦,还有了跟与愉悦相对的事件,于是我们可以把这个愉悦和事件联系起来,定义成一个欲望放在欲望集里。

解决 Pidgin 不显示中文的问题

Saturday, August 18th, 2007

上次说可以通过 hotmail 获得 Space 地址,这次又想知道谁在 MSN 上把我给删了。这年头人心不古啊,今天跟你聊几句打个招呼明天转手就把你 Delete 了。所以很有必要钻研一下,以免热脸贴到冷屁股上。记得好像 Pidgin 可以做到这个,于是就装了一个。

因为 Pidgin 所基于的 GTK 跟 Windows 本身的字体显示子系统是完全不沾边的,所以装上以后无法显示中文,人名显示出来的全是乱码。解决办法是,退出 Pidgin,去 C:\Program Files\Common Files\GTK\2.0\etc\gtk-2.0\gtkrc 把里面的

gtk-font-name = “sans 8″

改为

gtk-font-name = “SimSun 9″

然后运行 C:\Program Files\Common Files\GTK\2.0\bin\gtkthemeselector.exe ,并选择任何一个非 MS-Windows 的主题。最后,重新运行 Pidgin 就可以了。 

gtk-theme-selector.png

BTW,Pidgin 还有一个功能,就是可以在别人打字的时候就提醒你,即使打的那句话还没有发过来。这样你可以在别人给你 Hi! 之前提前打招呼,很酷。

现实与梦境

Wednesday, August 15th, 2007

每天坚持锻炼身体了。一下班先去 Redmond 图书馆看书,然后来回开 2 个 mile 的车去 ProClub 跑 1 个 mile 的步。就好像电池每次最好用完再充电,每天多余的能量都要统统消耗掉,然后晚上可以美美地睡一觉。虽然还是很是感觉自己很臃肿,但是工作起来都精神多了。还有就是晚上可以睡得很死,不用再做恶梦了(缺点是连美梦也没有了)。

说到做梦,上星期我就做了一个。我梦见 UFO 在我头顶呼啸而过。飞得不是很快,所以大概记得样子。有好多只,每只都长得跟花瓣似的。然后就醒了。不过梦是可以连续做的。就好像连续剧一样,连续的梦就叫连续梦。结果第二天晚上又做了一遍差不多同样的梦,只不过天上飞的不再是花瓣而已了。

最近很多朋友都变得很惆怅。唉,正所谓“酒不醉人人自醉,饭不入肠愁入肠”。想那么多干嘛,好事多磨嘛!另外恭喜穗找到了工作,总算是如你所愿,尘埃落定了。

图书馆情结

Tuesday, August 14th, 2007

来了半年多了,一直想找一个可以坐下来看书的地方。但这个因星巴克而著名的地区却没有一家像麦大旁边那家 Tim Horton’s 一样的咖啡店可以让人久坐。这两天去 Redmond Regional Library 看书,感觉生活顿然健康了很多。比较郁闷的是,早就知道这个图书馆了,但是一直把它当成了一个路标,却很久都没有意识到这是一个图书馆的本身。直到昨天提醒我,才让我知道这个地方不仅仅是一个叫做 Tu Shu Guan 这个发音的建筑物。放工之后有了去处,比开了屋门一头钻进卧室开机上网上厕所要好很多倍。

本身就是个不爱学习的人,还每天瞎嚷嚷着要去图书馆。所以每次有人问起,总会自而答曰:世界上本来没有图书馆,后来作业布置得多了,也就有了图书馆。不过二十年寒窗之后,那每次经过的书香阵阵,把这种被迫变成了情结。

公司虽然有图书馆,无非只是一个收藏书本的仓库。需要什么资料的时候,内部网上点一点就有人直接送到办公室楼下。不知这是一种对图书馆的“扼杀”,还是恢复图书馆本来的意义。很大部分时间,图书馆对我来说更重要的是一个提供桌子椅子阳光的一个自习室。在家里面有床有电脑,不是上网就是睡觉,实在没有学习的气氛。于是很需要一个可以让人心静的环境,来帮助自己克制贪玩的本质。

suzzallo_library_graduate_reading_room.jpg二月份的时候去华盛顿大学,一所建立于 140 多年前的公立学府,去参加他们 CSSA 的春节晚会。穿过红场,让我驻足的不是壁画似的 Mt Rainier,而是古香古色的 Suzzallo 图书馆。当步入那个研究生读书室,一眼看到的是高高的馆顶,垂直悬吊的天灯。薄1说捧个书本坐下来享受了,当时连重新上学的冲动都有了。

 插图版权:Joe Mabel 

_____________

1 薄:Bao,不要

通过 hotmail 地址获得对方的 space

Saturday, August 11th, 2007

经常在某些场合看到一些 hotmail 地址,有时候会好奇这个 hotmail 的主人是否有 Space。有一个方法很简单,就是在浏览器地址上打入:

http://members.msn.com/<邮件地址>

比如,想看到 en-cn@hotmail.com 这个邮件其主人的 Space 空间,就打入 http://members.msn.com/en-cn@hotmail.com 。这样就会看到 Live 英汉通 的 Profile,接着只要把鼠标放在其头像上,然后在弹出的选单里点 View space 就可以了:

space.png

指尖飞舞在键盘上

Friday, August 10th, 2007

看了一段电影《不能说的秘密》预告篇,对其中两个男生在钢琴前比斗的场景印象很深刻。相比之下我们上学那会儿,看谁不顺眼就拳脚相加的作风实在是太不优雅了。都是敲 keyboard 的人,为什么人家就耍的那么帅。我们搞电脑的,手指头灵活度真低不到哪去的。写了一天的代码了,要不我也扭过头去敲一段 Hello, World 给大家看?大不了加点节奏就是了。

hpim0478.JPG其实,隔行如隔山。否则怎么会有“专业”这样极其简单而又深刻的称赞呢?叫丫来给你在电脑上打26个字母丫照样也得废掉食指以外的四个指头趴在键盘上先找 “a”。

三百六十行,行行出状元。自己做不到,别人却做到的事情,就应该佩服!就应该给丫竖个指头!(哎哎,你竖错了!应该竖大拇指。)刚才喝了一罐百事,盯着易拉罐愣了半天。你说百事、可口两家做糖水的公司同一个味儿坚持不变 N 年,可换壳不换汤的生意照样做的是红红火火。要我说,他们的营销团队才是最专业的。怎么能不佩服呢?


Chat with me. =)