【為什麼我們要挑選這篇文章】全球風靡的影集《權力遊戲》進入最後一季,首集開播消息遍佈臉書、IG。在所有期待與興奮中,影迷最好奇的就是:誰能活過第八季?誰又會坐上王位?
最終結果劇組當然不會告訴你,但有個 AI 演算法算得出來喔~(責任編輯:陳伯安)
「《科技報橘》徵才中!跟我們一起定位台灣產業創新力 >> 詳細職缺訊息
快將你的履歷自傳寄至 [email protected]」
千呼萬喚,權利遊戲最終季終於開播了。
和大部分粉絲一樣,文摘菌(本文作者)一整個上午的朋友圈都刷的戰戰兢兢,生怕被劇透。但是沒有想到,還是「被」看到了大結局,而且,給我劇透的還是個演算法。
這演算法早就預測到 Snow 的復活
這波最強劇透來自慕尼黑工業大學。早在最終季開播前,這所大學的電腦科學的同學就接到了一個特殊的作業:用機器學習,預測這一季誰最有可能坐穩鐵王座。
這個聽起來很有趣的項目用到了一種頗為殘酷的算法——生存機會算法。具體的生存率預測,是通過壽命數據分析得到的結果。這種科學研究技術在醫療上已經有廣泛的應用,例如用來檢驗治療方法和併發症對癌症患者的影響。
其實, 生存機會算法是慕尼黑工業大學每學期 Javascript 研討會的一部分,這個課題激起一屆又一屆學生的研究興趣。 他們開發了一個應用城市, 並創造了一套人工智慧的演算法來計算每個人物的死亡率。早在 2016 年第六季播出前,該專業的學生就準確預測了 Snow 的復活。
廢話不多說,先來看看這個厲害的演算法預測的最終季大結局。
以下為 AI 版劇透,請小心服用
根據演算法,龍媽 Daenerys Targaryen(丹妮莉斯·塔格利安)生存的幾率最高,達到了 99%,小惡魔 Tyrion Lannister(提利昂·蘭尼斯特)也有 97% 的存活率。

除了死亡率可能性最高的波隆和魔山,這個被七大王國最聰明的男人(Tyrion Lannister)預言最長命的 「三傻」(Sansa Stark),她的死期也被預測的明明白白,死亡率高達 73%。
這劇透怎麼算?主角光環、女性平均壽命都要納入
演算法具體怎麼做的呢?簡單來說,就是通過從原著和已播的影集中提取人物角色、身份、性別、親屬數量、年齡、忠誠度、死亡概率等等來進行數據分析預測。
我們先拿 Sansa 的例子來簡單解釋一下。
首先, 在維斯特洛大陸, 一般來說貴族是要比平民要活得久一點,而女性的角色也會比男性的要活的久一點。
按主角來分,從北境之王的掌上明珠淪為最屈辱的貴族小姐再到臨冬城女爵,主角光環下,死亡率一下降低 16%。
一般結過婚的女性也比較長命。雖然幾段不幸的婚姻給 Sansa 帶來慘痛的教訓,但也完美的印證了「一切殺不死我的都將令我變強。」
出生在一個厲害的家族也會延長壽命哦。史塔克家族的孩子雖然歷經磨難, 但除了「少狼主」外都還闖到了決賽圈。
忍辱負重的 Sansa 有命撐到第 8 季也是實屬不易, 但預測高達 73% 的死亡率如何在劇中實現, 我們可以拭目以待。
香知道完整人物清單和其生存機會等數據統計,點這。
據這門課程的授課教師 Burkhard Rost 介紹,雖然對權力的遊戲裡面人物角色生存率的預測只是來「幻想」數據,但是這種研究問題的方法早已被用於現實世界,並且對我們的日常生活產生了強大影響。類似的算法也能夠在金融和醫療領域發揮作用。

