作者MadMac (Mac)
看板movie
標題[討論]你真的有看懂駭客任務嗎?聽聽工程師怎麼說
時間Tue Dec 15 22:51:50 2015
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 虛擬空間中或現實中。 而機器文明中也出現了一些擁有人類情感和
意識的程式覺醒者,幫助機器文明進一步發展。 兩種文明找到了一點點融合與平衡的空
間,留下無限的思考和探討空間。
---------------------------------------------------
連錫安都是模擬出來的 我要崩潰了!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.175.129.37
※ 文章網址: https://www.ptt.cc/bbs/movie/M.1450191135.A.B2C.html
推 sucksboy: 這點有爭議吧 12/15 22:59
噓 macrose: 這只是個人見解吧 12/15 23:05
→ macrose: Neo特別之處在於他頓悟後能看穿matrix的真實樣貌(程式碼) 12/15 23:10
→ macrose: ,而他在第二集最後則用相同的方式理解了真實世界。Neo最 12/15 23:10
→ macrose: 後的境界接近成佛(即覺悟者) 12/15 23:10
→ hman1117: 共產主義跟烏托邦差了十萬八千里 12/15 23:10
→ macrose: matrix的創作本來就有融入佛教色彩,執著於看的見程式碼 12/15 23:13
→ macrose: 就不是真的這點,就無法理解開悟成佛的隱喻 12/15 23:13
→ ads58791: 先下"誤導觀眾"這個結論就很難討論,Neo不用接線就上網 12/15 23:36
→ ads58791: 結束烏賊的工作程式,以前不好理解,現在就是wifi。盲眼 12/15 23:38
→ ads58791: 之後看見程式碼的部分,是整個世界都以程式碼表現嗎?那 12/15 23:40
→ ads58791: 就不需要崔妮蒂開飛船了吧,有點記不得,請其他版友補充 12/15 23:41
→ dunchee: Zion是真實世界。在the Architect(A)和Neo(N)對話提到摧 12/15 23:53
→ dunchee: 毀Zion時,A威脅的是: ... system crash ... killing 12/15 23:53
→ dunchee: everying connected to the Matrix ... which, (關鍵處-> 12/15 23:53
→ dunchee: )"coupled with the extermination of Zion" will result 12/15 23:54
→ dunchee: in the extinction of the entire human race. 因為Zion 12/15 23:54
→ dunchee: 也是真實世界的一部分,所以在提到毀滅全人類時 A 才會連 12/15 23:54
→ dunchee: 帶提到the extermination of Zion Nero的特別之處 12/15 23:55
→ dunchee: 是在於他的"(部份)能力"也能帶到真實世界--就想像是他身 12/15 23:55
→ dunchee: 上殘餘的裝置能發出足夠的電波進而遠端控制機器。如果他 12/15 23:56
→ dunchee: 在真實世界也能像在Matix一樣飛來飛去,那麼這時候再考慮 12/15 23:56
→ dunchee: "真實世界/Zion"是否也是虛擬的也不遲 12/15 23:57
→ dunchee: 也或許可以說"miracle(Neo)"確實真的在現實世界裡發生了( 12/16 00:05
→ dunchee: miracle不是機器/程式所能控制/產生) 畢竟非科學性的東 12/16 00:06
→ dunchee: 西(神鬼怪物傳說神話等等)在電腦發明之前就有了 12/16 00:06
噓 williamoleeo: 超討厭這種自以為是的標題的= = 12/16 00:08
→ Nolan5566: 呵呵工程師的自以為就算了、還寫得那麼難看 12/16 00:14
推 bye2007: 我覺得這篇寫得很有趣啊 另一種觀點 而且駭客任務三部曲 12/16 00:15
推 BJme: 我覺得matrix會一直失敗是因為只要是人 就不是完美的 人天 12/16 00:17
推 bye2007: 本來就有很用心在考據很多細節 12/16 00:18
→ BJme: 生就會是有缺陷 不像數學0就是0 1就是1 所以Architect永 12/16 00:18
→ BJme: 遠沒辦法用最完美的數學式來控制人類世界 這點大概也是 12/16 00:19
→ BJme: 身為程式的Architect永遠沒辦法理解的 12/16 00:19
→ BJme: 人類思考和情感的複雜度遠遠不是程式能夠想像的 12/16 00:21
推 LSKF: 我覺得寫的很好啊 12/16 00:36
推 Heynoo: 控制烏賊應該是遠端遙控或wifi的概念,其餘解釋不錯 12/16 00:40
推 peruman: 經過這麼多年 還有人願意討論它 也真是佛心 給推 12/16 00:43
推 j790822: 認真給推 12/16 01:01
推 ichuankshs: 這篇給的觀點有趣也算合理阿 不需要看到反對就給噓 12/16 01:13
噓 Minazuki: ZION這觀點戰過好幾輪了,也不新鮮了,純噓標題就是了 12/16 01:21
推 RrEpic: 據說人體電池的設定現實中不可能存在,本來的設定是拿人腦 12/16 01:28
→ RrEpic: 當並行運算器,但是怕觀眾看不懂才用人體電池 12/16 01:29
推 zcjr: 如果是拿人腦當並行運算器也不會到看不懂的程度 12/16 01:54
→ zcjr: 像psycho pass就是一個拿人腦當並行運算的例子 12/16 01:55
推 dv435768: 身為一個資訊廢宅聽你講完我終於懂了 12/16 07:54
噓 deray: 個人見解 過度腦補 12/16 08:17
推 zeumax: 人體是電池運行機器,人腦則自行運行Matrix的虛擬世界,Ma 12/16 08:32
→ zeumax: trix耗能有電池自行供應,減少二度消耗會的節能設計。 12/16 08:32
→ XZXie: 我想問火車人代表什麼設備?? 12/16 08:34
→ zeumax: 機器提供電池串聯,並且利用電池分散運算,處理器就能少做 12/16 08:39
→ zeumax: 點電源管理的事情。但原始設計不良,有大半機器都在做電源 12/16 08:39
→ zeumax: 管理的工作,或者機器也變只是為存活而存活 12/16 08:39
推 zenninblack: 一直沒看懂,這篇給了一點頭緒 12/16 09:09
推 cvngoo: Neo眼瞎後 踩到的地應是現實世界的地 為何能看到程式碼? 12/16 09:31
→ cvngoo: 只有在虛擬世界 Neo看到的東西才會化成程式碼 所以Zion也 12/16 09:33
→ cvngoo: 是虛擬出來的很合理 12/16 09:33
→ jk1982: neo眼瞎後看到的東西都是程式碼是因為電腦看世界所有的東 12/16 09:47
→ jk1982: 西都是如此,錫安才是真實世界。 12/16 09:47
→ macrose: Neo眼瞎後,看的到有跟電腦連接的東西,也看的到被Smith 12/16 10:09
→ macrose: 重灌的人類(樣貌是smith),但是記得他看不到Trinity 12/16 10:11
→ macrose: 飛船,跟最後抵達得電腦城都是由電腦控制組成,自然有程 12/16 10:14
→ macrose: 式碼(但他不會看到氣體、液體等自然產物以程式碼呈現) 12/16 10:15
噓 swgun: 花10年只能看懂這些 簡直弱爆了 要不要再等20年 12/16 10:42
噓 qazxswptt: 不好意思 我覺得跟工程師無關 而是您理解力進步太緩慢. 12/16 11:08
→ qazxswptt: .. 12/16 11:09
噓 mader4444: 那第一集neo吃藥丸從電池被解放是解放爽的喔?從虛擬世 12/16 11:53
→ mader4444: 界解放到另一個虛擬世界? 12/16 11:53
噓 mader4444: 不是工程師也看的懂好嗎…這部片已經演的很好懂了 12/16 11:55
→ Max11: 有股菜味 12/16 12:28
推 airmike: 果然Neo的特殊能力會讓一堆人看到後來錯亂 如果Zion也是 12/16 13:23
→ airmike: 虛擬的 那這個Garbage Collection系統應該很好做 根本不 12/16 13:23
→ airmike: 需要烏賊追來追去 更不可能導出文中最後人類跟機器和平 12/16 13:24
→ airmike: 相處的結局 所有的事情都還是在cyber space 12/16 13:25
→ airmike: 如果只看一 勉強可以這樣推論 看到3還這樣推 就邏輯爆炸 12/16 13:25
推 suny921: 原PO大概是被『The Thirteenth Floor』影響了 12/16 17:28
→ macrose: 如果母體設計了一個錫安當資源回收桶,然後竟然還不能按 12/18 11:26
→ macrose: 一個清空全部殺光,要一個一個慢慢殺的話,蠻差勁的 12/18 11:26
推 kalavinka: 認真你就輸惹 12/18 23:46
→ GyroZep: 重看吧,看到現在還看不懂...真是 11/23 02:37