- +1
機器學習“劇透”權游大結局:三傻最先領盒飯,龍媽笑到最后

千呼萬喚,權利的游戲最終季終于開!播!了!
和大部分權游粉一樣,文摘菌朋友圈都刷的戰戰兢兢,生怕被劇透。但是沒有想到,還是“被“看到了大結局!而且,給我劇透的還是個算法。

這個聽起來很有趣的項目用到了一種頗為殘酷的算法——生存機會算法。具體的生存率預測,是通過壽命數據分析得到的結果。這種科學研究技術在醫療上已經有廣泛的應用,例如用來檢驗治療方法和并發癥對癌癥患者的影響。
其實, 生存機會算法是慕尼黑工業大學每學期Javascript研討會的一部分,這個課題激起一屆又一屆學生的研究興趣。 他們開發了一個應用程序, 并創造了一套人工智能的算法來計算每個人物的死亡率。早在2016年, 第六季播出前, 該專業的學生就準確預測了Snow的復活。
廢話不多說,先來看看這個厲害的算法預測的最終季大結局。
根據算法,龍媽Daenerys Targaryen(丹妮莉斯·塔格利安)生存的幾率最高,達到了99%,小惡魔Tyrion Lannister(提利昂·蘭尼斯特)也有97%的存活率。

除了死亡率可能性最高的波隆和魔山,這個被七大王國最聰明的男人(Tyrion Lannister)預言最長命的 “三傻”(Sansa Stark),她的死期也被預測的明明白白,死亡率高達73%。

算法具體怎么做的呢?簡單來說,就是通過從原著和已播的劇集中提取人物角色、身份、性別、親屬數量、年齡、忠誠度、死亡概率等等來進行數據分析預測。
我們先拿Sansa的例子來簡單解釋一下。
首先, 在維斯特洛大陸, 一般來說貴族是要比平民要活得久一點,而女性的角色也會比男性的要活的久一點。





完整的人物清單及其生存機會等數據統計可以在以下網站在線獲取。?
https://got.show
“算法”與“數據”之歌
據這門課程的授課教師Burkhard Rost介紹,雖然對權力的游戲里面人物角色生存率的預測只是來“幻想”數據,但是這種研究問題的方法早已被用于現實世界,并且對我們的日常生活產生了強大影響。類似的算法也能夠在金融和醫療領域發揮作用。

數據提取
考慮實際情況,數據的最好來源是關于《權力游戲》的一系列維基百科介紹。在維基百科上基本囊括了5本書以及8季電視劇的內容,總計大約2000位角色的信息。除了提取角色的生存狀態,即是否死亡,還需要其他的角色特征信息。
有了描述每一個角色特征的數據集,下一步是尋找能夠判斷角色是否死亡的特征集。
貝葉斯生存分析
模型的首要目標是使用貝葉斯推斷相關方法來判斷角色不同特征與存活率關系。模型假設,每一個都有一定的死亡概率。對于所有角色來說,“基本危險”到來的死亡概率都是相同的。演員之所以領盒飯,肯定他演的角色有“作死”特性。
例如,男人死亡概率為60%,而呆在蘭尼斯特家里可能會降低50%。綜合考慮這兩個因素之后,就可以建立一個生存函數。
這個生存函數具體描述的是:在某個時間點,角色存活率。例如它可能告訴我們,喬恩·雪諾(Jon Snow)活到60歲的概率是45%,或者杰米·蘭尼斯特( Jamie Lannister)被認為有60%的幾率能活到第八季。
使用帶有pymc3封裝的MCMC仿真來訓練這個模型。選擇下列幾個特征進行分析:
家庭(House)
愛人(Lovers)
婚姻(Marriage)
地位(Titles)
主角/配角(Major/Minor character)
男性(Male)
神經網絡(Neural Network)
Keras建立模型
慕尼黑的同學使用了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%。
本文為澎湃號作者或機構在澎湃新聞上傳并發布,僅代表該作者或機構觀點,不代表澎湃新聞的觀點或立場,澎湃新聞僅提供信息發布平臺。申請澎湃號請用電腦訪問http://renzheng.thepaper.cn。





- 報料熱線: 021-962866
- 報料郵箱: news@thepaper.cn
互聯網新聞信息服務許可證:31120170006
增值電信業務經營許可證:滬B2-2017116
? 2014-2025 上海東方報業有限公司