考慮實際情況,數據的最好來源是關於《權力遊戲》的一系列維基百科介紹。在維基百科上基本囊括了 5 本書以及 8 季電視劇的內容,總計大約 2,000 位角色的信息。除了提取角色的生存狀態,即是否死亡,還需要其他的角色特徵信息。
有了描述每一個角色特徵的數據集,下一步是尋找能夠判斷角色是否死亡的特徵集。
貝葉斯生存分析:從角色特徵判斷存活率
模型的首要目標是使用貝葉斯推斷相關方法來判斷角色不同特徵與存活率關係。模型假設,每一個都有一定的死亡概率。對於所有角色來說,「基本危險」到來的死亡概率都是相同的。演員之所以領盒飯,肯定他演的角色有「想死」特性。
例如,男人死亡概率為 60%,而呆在蘭尼斯特家裡可能會降低 50%。綜合考慮這兩個因素之後,就可以建立一個生存函數。
這個生存函數具體描述的是:在某個時間點,角色存活率。例如它可能告訴我們,喬恩·雪諾(Jon Snow)活到 60 歲的概率是 45%,或者傑米·蘭尼斯特( Jamie Lannister)被認為有 60% 的幾率能活到第八季。
使用帶有 pymc3 封裝的 MCMC 仿真來訓練這個模型。選擇下列幾個特徵進行分析:
- 家庭(House)
- 愛人(Lovers)
- 婚姻(Marriage)
- 地位(Titles)
- 主角/配角(Major/Minor character)
- 男性(Male)
- 神經網路(Neural Network)
無論原著或劇情,預言準確率皆超過 85%
慕尼黑的同學使用了 Python 的 Keras 來建立模型。基本上是最簡單的神經網路架構之一——前饋技術。這意味著,輸入值是具有任意數量的實值維度的向量,然後通過「隱藏層」進行處理,最終輸出也是數字向量。此外,這類神經網路由許多參數組成,參數會在訓練過程中自動更改,因此網路輸出也能盡可能接近給定的輸入 – 輸出關係。
必須考慮如何將與角色相關的複雜信息轉換為矢量。某些信息是標量信息,例如維基百科中角色的排名或其關係數。
其他信息可能是一組預定義的值,例如角色出現的劇集。因此,需要創建一個與劇集維度相同的向量,如果角色出現在相應的劇集中則將維度設置為 1.0,否則為 0.0。這樣,可以將不同種類的信息轉換為矢量,並且這些矢量僅相互影響。最後,有 1561 個書籍數據的輸入維度和 411 個顯示數據。以下是使用的數據類型☟
- 原著:性別、頁數多少、親屬數量、年齡、文化、房子、房屋區域、忠誠度、角色所屬的著作、地點、標題
- 劇集:性別、內容多少、親屬數量、年齡、忠誠度、角色出現的劇集、標題
一般來說,「年齡大小」依然是導致角色死亡最重要的因素;畢竟,年紀越大,之前所遭受的危險就越大。這就是為什麼角色的當前年齡(如前所述的單熱矢量)也是神經網路輸入的一部分。 因為神經網路輸出只是將「存活百分比」確定為 0 和 1 之間的數字,所以可以為單個角色創建大約 90 個不同的輸入向量,例如可能的年齡就會有一個。 如果該角色在該年齡仍然存活,則神經網路將為該輸入向量預測 1.0,否則為 0.0。
總結一下,讓我們看一下有關預測和神經網路的統計數據。 首先,權力遊戲原著維基百科共包含 484 個可用的角色,其中 188 個用於訓練(即已經死亡),剩下的 296 個還活著的角色創建了預測。 最後,訓練準確率達到了 88.75%,而最終驗證準確率為 89.92%。 類似地,可以從劇集維基百科提取 146 個可用角色,82 個用於訓練,64 個用於預測。 這裡的最終訓練準確率為 79.64%,最終驗證準確率為 85.69%。
(本文經合作夥伴 大數據文摘 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈机器学习“剧透”权游大结局:三傻最先领盒饭,龙妈、小恶魔笑到最后〉。)
你會想知道
一個「值得信賴 AI」長什麼樣子?歐盟發佈 7 條人工智慧的道德準則