AI“決定”角色生死
早在2016年,《權力的游戲》第六季播出之前,慕尼黑工業(yè)大學(TUM)的學生就開發(fā)了一款AI應用程序,來預測劇中人物的存活情況。
近兩年之后,《權力的游戲》第八季,也就是最后一季,終于在昨天回歸了。再過六周多一點的時間,我們就會知道這部劇在過去八年中一直朝著一個目標前進,那就是:很多人會死。
和這部劇一起歸來的還有當年的學生團隊,他們使用自己設計的AI算法,在網(wǎng)上搜索相關的數(shù)據(jù),并計算劇中每個角色的生存幾率。
如果你認為機器學習的預測只是胡言亂語,可別忘了,這群學生之前創(chuàng)建的算法就成功預測了雪諾(Jon Snow)的復活。
注:【 圖片來源:PHYS 所有者:GoT-Team 2019 / TUM 】
他們的算法預測,龍媽(Daenerys Targaryen)最有可能在這個痛苦的世界中生存下來,存活的幾率為99%。她的國王之手小惡魔(Tyrion Lannister)的存活率也高達97%。
Jon Snow是一個稍微復雜一點的命題,但是,算法預測,他在第八季中幸存的機會為88%,可以說是非常強勁了。
從統(tǒng)計數(shù)據(jù)上看,Bronn幾乎肯定會死,預測的死亡率為93%;Gregor Clegane的死亡率也高達80%;三傻(Sansa Stark)出生在臨冬城,而且已經(jīng)結了婚,她的死亡率為73%;她的小妹妹(同時也是十足的壞蛋)Arya存活的幾率略高,預計的死亡率為47%。
當然,這只是算法分析的結果,所以要對這一切有所保留。說到底,這只不過是又一個證明機器學習能力的偉大實驗。
算法“魔力”何在?
機器學習能夠從過去的海量案例中學習,并自動編譯關于案列的統(tǒng)計數(shù)據(jù),然后對未來的事情做出預測。
《權力的游戲》里只有少數(shù)角色死于老年,但大多數(shù)角色都以暴力收場。這不僅讓人深思,劇中的死亡情況是隨機發(fā)生的,還是只發(fā)生在那些表現(xiàn)出類似特征的人身上?這些特征可能是年齡、血統(tǒng)和性別,也可能是劇中角色所做出的錯誤且重大的決定。
該算法試圖分析所有死亡角色的共同特征,然后利用共同特征來預測存活角色的死亡百分比(PLOD)。算法分析的數(shù)據(jù)提取自《冰與火之歌》和《權力的游戲》的維基百科內(nèi)容,這可能是分析該系列5本書和8季電視劇中大約2000個角色的最佳資源。
算法不僅從信息庫中提取每一個角色的死亡或存活信息,還提取了描述角色的其他特征。這樣,一個數(shù)據(jù)集就產(chǎn)生了,它可以用同一個特性來描述不同的角色,無論死亡或存活。下一步就是,找到最能區(qū)分死角色和活角色的特征集。
貝葉斯生存分析
這個機器學習模型旨在使用與貝葉斯推理相關的技術,來檢驗不同特征與角色壽命的關系,類似于檢驗治療和并發(fā)癥對癌癥患者的影響,或檢驗地震事件之間的相關性。
這個學生團隊假設,在一個角色的一生中,他/她每年都有一定的概率死亡。這個基本死亡率對所有角色都是一樣的,但特征不同會讓死亡概率增加。例如,作為一個男人可能會讓死亡風險增加60%。
通過計算這些危險性,機器可以為任何角色建立一個生存函數(shù),以此來判斷,在一段時間內(nèi),該角色死亡的可能性有多大。
該模型就房子、情人、婚姻、主/次要角色、以及性別等特征進行了分析。
神經(jīng)網(wǎng)絡
除了貝葉斯生存分析,另一種方法是訓練神經(jīng)網(wǎng)絡來預測某個角色在某一年的死亡率。這種方法也會建立生存函數(shù),但是神經(jīng)網(wǎng)絡的模式會比貝葉斯模型更復雜。神經(jīng)網(wǎng)絡會包含更多的“意外”死亡,而貝葉斯模型則認為這些死亡是隨機的異常值。
這個模型使用了Python的Keras框架?;旧?,最簡單的神經(jīng)網(wǎng)絡架構之一就是使用前饋技術。這意味著輸入是一個任意的實值維數(shù)向量,然后通過所謂的“隱藏層”進行處理,最終輸出也是一個數(shù)字向量。
此外,神經(jīng)網(wǎng)絡由許多參數(shù)組成,這些參數(shù)在訓練過程中會進行調(diào)整。訓練是自動改變參數(shù)的步驟,使網(wǎng)絡輸出盡可能接近給定的輸入- 輸出關系。
如何將與角色相關的復雜信息轉換為向量,是目前要考慮的重中之重。有些信息是標量,例如角色介紹在維基百科中的排名前后。其他信息,例如角色出現(xiàn)的情節(jié),是一組有預定義的值。
因此,我們可以創(chuàng)建一個維度與劇集數(shù)量相同的向量,如果角色出現(xiàn)在相應的劇集中,則將維度設置為1.0,否則設置為0.0。通過這種方式,不同種類的信息可以轉化為向量,而且這些向量會相加。最后,書中的數(shù)據(jù)提供了1561個輸入維度,電視劇中的數(shù)據(jù)提供了411個輸入維度。
一般來說,變老仍然是影響角色死亡的最重要因素,畢竟,年齡越大,經(jīng)歷的危險就越多。這就是角色的年齡也要被神經(jīng)網(wǎng)絡采納分析的原因。
因為神經(jīng)網(wǎng)絡的輸出只是決定“生存百分比”的一個維度,所以為每個角色創(chuàng)建90個不同的輸入向量是有可能實現(xiàn)的(每一年對應一個輸入向量)。如果角色到達設定的年齡仍然存在,神經(jīng)網(wǎng)絡將預測該輸入向量為1.0,否則為0.0。
此外,這個神經(jīng)系統(tǒng)還允許預測PLOS隨時間變化:修改角色的輸入年齡很容易,而且修改會與PLOS中的變化直接相關。系統(tǒng)預測的角色死亡率僅僅針對《權利的游戲》第八季。
為了總結這一點,讓我們看一些關于預測和神經(jīng)網(wǎng)絡的統(tǒng)計數(shù)據(jù)。
首先,的《冰與火之歌》里共有484個可用的角色,其中188個用于訓練(即已經(jīng)死亡),其余296個存活角色則用于預測。最后,書中數(shù)據(jù)的訓練準確率達到了88.75%,而最終的驗證準確率為89.92%。
同樣,《權利的游戲》中提取146個可用角色,82個用于訓練,64個用于預測。電視劇數(shù)據(jù)最終的訓練準確率為79.64%,最終的驗證準確率為85.69%。