[讨论]你真的有看懂骇客任务吗?听听工程师怎么说

楼主: MadMac (Mac)   2015-12-15 22:51:50
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 虚拟空间中或现实中。 而机器文明中也出现了一些拥有人类情感和
意识的程式觉醒者,帮助机器文明进一步发展。 两种文明找到了一点点融合与平衡的空
间,留下无限的思考和探讨空间。
作者: sucksboy (徐巧芯是我老婆)   2015-12-15 22:59:00
这点有争议吧
作者: macrose (再次重逢的世界)   2015-12-15 23:05:00
这只是个人见解吧Neo特别之处在于他顿悟后能看穿matrix的真实样貌(程式码),而他在第二集最后则用相同的方式理解了真实世界。Neo最后的境界接近成佛(即觉悟者)
作者: hman1117 (晔)   2015-12-15 23:10:00
共产主义跟乌托邦差了十万八千里
作者: macrose (再次重逢的世界)   2015-12-15 23:13:00
matrix的创作本来就有融入佛教色彩,执著于看的见程式码就不是真的这点,就无法理解开悟成佛的隐喻
作者: ads58791 (Boreas)   2015-12-15 23:36:00
先下"误导观众"这个结论就很难讨论,Neo不用接线就上网结束乌贼的工作程式,以前不好理解,现在就是wifi。盲眼之后看见程式码的部分,是整个世界都以程式码表现吗?那就不需要崔妮蒂开飞船了吧,有点记不得,请其他版友补充
作者: dunchee (---)   2015-12-15 23:53:00
Zion是真实世界。在the Architect(A)和Neo(N)对话提到摧毁Zion时,A威胁的是: ... system crash ... killingeverying connected to the Matrix ... which, (关键处->)"coupled with the extermination of Zion" will resultin the extinction of the entire human race. 因为Zion也是真实世界的一部分,所以在提到毁灭全人类时 A 才会连带提到the extermination of Zion Nero的特别之处是在于他的"(部份)能力"也能带到真实世界--就想像是他身上残余的装置能发出足够的电波进而远端控制机器。如果他在真实世界也能像在Matix一样飞来飞去,那么这时候再考虑"真实世界/Zion"是否也是虚拟的也不迟也或许可以说"miracle(Neo)"确实真的在现实世界里发生了(miracle不是机器/程式所能控制/产生) 毕竟非科学性的东西(神鬼怪物传说神话等等)在电脑发明之前就有了
作者: williamoleeo (席家大宅)   2015-12-16 00:08:00
超讨厌这种自以为是的标题的= =
作者: Nolan5566 (诺兰‧五六)   2015-12-16 00:14:00
呵呵工程师的自以为就算了、还写得那么难看
作者: bye2007 ( )   2015-12-16 00:15:00
我觉得这篇写得很有趣啊 另一种观点 而且骇客任务三部曲
作者: BJme (逼杰米)   2015-12-16 00:17:00
我觉得matrix会一直失败是因为只要是人 就不是完美的 人天
作者: bye2007 ( )   2015-12-16 00:18:00
本来就有很用心在考据很多细节
作者: BJme (逼杰米)   2015-12-16 00:18:00
生就会是有缺陷 不像数学0就是0 1就是1 所以Architect永远没办法用最完美的数学式来控制人类世界 这点大概也是身为程式的Architect永远没办法理解的人类思考和情感的复杂度远远不是程式能够想像的
作者: LSKF (QQ)   2015-12-16 00:36:00
我觉得写的很好啊
作者: Heynoo (议端头子)   2015-12-16 00:40:00
控制乌贼应该是远端遥控或wifi的概念,其余解释不错
作者: peruman (美丽人生)   2015-12-16 00:43:00
经过这么多年 还有人愿意讨论它 也真是佛心 给推
作者: j790822 (水之守护者)   2015-12-16 01:01:00
认真给推
作者: ichuankshs   2015-12-16 01:13:00
这篇给的观点有趣也算合理阿 不需要看到反对就给嘘
作者: Minazuki (水无月航)   2015-12-16 01:21:00
ZION这观点战过好几轮了,也不新鲜了,纯嘘标题就是了
作者: RrEpic (Rupert)   2015-12-16 01:28:00
据说人体电池的设定现实中不可能存在,本来的设定是拿人脑当并行运算器,但是怕观众看不懂才用人体电池
作者: zcjr (叔叔)   2015-12-16 01:54:00
如果是拿人脑当并行运算器也不会到看不懂的程度像psycho pass就是一个拿人脑当并行运算的例子
作者: dv435768   2015-12-16 07:54:00
身为一个资讯废宅听你讲完我终于懂了
作者: deray (Deray)   2015-12-16 08:17:00
个人见解 过度脑补
作者: zeumax (烟灰缸里的鱼)   2015-12-16 08:32:00
人体是电池运行机器,人脑则自行运行Matrix的虚拟世界,Matrix耗能有电池自行供应,减少二度消耗会的节能设计。
作者: XZXie (微软新注音败坏国文水平)   2015-12-16 08:34:00
我想问火车人代表什么设备??
作者: zeumax (烟灰缸里的鱼)   2015-12-16 08:39:00
机器提供电池串联,并且利用电池分散运算,处理器就能少做点电源管理的事情。但原始设计不良,有大半机器都在做电源管理的工作,或者机器也变只是为存活而存活
作者: zenninblack (果蝇的爹)   2015-12-16 09:09:00
一直没看懂,这篇给了一点头绪
作者: cvngoo (goo)   2015-12-16 09:31:00
Neo眼瞎后 踩到的地应是现实世界的地 为何能看到程式码?只有在虚拟世界 Neo看到的东西才会化成程式码 所以Zion也是虚拟出来的很合理
作者: jk1982 (真的啦~)   2015-12-16 09:47:00
neo眼瞎后看到的东西都是程式码是因为电脑看世界所有的东西都是如此,锡安才是真实世界。
作者: macrose (再次重逢的世界)   2015-12-16 10:09:00
Neo眼瞎后,看的到有跟电脑连接的东西,也看的到被Smith重灌的人类(样貌是smith),但是记得他看不到Trinity飞船,跟最后抵达得电脑城都是由电脑控制组成,自然有程式码(但他不会看到气体、液体等自然产物以程式码呈现)
作者: swgun (杨 威利)   2015-12-16 10:42:00
花10年只能看懂这些 简直弱爆了 要不要再等20年
作者: qazxswptt (...)   2015-12-16 11:08:00
不好意思 我觉得跟工程师无关 而是您理解力进步太缓慢...
作者: mader4444   2015-12-16 11:53:00
那第一集neo吃药丸从电池被解放是解放爽的喔?从虚拟世界解放到另一个虚拟世界?不是工程师也看的懂好吗…这部片已经演的很好懂了
作者: Max11 (从来没有)   2015-12-16 12:28:00
有股菜味
作者: airmike (airmike)   2015-12-16 13:23:00
果然Neo的特殊能力会让一堆人看到后来错乱 如果Zion也是虚拟的 那这个Garbage Collection系统应该很好做 根本不需要乌贼追来追去 更不可能导出文中最后人类跟机器和平相处的结局 所有的事情都还是在cyber space如果只看一 勉强可以这样推论 看到3还这样推 就逻辑爆炸
作者: suny921 (熊大)   2015-12-16 17:28:00
原PO大概是被‘The Thirteenth Floor’影响了

Links booklink

Contact Us: admin [ a t ] ucptt.com