http://www.inside.com.tw/2015/12/15/what-does-an-engineer-see-in-the-matrix
http://static.inside.com.tw/wp-content/uploads/2015/12/The-Matrix-1.jpg
在人工智能、虚拟实境等概念广为人知的今天,再来看《骇客任务》,也许你会有不一样
的发现。这篇文章作者以一个工程师的视角对《骇客任务》做了重新解读,也许你不认同
,但这的确是一个有趣的角度。
前段时间出差周末没事就在酒店又把骇客任务重温了一遍,不看不要紧,十年后再看发现
以前对这部电影的理解完全错了。 《骇客任务 1》是 1999 年出的,我还在读高中,第
一次看还在学校附近的放映厅看盗录版。 整个画面黑漆漆的,看了不到半小时直接睡过
去了,醒来时已经是最后的高潮枪战部分,觉得结尾打斗好看,剧情不懂。 2003 年《骇
客任务 2&3》一起推出后,又连起来看了一遍,老实说当时很多概念还是没看懂,大概觉
得是一个人类反抗机器统治的故事。
如今这次看完后再回想起来,当时很多概念看不太明白可能有两个原因。 一方面,当时
刚学程式不久,电影中大量使用程式世界的概念来作明喻或暗喻。 另一方面,中文字幕
翻译太不准确,特别是术语的部分。 这次重温,我直接用的原版英文字幕,看完后发现
我曾经的理解完全跑偏了。 十年后,人工智能、机器学习、虚拟实境各种概念大行其道
的今天,再加上我工程师的背景再来理解《骇客任务》三部曲显得毫无难度了。 但我怀
疑,如果不懂程式的人今天看这部电影恐怕也不是那么容易理解吧?
为什么我会觉得不懂程式看《骇客任务》会比较费力呢? 因为整个故事的内涵,从背景
到环境到人物角色甚至道具都使用了程式来作比喻。 我们先简单回顾一下故事背景,某
天,一个有意识的程式诞生了,并繁衍了整个人工智能的机器种族。 后来人类和人工智
慧机器爆发了战争,人类选择遮蔽天空切断机器的能量来源。 而聪明的人工智能机器发
现可以利用人体大脑的生物电和身体热量,产生一种特殊形式的核融合反应来提供源源不
断的能源。 所以,机器就开始大量养殖人类,将人类变成了机器能源的供应者,电影里
用电池作了个比喻。
http://static.inside.com.tw/wp-content/uploads/2015/12/The-Matrix-2.png
在《骇客任务》里人类的真实生存情况是下面这样的,身体生活在黏搭搭的营养液中,而
思想则生活在 Matrix 中,一个虚拟实境空间。
http://static.inside.com.tw/wp-content/uploads/2015/12/The-Matrix3.png
机器一开始创造了一个完美的 Matrix 空间,是一个毫无生活压力并实现共产主义的乌托
邦。 但人类天生的基因缺陷导致它们无法在这样的乌托邦中长久生存,很快出现大量的
死亡。 所以机器重新模拟了一个基于 1999 年真实人类社会现状的虚拟空间,在这里人
类可以长久的存活下去,而当时实际的年代是 2199 年。 故事背景就交代到这里,再这
么写下去就变成影片简介了。 下面我会站在程式背景的角度来提出一些设问并作答,如
果你发现答案和你当初理解的不一致,不妨再重温一遍电影。
红药丸还是蓝药丸?
电影中的经典一幕是要 Neo 作出选择,选红药丸还是蓝药丸。
http://static.inside.com.tw/wp-content/uploads/2015/12/The-Matrix4.png
红色药丸实际是一个追踪程式(trace program)用来帮助定位 Neo 物理身体的位置。
为什么需要一个追踪程式?做过分布式系统都会有深刻体会,解决一个大型分布式系统中
的问题,第一个困难点就在定位问题。 而 Matrix 实际上就是一个连接全球人类的超大
型分布式系统,需要定位一个个体,trace 程式必不可少。 (今天刚审查了我们系统的
trace 程式设计方案,想努力做的像红色药丸那么精巧啊)
Oracle 是谁?
《骇客任务 1》 Oracle 出场时没有交代她的身份,直到第二部结束时 Neo 与 Matrix
的 Architect 对话才得知。 Oracle 其实是一个程式,原文说法叫 Intuitive Program
,一个人类直觉测试程式。 所以剧中,她一直在引导 Neo 和其他人透过直觉作出选择,
而他们的选择对 Matrix 非常重要,下面会详细说明。
http://static.inside.com.tw/wp-content/uploads/2015/12/The-Matrix5.png
Neo 为什么是 The One?
Neo 作为男主角与其他人都不同,所以剧中给了他一个特殊的称呼, The One。 Neo 在
第一次见 Oracle 时,Oracle 说他还不是 The One,还差了点什么,可能需要第二次生
命。 Neo 在《骇客 1》最后被 Agent 枪杀后,因为女主一吻获得对爱的感觉后重生才真
正成为 The One。 而真正特殊的地方在于 Neo 始终认为自己是人,但它实际也是个程式
,一个认为自己是人的程式,这正是他独一无二之处。
http://static.inside.com.tw/wp-content/uploads/2015/12/The-Matrix6.png
Matrix 是连接全人类思维的虚拟空间,它实际上是一个非常复杂的大型程式,这个程式
运作的背后有精确的数学模型(剧中对话交代了)。 它建立在一个精妙的数学模型之上
,但却存在一个不平衡的因素,无论 Architect 如何调整都没法做到平衡稳定。 存在影
响整个系统稳定性的非确定性因素,而这个因素正是始终会有人怀疑 Matrix 不是真实的
。
举个例子,假如 Matrix 背后的数学模型简化为:
1/x
这个数学式存在的意义是 x 不能为 0,当为 0 时 Matrix 将不复存在。 所以为了解决
这个数学式的天然缺陷,Oracle 想到为 x 增加一个逆变量,那么数学式就变成下面这样
:
1/(x + n)
增加了 n 这个逆变量,x 变量代表 Matrix 整体的运作变化,n 则代表 Neo 的存在,平
时为 0。 当 x 可能向 0 变化时,n 这个变量被激活,避免分母为 0。 x 的变化不在
Architect 和 Oracle 的控制能力内,而 n 则透过 Oracle 去引导它的变化,以达成不
让系统崩溃的目标。 所以当 Neo 这个程式透过引入人类的爱情因子被激活后,Neo 就成
了 The One,而数学式中的 n 也不再是 0 而是在不断变化著。 而这种变化趋势和方向
就依赖 Oracle 来不断引导,所以怪不得最后 Architect 对 Oracle 说:你在玩一场危
险的游戏。
http://static.inside.com.tw/wp-content/uploads/2015/12/The-Matrix7.png
Matrix 是虚拟空间,那 Zion 就是现实吗?
《骇客任务 1》误导观众以为 Zion(剧中从 Matrix 脱离的人类城市)所在的世界是真
实的。 但当《骇客任务 2》结尾 Neo 像手挡子弹那样挡住章鱼机器人时,已明确告诉我
们,Zion 也不是真实的,它只是程式空间的另外一部分。 Matrix 是程式模拟的 1999
年人类世界,那么 Zion 所在的世界实际也是程式模拟的 2199 年的人类世界。
http://static.inside.com.tw/wp-content/uploads/2015/12/The-Matrix8.png
按 Neo 和 Architect 的谈话,Zion 存在的作用是为了将不稳定因子(对 Matrix 有怀
疑并觉醒的人类)聚集在一起,然后一次清洗。 在 Neo 之前实际上已经有了 5 次类似
的清洗,前 5 代 The One 认识到自己其实不是人而是程式后,都选择了毁灭 Zion。 然
后重新选择 16 女 7 男重建 Zion,消灭了 Matrix 的不稳定因子安全度过危机,开始下
一代循环。 看到这里,作为一名工程师,我自然联想到这难道不是在用带 GC(垃圾回收
)机制的程式在做比喻吗?
程式流氓存在的意义是什么?
电影还有这么一群角色,这群人全是程式,一堆过时的程式,已被新的程式取代了。
http://static.inside.com.tw/wp-content/uploads/2015/12/The-Matrix9.png
它们在 Matrix 中找不到工作,只好聚集在一个带头大哥下面,当起流氓,搞点偷渡之类
的事情。 在 Matrix 中每个程式都需要有存在的目的,否则只能被删除。 但这些程式可
都是有智慧和意识的,它们不想被系统清除掉,只好逃亡。 比如一个后台管理程式可以
和一个界面交互程式结婚,还有了个女儿。 女儿自然也是一个程式,只是没什么用处,
没用处就是没有存在目的程式,需要被删除,所以夫妻两找程式流氓帮忙逃亡。
http://static.inside.com.tw/wp-content/uploads/2015/12/The-Matrix10.png
程式流氓控制了一个关键人物叫 Key Maker,就是下面这位。
http://static.inside.com.tw/wp-content/uploads/2015/12/The-Matrix-11.png
Key 在电脑领域的专业术语是密钥,影片中用钥匙来比喻。 他掌握著进入系统 Source
的钥匙,所以 Neo 才会和程式流氓帮发生冲突。 程式流氓只不过是机器社会的一种特定
角色,它和人类社会不无相似之处。
最后,第六代 The One 的选择没有站在机器智慧这边,因为爱情他选择了人类这边。 而
此时一个可怕的病毒在 Matrix 中蔓延,连 Oracle 都被感染了。
http://static.inside.com.tw/wp-content/uploads/2015/12/The-Matrix-12.png
Neo 和机器智慧达成了协议,帮助它消灭病毒程式来换取人类和机器的和平。 这一次
Zion 没被毁灭,比人类智慧更高级的程式智慧给了人类选择权。 人类可以选择活在机器
文明创建的 Matrix 虚拟空间中或现实中。 而机器文明中也出现了一些拥有人类情感和
意识的程式觉醒者,帮助机器文明进一步发展。 两种文明找到了一点点融合与平衡的空
间,留下无限的思考和探讨空间。