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 虛擬空間中或現實中。 而機器文明中也出現了一些擁有人類情感和
意識的程式覺醒者,幫助機器文明進一步發展。 兩種文明找到了一點點融合與平衡的空
間,留下無限的思考和探討空間。