機械学習がゲーム・オブ・スローンズの結末を「ネタバレ」:3人の愚か者が最初に死に、ドラゴン・マザーとティリオンが最後に笑う

機械学習がゲーム・オブ・スローンズの結末を「ネタバレ」:3人の愚か者が最初に死に、ドラゴン・マザーとティリオンが最後に笑う

制作:ビッグデータダイジェスト編集部

長い間待ち望まれていた『ゲーム・オブ・スローンズ』の最終シーズンがついに始まります!

ほとんどのゲーム・オブ・スローンズファンと同じように、私は番組のネタバレを恐れながら、午前中ずっと友人のサークル内を不安そうにスクロールしていた。しかし、最終回を「見る」ことになるとは思ってもいませんでした!しかも、ネタバレを教えてくれたのはアルゴリズムでした。

[[262585]]

この強力な妨害者の波はミュンヘン工科大学から来ています。最終シーズンが放映されるずっと前に、大学のコンピュータサイエンスの学生たちは特別な課題を与えられた。機械学習を使って、今シーズン鉄の玉座に座る可能性が最も高いのは誰かを予測するというものだ。

[[262586]]

この面白そうなプロジェクトでは、かなり残酷なアルゴリズム、つまり生存確率アルゴリズムが使用されています。具体的な生存率予測は、寿命データ分析を通じて得られます。この科学的研究技術は、がん患者に対する治療や合併症の影響を調べるなど、すでに幅広い医療分野に応用されています。

実際、生存確率アルゴリズムはミュンヘン工科大学で毎学期行われる JavaScript セミナーの一部であり、このトピックは世代を超えて学生たちの研究関心を呼び起こしてきました。 彼らはアプリを開発し、各キャラクターの死亡率を計算する人工知能アルゴリズムを作成しました。 2016年、第6シーズンが放送される前の時点で、専攻の学生たちはスノーの復活を正確に予測していた。

では、早速、この驚くべきアルゴリズムによって予測された最終シーズンの最終回を見てみましょう。

アルゴリズムによれば、デナーリス・ターガリエンの生存率は99%、ティリオン・ラニスターの生存率は97%である。

生存率ランキング

死亡確率の高いブロンやマウンテンに加え、七王国で最も賢い男(ティリオン・ラニスター)によって最も長生きすると予言されたサンサ・スタークの死も、死亡率73%と明確に予言されていた。

強力なスポイラーの操作方法は?

アルゴリズムは具体的にどのように機能するのでしょうか。簡単に言うと、原作や放送されたエピソードから登場人物の役割、身元、性別、親族の数、年齢、忠誠心、死亡確率などを抽出し、データ分析と予測を行います。

Sansa の例を挙げて簡単に説明しましょう。

まず、ウェスタロスでは、貴族は一般的に平民よりも長生きし、女性キャラクターも男性キャラクターよりも長生きします。

主人公たちによると、北の王の王冠の宝石から最も屈辱的な貴族の女性、そしてウィンターフェルの貴婦人に至るまで、主人公の光輪の下で死亡率は 16% 低下したそうです。

一般的に、結婚した女性は長生きします。数々の不幸な結婚はサンサに辛い教訓をもたらしたが、同時に「私を殺さないものは私を強くしてくれる」ということも証明した。

力ある一族に生まれると寿命も延びる!スターク家の子供たちは数々の苦難を経験してきたが、「若き狼王」を除いて全員が決勝まで勝ち進んだ。

屈辱に耐え、多くの苦難を乗り越えてきたサンサがシーズン8まで生き延びるのは容易なことではないが、最大73%という予想死亡率が番組でどのように実現されるのか、期待して待つしかない。

登場人物の完全なリストとその生存確率は、次の Web サイトでオンラインで確認できます。 ☟

https://got.show

アルゴリズムとデータの歌

このコースの講師であるブルクハルト・ロスト氏によると、ゲーム・オブ・スローンズの登場人物の生存率の予測は単なる「ファンタジー」データであるものの、この問題を研究するこの方法は現実世界で長く使用されており、私たちの日常生活に大きな影響を与えているという。同様のアルゴリズムは金融や医療の分野でも役立つ可能性があります。

ゲーム・オブ・スローンズの世界のインタラクティブマップのスクリーンショット

データ抽出

ちなみに、データのソースは、Wikipedia の「ゲーム・オブ・スローンズ」の紹介シリーズです。 Wikipedia は基本的に 5 冊の本と 8 シーズンのテレビシリーズの内容を網羅しており、合計約 2,000 人のキャラクターの情報が掲載されています。キャラクターの生存状態、つまり死亡しているかどうかを抽出するだけでなく、その他のキャラクターの特徴情報も必要です。

各キャラクターの特徴を記述したデータセットを使用して、次のステップは、キャラクターが死亡しているかどうかを判断できる一連の特徴を見つけることです。

ベイズ生存分析

このモデルの主な目的は、ベイズ推論法を使用して、さまざまな形質と生存率の関係を決定することです。このモデルでは、それぞれが一定の死亡確率を持っていると想定しています。すべてのキャラクターにとって、「基本的な危険」が到来したときの死亡確率は同じです。俳優が亡くなった理由は、間違いなく彼が演じたキャラクターが「自殺願望」を持っていたためだ。

たとえば、ある男性が死亡する確率は 60% ですが、ラニスター家に留まると、その確率は 50% 低下する可能性があります。これら 2 つの要素を考慮した後、生存関数を確立できます。

