[討論]你真的有看懂駭客任務嗎?聽聽工程師怎麼說

作者: 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