この生存関数は、特定の時点でのキャラクターの生存率を具体的に表します。たとえば、ジョン・スノウが60歳まで生きる確率は45パーセント、ジェイミー・ラニスターがシーズン8まで生き残る確率は60パーセントだと考えられる、といったことが分かるかもしれません。

このモデルは、pymc3 パッケージを使用した MCMC シミュレーションを使用してトレーニングされます。分析対象として次の機能を選択します。

  • 恋人
  • 結婚
  • タイトル
  • 主要/副次的キャラクター
  • ニューラルネットワーク

Kerasはモデルを構築する

ミュンヘンの学生たちは、Python の Keras を使用してモデルを構築しました。これは基本的に最も単純なニューラル ネットワーク アーキテクチャの 1 つであるフィードフォワード手法です。つまり、入力値は任意の数の実数値次元を持つベクトルであり、その後「隠し層」を介して処理され、最終的な出力も数値のベクトルになります。さらに、このようなニューラル ネットワークは、ネットワーク出力が指定された入力と出力の関係に可能な限り近くなるように、トレーニング プロセス中に自動的に変更される多くのパラメーターで構成されています。

文字に関連する複雑な情報をベクトルに変換する方法を考慮する必要があります。一部の情報は、Wikipedia での役割のランキングや関係の数など、スカラーです。

その他の情報としては、キャラクターが登場したエピソードなど、事前定義された値のセットが考えられます。したがって、エピソードと同じ次元のベクトルを作成し、対応するエピソードにキャラクターが登場する場合は次元を 1.0 に設定し、そうでない場合は 0.0 に設定する必要があります。このようにして、さまざまな種類の情報をベクトルに変換することができ、これらのベクトルは互いにのみ影響を与えます。最後に、書籍データには 1561 の入力ディメンションがあり、表示データには 411 の入力ディメンションがあります。使用されるデータ型は次のとおりです☟

  • 原作:性別、ページ数、親族数、年齢、文化、家、家の地域、忠誠心、登場人物が所属する本、所在地、タイトル
  • エピソード:性別、コンテンツ量、親族数、年齢、忠誠心、登場エピソード、タイトル

一般的に、「年齢」は依然としてキャラクターの死を決定する最も重要な要素です。結局のところ、年齢が高ければ高いほど、危険にさらされていたことになります。これが、キャラクターの現在の年齢 (上記の 1 ホット ベクトル) もニューラル ネットワークの入力の一部となる理由です。 ニューラル ネットワークの出力は、単に「生存率」を 0 から 1 の間の数値として決定するため、1 つの文字に対して、推定年齢などの約 90 種類の異なる入力ベクトルを作成できます。 キャラクターがその年齢でまだ生きている場合、ニューラル ネットワークはその入力ベクトルに対して 1.0 を予測し、そうでない場合は 0.0 を予測します。

最後に、予測とニューラル ネットワークに関する統計をいくつか見てみましょう。 まず、オリジナルのゲーム・オブ・スローンズ Wikipedia には合計 484 人のキャラクターが含まれており、そのうち 188 人がトレーニングに使用され (つまり、死亡)、残りの 296 人の生存キャラクターについては予測が作成されます。 最終的に、トレーニング精度は88.75%に達し、最終検証精度は89.92%でした。 同様に、エピソード Wikipedia からは 146 文字を抽出でき、そのうち 82 文字はトレーニング用、64 文字は予測用です。 ここでの最終的なトレーニング精度は 79.64%、最終的な検証精度は 85.69% です。

[この記事は51CTOコラムBig Data Digest、WeChatパブリックアカウント「Big Data Digest(id: BigDataDigest)」からのオリジナル記事です]

この著者の他の記事を読むにはここをクリックしてください

<<:  TCP輻輳制御アルゴリズムについての簡単な説明

>>:  2019 年に人工知能がハイパフォーマンス コンピューティングに及ぼす 10 の影響

ブログ    

推薦する

...

ホテル業界が人工知能と機械学習を活用して利益を最大化する方法

最近、テクノロジーが私たちを支配していることに疑いの余地はありません。 COVID-19のパンデミッ...

距離ベクトルルーティングアルゴリズムの仕組みを説明する

[[122231]]現代のコンピュータ ネットワークでは、ネットワーク トポロジやトラフィックの変化...

AlphaGo の最初のバグ: 囲碁アルゴリズムの最大の弱点は何でしょうか?

[[163852]]どれほど恐ろしいモンスターにも弱点はあります。なぜAlphaGoは皆を驚かせる...

人工知能は過去70年間で急速に成長し始めたばかりである

[[337550]] 2019年末現在、わが国の中核人工知能産業の規模は510億人民元を超え、人工知...

トロント大学のデュヴノーチームは確率微分方程式を組み合わせて、無限深ベイズニューラルネットワークを提案した。

[[433557]]ニューラル ネットワークの制限を無限の数の残差層の組み合わせとして見ると、その...

OpenAI DALL-E 3モデルには「不適切なコンテンツ」を生成する脆弱性があり、マイクロソフトの従業員はそれを報告した後に「口止め命令」を受けた。

2月2日、マイクロソフトのソフトウェアエンジニアリング部門のマネージャーであるシェーン・ジョーンズ...

...

...

...

...

AIの次の目的地:洗練された生活シナリオのインテリジェント時代

[[348783]] Canvaからの画像テクノロジーは生活の中でどのような役割を果たしているのでし...

Java ソートアルゴリズムの概要 (VIII): 基数ソート

基数ソートは「分散ソート」に属します。基数ソートは「バケット ソート」またはビン ソートとも呼ばれま...

...

...