【実施例1】
【0052】
スーパーマリオブラザーズ(登録商標)に夢中になって成長した世代の人々にとって,そのゲームは,プラットフォームのジャンルそのものである。ゴールと基本的な操作は単純だけれども,そのゲームは,様々な罠を解決し,キノコ王国の宝物を求めて夢中になることで,数えきれない娯楽の時間を与えてくれた。
【0053】
そこで,以下の実施例は,スーパーマリオブラザーズ(登録商標)を基に説明する。しかし,本発明は,スーパーマリオブラザーズ(登録商標)におけるAIアルゴリズムに限定されるものではない。
【0054】
最近の研究は,以前の研究の様々な分野を基にしている。最も近い例は,スーパーマリオブラザーズ(登録商標)をプレイすることを目的としてAIを探求する研究である。少し遠い例としては,他のゲーム,特に進化的なものをプレイすることが意図されているAIである。
【0055】
本来的には,ある瞬間におけるマリオの状態は,マリオAIのベンチマークによって完全に決定されるものである。しかし,AIを実装する時,選択アルゴリズムで表わされる状態が,どのくらいでどのような局面なのかにおいて,多数の選択肢がある。既定値では,マリオAIのベンチマークは,マリオスプライトの中心に置かれた22×22個のグリッドタイルを有する。
【0056】
上記のグリッドは例であり,異なってもよい。
【0057】
すべてのグリッドセルは,それぞれの位置で存在するあらゆる関係の情報を含んでいる。グリッドに含まれる情報の例は,敵,地面,ブロック,パワーアップ,そしてマリオ自身である。この情報は,状態が良い時を表わしているけれども,問題空間においてより細かな様子を提供する2つの付加的要素を取り入れる。1つ目は,いずれかの特定グリッドが観測される時のレベルをクリアするための残り時間であり,2つ目は,グリッドが観測される時のマリオが向く方向である。したがって,すべての状態の表現は,時間と方向が追加されるグリッドのスクリーン情報から成る。
【0058】
解の表現
解の表現は,間違いなく最適化アルゴリズムの最も重要な部分であり,解がどのように表現されるかについて,フレームワークにおいては制約がない。上記で説明されているように,本発明による表現は,状態から動作へマッピングすることである。
【0059】
スーパーマリオブラザーズの動作空間は,組み合わせ可能な,1)左に動く,2)右に動く,3)しゃがむ,4)ファイアボール(fireball)/速く動く,から成る。解の表現は,状態間の明示的なリンクのすべてを含んでいるが,単一レベルの確定性により形成される黙示的なつながりも存在する。もし,マリオが状態‘a’で動作‘x’を行う場合,マリオは,通常,状態‘a´’に移るだろう。この表現の形式は,この形式でのアルゴリズムは,AIが,実施中である現在のレベル以外には存在しない黙示的なつながりに依存することを,一般化しない1つの理由である。これらの状態‐動作のペアの集合が,解を表現する(
図6参照)。
【0060】
図6において,マリオの状態の任意の集まりが,円で表わされている。円の下にある文字は,それぞれの状態に関連する動作を表わしている。この文字は,上記記載された動作の始めの文字に対応している。状態間の点線は,マリオが状態間を移動するときにのみ,状態間に形成される黙示的なつながりを表わしている。また,つながりは,解を導き出すことを示している。状態‘X’は,死を意味している。
【0061】
解の初期化
他の進化アルゴリズムと同様に,解をある予測可能なランダム値に初期化する処理を始める。しかし,ある解の予測可能なスクリーンの小さな集合を訪れるだけならば,すべてを初期化するにはリソースの浪費となるだろう(また,処理しにくいものでもある)。その代わりに,空の解から始めることで,ゆっくりと初期化させる。つまり,AIは,あるレベルを探索する時に,ある適切な値に初期化されたスクリーンを初めて認識することになる。このようにして,無駄のない初期化の特性とする。
【0062】
カッコウ探索(Cuckoo search)
カッコウ探索は,自然界の実例を基にした学習アルゴリズムの最も新しいものである。詳細は,[X.−S.Yang,S.Deb,‘Cuckoo search via L´evy flights’, in Proc. World Congress Nature & Biologically Inspired Computing NaBIC 2009,2009,pp. 210−214]で理解され,もしこの研究がなかったら,本明細書の残りの記載に沿って理解できるよう,このアルゴリズムの本質を説明する。これの最もよい例は,グリッドの少し外部にある大砲である。よくあることで,たとえAIが大砲の知識を有していなくても,AIは,大砲が発火するのを待つことになる。
【0063】
このアルゴリズムは,托卵の方法で他の鳥の巣に卵を産む,ある種のカッコウの動作を基にしている。もし,托卵の特性が十分に発達していたなら,その卵は生き残り,卵が孵化することでその巣を乗っ取ることになる。さもなければ,卵は,巣の里親に排除されることになる。もっともよく托卵を進化させる処理は,カッコウ探索の本質である。
【0064】
アルゴリズムの説明
所定の最適化問題について,解は,巣(卵を含んだ)によって表現される。基本的なアルゴリズムは,ランダムな解の初期化を呼び出す。各反復ステップにおいて,2つの操作が実行される。1つ目は,その時評価されるある現在の巣からランダムウォークを実行することにより,新しい巣を生成する。実際上,この巣は現在の最も良い巣である。この新しい巣を維持するかどうかを決定するために,すでに存在するランダムな巣が選択され,そしてそれらの優劣が比較される。より良い巣は維持され,好ましくない巣は,排除される。2つ目は,好ましくない巣は,ある確率pにより取り除き,ランダムな巣に変換する。これは,ある確率pで,最も好ましくない托卵が発見されることに相当する。
【0065】
レヴィフライト(Levy Flight)
上記アルゴリズムの核心部分は,レヴィフライトを使用しなくても(例えば標準的なブラウン運動で)記載され得る。しかしそのようなバージョンは,最適化を考慮していない。レヴィフライトに基づく運動は,裾が低減していくレヴィ分布の性質から,大きな領域をとてもすばやく探索することができる。このことから,所定の解の周りの領域を探査する時,この探索は,ほとんどの場合ローカルに留まることになるが,時折,長い距離を移動することができる。これは,高速で空間を探査する助けとなる。マリオが提供する莫大な探索空間を考慮する時,このようなタイプが適している。レヴィフライトの有用性の詳細は,上記研究で説明されている。
【0066】
パラメータチューニング
高く評価されるカッコウ探索の1つの明確な特質は,パラメータが少ないことである。遺伝的アルゴリズムのようなアルゴリズムに共通する問題点は,最良の結果を得るために,入念にチューニングしなければならない多くのパラメータが存在することである。Cukoo探索は,個体数を加えた単一のパラメータ,すなわち卵が発見される確率を提供するのみと言うことができる。このパラメータは,レヴィ分布のパラメータを考慮しても,一般的な遺伝的アルゴリズムよりもはるかに少ない。加えて,少なくとも明示的な例の集合では,このパラメータは,どのチューニングにも起こる多くのエラーをほとんど考慮しない。このアルゴリズムをマリオの問題空間に適用する時,この鈍感さが保持されるかどうかは,知られていなかった。パラメータの感度はこの実験の焦点ではないが,かなりの部分が正しいようである。適切な確率が,無関係に.2から.5にわずかに変化したのに対して,個体数は,その結果により,15から30の巣にわずかに変化した。
【0067】
レヴィフライトとカッコウ探索のマリオへの応用
カッコウ探索の初期の実験において,いくつかの従来の最適化問題を行うことが示された。翌年,[‘Engineering optimization by cuckoo search ‘Int.J.Mathematical Modelling and Numerical Optimisation,vol.1,no.4,pp330−343,May 2010.]などの,いくつかの現実世界の最適化問題の開発の成果がさらに示された。しかし,これらの問題の性質は,すべてが数値探索空間に関するという点で類似している。レヴィフライトは,レヴィ分布の大小の量によって数値を変換させ,概念化するのが容易であるため,このタイプの問題は,特にレヴィフライトに適している。この技術を,マッピングが容易でない領域へ展開させる開発は今までなされていなかった。しかし,考えられる今後の実験の領域として,TSP(巡回セールスマン問題)が示された。
【0068】
マリオのようなTSPは,ある制約のもとに,異なる状態の連続性を最適化する試みを表わしている。TSPにおいて,各状態は,シティであり,ゴールは,各シティを1度訪れる場合の最も短いパスを最適化することである。マリオの場合,状態は,上記の状態であり,ゴールは,マリオがそのレベルの最後に向かって移動する距離を最短にすることである。
【0069】
レヴィ分布による解を基にした状態の問題についても,同様の変換を適用する方法を提案する。その方法を初めに単純TSPに適用し,その後,マリオの領域にすべて拡張する(状況は似ているが)。
【0070】
状態と数値間のギャップの橋渡し
レヴィフライトは,特定の方法で解を変化させることにより機能する。この解が数値の時,レヴィ分布から値を得ることと解を直接変化させることは,単純な処理である。それに比べて,TSPは,連続状態を含むので,レヴィフライトの方法では,一般的に変換させることができない。そこで,数値と連続状態間のマッピングを生成することにより,レヴィ値をTSP問題に適用する直観的な方法を可能にする。さらに,このようなシステムは,この方法により視覚化できるいずれの問題にも適用されることになる。そのような関係の1つとして,連続状態を数値で表現することがある。各状態は,数値のビットに対応している。この連続の大小の変化は,各状態の特定の変更として表現される。TSPは,同様の方法で視覚化できる。(
図7参照)
【0071】
図7は,TSPの解と数値の大小の変化を示している。数値と解は共に,連続状態を表わしている。数値に関して,変化の大きさは,状態を変更するために,状態を符号化するビットの重要度に,大抵,依存する。TSPの解において,状態変化の頻度は,最も重要である。
【0072】
ここで留意すべきことは,‘大’と‘小’の概念は,異なる2つの例によって別々に表わされていることである。問題の多くは,領域特有の方法により,そのような大きさの相異を表現することになるだろう。この関係は,TSPの解を変化させるゴールを明確に示している。しかし,さらに加えると,必要な変化を生成する数値によって,ある方法が創り出される必要がある。
【0073】
変化の際の数値の改変
任意の変化を連続状態へ表わす方法を明確に述べていることから,そのような変化をもたらす処理を作り出す必要がある。幸運にも,どの数値も取り込み(おそらくレヴィ分布から),ほとんどいずれにも変化するパラメータとして,その数値を使用する方法が複数ある。例えば,ある方法は,確率として数値を扱うことができる。TSPの各シティは,レヴィ確率pによって,ランダムなシティと交換される。通常,わずかな変化のみの結果なら,確率は低くなる。まれに全体の解が変化することがある。これは必要な振る舞いである。さらに制約される例として,レヴィ分布の数値は,すべての状態数のほんの一部分とみなされる場合がある。そのほんの一部分を使用することにより,最も多い現在の状態数の多くが,ランダムに変化する。これは,初期状態がすでに最適化であるように,つまり,つながりの端が探査の重要部分であるように,解を展開する場合に,特に有用である。ここで留意すべきことは,選択される状態がランダムに変化するように始めているが,これは必ずしも要件ではないことである。多くの最適化問題は,新しい状態を選択するヒューリスティックを利用することが望ましい。
【0074】
マリオのTSP
TSPへのアルゴリズムの適用は,マリオへの適用がほぼすぐに理解できるほど,一般的だった。上記,状態表現により,マリオの解でレヴィ変異を生成する上記説明の1つと同様の方法を説明できる必要がある。しかし,TSPで,各状態は理解され,ゴールは,すべての状態を介して,最適なパスを見つけることができた。マリオは,数えきれないほど多くの状態を有している。さらに,状態から状態への遷移を制限する制約の集合は,あまり理解されていない。マリオの問題は,認識できないほどの状態を有し,状態間の遷移は,ほとんど理解されていない。
【0075】
しかし,前記段落に示されるように,解を作り上げる状態と遷移の小さな部分集合については,容易に推論できる。すべての状態は,次の状態に至る動作に関連している。レヴィ分布によりこれらの連続状態は変換される。
【0076】
レヴィ変異の適用
レヴィ確率が,状態を変化させる必要があることを示す時,TSPでは選択できたような,完全にランダムな状態を選択する方法はない。なぜなら,状態の集合が理解されていないためである。すべての状態が理解されていても,現在の状態へのつながりは,同様に,容易に決定できない。したがって,代わりに,新しい動作がランダムに(ヒューリスティックに)生成される。そのため,レヴィ変異は以下のように適用できる。初めに,レヴィ分布の値を確率として利用し,解となる状態‐動作のペアのいずれかの1つを変化させる。前記確率により,すべての状態‐動作のペアを巡回し,適切に動作を変化させる。興味深いことに,変化した連続状態の位置は,まったく変化していないが,順に続くすべての状態へのリンクは,すぐに,切断される(
図8参照)。
【0077】
図8は,
図6に適用可能なレヴィ変異の例を示している。切断されるリンクは黒の矩形で示されている。古い動作から新しい動作へ矢印が示されている。ここで留意すべきことは,初めの変異は,次の状態との関連性を取り除いたにもかかわらず,もう1つまた変異されていたことである。これは,将来の変異が,それを連続状態に戻す場合,これは役割を果たすことになる。
【0078】
これは,変異が,TSPで見られた切断よりもさらに多くの切断となることを意味している。加えて,
図7の数値の例のように,変化の大きさは,ほぼ,変化する状態の位置に依存する(初期の連続状態は最も影響が大きい)。
【0079】
ソフトマックス(SOFTMAX)による探索空間の絞り込み
今あるものを含めて,進化するAIは,それほどうまくいってはいない。つまり,AIは,ランダムな初期化状態では,とてもゆっくりと収束する。事実,マリオAIのコンペの所定の最少シュミレーション数は,決して合理的な解を導かない。最終結果は,表IIで理解できる。性能は期待外れだが,それは予想通りである。そのような大きな問題空間で,解を見つけだすことは,本質的に不可能であり,コンペにおける所定の制限である。ソフトマックスは,Q学習に利用される手法である。これは,貪欲手段の問題点である,好ましくない状態が最良の1つとして選択される可能性を回避する。ソフトマックス手法は,様々なQ値を基にして,適切な確率を各遷移に割り当てる。ここで使用されるアルゴリズムは,Q学習と異なるが,そのため,新しい状態への遷移の確率の基礎となるQ値は存在しない。けれども,ソフトマックスにより具体化される概念は,十分似通っているため,以下のヒューリスティックを説明するのに利用できる。この実験で使用されるAIは,マリオのレベルのコースをクリアするため,次の状態へ展開する動作を絶えず選択する。これらの選択時,チューニングされたあるヒューリスティックの手法によって,好ましくない動作から好ましい動作になるように変換することで,ソフトマックス手段の本質が理解される。初めに,一般的なヒューリスティックをアルゴリズムに適用することを考察する。次に,マリオを最適化するために選択する特定のヒューリスティックを考察する。
【0080】
ヒューリスティックの適用
説明したとおり,初期化時にヒューリスティックを適用することは可能であり,レヴィ変異処理の一部分として適用することも可能である。それぞれの場合において,状態を取り込み,遷移動作がこの状態で生成されるように決定する。これは,次の状態が何になるかを決定する。一般的に,小探索空間のアルゴリズムにおいては,これらの決定は,ランダムに生成される。代わりに,確率pによって,ある特定動作は,ある所定のヒューリスティックに従って選択される。別の方法では,ランダム動作が選択されることになる。さらに,オリジナルのソフトマックス手段と異なる点があげられる。つまり,ヒューリスティックは,現在の状態と関係がない。
【0081】
現在の状態がたとえどんなであっても,確率は,本実験においては同じままである。状況固有の確率は推測できても,同時に,システムによってハードコードされた規則に対応することにより,すべての付加的確率はアルゴリズムをさらに複雑にする。
【0082】
ヒューリスティックの選択
主要なヒューリスティックの選択は,マリオ2009のコンペの結果を考察して,選択された。マリオ2009のコンペは,A
*アルゴリズムが優れていたことのほかに,興味深い結果を提示した。特に,多くの進化アルゴリズムは,マリオAIベンチマークシステムが含まれた単純なエージェントに敗北した。そのエージェントは,ただ,1)前方へ走る,2)ジャンプ,の2つのことをしただけである。これは,多くの進化アルゴリズムが,均等に探索空間を探査していたようなので,道理にかなっている。コンペにおける試みは,ステージの冒頭で,左側に走ろうとすることに秒単位で多くの時間を費やした。対照的に,マリオのゴールは,このレベルの一番の右側のゴールポストに到達することである。すでに,この単純なエージェントは,たとえすべての出来事に全く対処しない場合も,問題空間を効果的に移動している。右に走る基本技術は,マリオAIの基本的なニューラルネットワークであるかのように示された。
【0083】
初めに,ヒューリスティックは単純であって,確率pで前方へ走ったり,ジャンプさせる。別の方法では,ランダムに動作が選択される。ただ,この変化は,1番初めの平凡なレベルを通過することが,一見不可能なタスクとなった。p値は,重要であるが,鈍感なパラメータ(insensitive parameter)である。実験では,.6は低すぎたため,コンペでの収束は遅すぎたことが明らかになった。これに対して,.9以上では,AIは素早く収束され,局所最適化に行き詰った。しかし,たとえそれが,動作空間の大部分であっても,このひたむきなヒューリスティックは,プレーヤがプレイするためのものではない。マリオの困難なステージを探査するということは,ときどきマリオは左に進むことが必要であるということがわかった。特に,隠された障害物が,そのレベルをクリアするのに必要な状況の場合,マリオはおそらくその場所を通り過ぎ,行き詰ることになる。もちろん,十分な時間があれば,確率要素は,マリオを正しいパスに導くだろうが,その速度は,今まで観測されたことがないほどゆっくりである。人間のプレーヤであれば,問題を理解して,すでに探査した空間を再度探査するために左に移動することになるだろう。
【0084】
ある解は,行き詰りに気づき,隠された障害物などを探す為に引き返すように,特定のコードを加えることになる。この解は,公正であって,そのような学習技術の組み合わせやハンドコードアルゴリズムを,成功させることは可能である。しかし,この実験において,望まれる振る舞いを導くヒューリスティックが存在するかどうかを見つけだすのは,とても重要であった。従来のヒューリスティックは,明白な論理により左に移動させるヒューリスティックに置き換えられない。したがって,解は単純であって,ある確率p´により左側を探査させる複合的なヒューリスティックを生成する。最後に,ヒューリスティックは,1)確率pにより先へ進む,ジャンプする,2)確率p´により,左に進む,ジャンプする,3)別のやり方では,ランダムに動作を選択する,こととなる。この場合でのヒューリスティックの値は,互いに依存する。その前に,確率pを相当値に変化させるが,この実験例では,pが.6よりも.9に近づくことを示している。p´は,レベルに応じて,.6と.8の間を変化することができる。pが,前よりも高い値になる必要があるのは,その時に付加される左への移動が,レベルをクリアする一般的な進路を妨害するからである。これに対抗するために,常に,良い解を考慮しながら右に移動させる。
【0085】
[表1]
表1は,本明細書で示されるカッコウ探索アルゴリズムと遺伝的アルゴリズムの比較を示している。
共に本明細書で説明されるソフトマックスヒューリスティックを使用している。
LDは,困難なレベルを表わしている。Defaultは,パラメータを加えない場合のレベルを表わしている。UGは,地下のレベルを表わしている。HBは,隠された障害物がある場合のレベルである。BOTHは,隠された障害物を含む地下のレベルを表わしている。
【0086】
結果
本明細書で説明されるAIを,任意に選択されたシードによって生成された,様々なタイプのレベルと困難なレベルの集合で,検証した。また,そのレベルで,ソフトマックスのヒューリスティックの場合とそうでない場合を検証した。さらに,類似エージェントを,同じレベルで進化させるために,一般的な遺伝的アルゴリズムが使用された。ソフトマックスヒューリスティックの結果は,表1により理解することができる。ランダムなヒューリスティックエージェントの結果は,表2に示される。
【0087】
ソフトマックスの結果
まず注意することは,従来の仮設とは逆となることであり,遺伝的アルゴリズムは,カッコウ探索と同じように実行される。一般的に,両者は,容易なレベルでは,速く十分に実行する。容易なレベルは,前記単純なエージェントが,どの学習機能も全く利用することなく,解決できる場合なので,予期され得る。
【0088】
困難なレベルにおいては,以下の2つのことが起こりえる。1)手に負えないレベルの場合,両者のボット(bots)はたいていすぐに,平凡な答えに収束する。2)実行できるレベルの場合,両者は,解(ひょっとすると最適ではない)に収束するか,又は一方は他方よりもわずかに良い解となる。2つのアルゴリズムの違いを考えれば,ヒューリスティックを利用することで,振る舞いを莫大な量にさせることは確かであると思われる。この場合,考えられるレヴィ分布の速い探索能力は,カッコウエージェントによって,扱いにくい領域を,遺伝的アルゴリズムよりも速い速度で,解決するだろうという見込みがあった。しかしここでは現れなかった。
【0089】
[表2]
表2は,ソフトマックスヒューリスティックを適用しない場合の,表1と同じ比較を示している。つまり,解はランダムに初期化される。
【0090】
ランダムの結果
2つのAIの結果は共に,ヒューリスティックを使用していないため,はるかに劣るものになった。これは,アルゴリズムを使用するか否かにかかわらず,問題空間の探索に焦点を当てるソフトマックスのヒューリスティックを使用することで利益を得ることができることを示している。さらに,レヴィによる速いカッコウ探索は,それをさらに発展させる可能性があるが,それは結果に示されていない。その1つの可能性のある理由として,カッコウエージェントは,比較的速い速度で探索しているけれども,探索空間は,とても広いので規則的な探索では基本的に絶えず失敗することになるためである。他の理由は単純であって,カッコウ探索は,より少ないパラメータチューニングを要件とするが,副最適化として,好ましくない行動を導くように,パラメータがチューニングされるためである。それと対照的に,遺伝的アルゴリズムは,平均よりも良くチューニングされた。
【0091】
マリオAIの領域は,極端に開かれており,本実験では,明確に‘解決’しなかった。本実験から拡張されるいくつかを記載する。
【0092】
レヴィ変異の考察
すでに述べたように,状態空間を変換させるために,レヴィ分布により生成される値を使用する方法が多数ある。これに関して,異なる選択の探査は,いくつかのレベルにおいて,さえない性能を明らかにするかもしれない。
【0093】
最適なヒューリスティックの発見
最も重要なことは,進むことに圧力を掛け続けるヒューリスティックであるが,それほど探査を抑制しなかった。
【0094】
AIの一般化
現在のAIは,訓練されているレベルを唯一確実に行うことができる。これは,現実のゲームシステムだけでなく,コンペのラーニングトラック(Learning Track)でも有用だが,‘マリオをプレイするAI’にとっては重要ではない。そのような進化アルゴリズムが,A
*に似たアルゴリズムと競争できるかどうかを考えることは,重要な作業である。
【0095】
結論
この実験において,スーパーマリオブラザーズを使用して,カッコウ探索アルゴリズムの拡張を説明してきた。さらに,論理的な解に速く収束するようにソフトマックスヒューリスティックを加えた。レヴィフライトとカッコウ探索を利用することは,一般的な遺伝的アルゴリズムに匹敵するほどの機能を有する。しかし,他のアルゴリズムでは,カッコウアルゴリズムの素早い探索能力から得られる利益は,示されなかった。
【0096】
ソフトマックスヒューリスティックの使用は,困難なレベルを規則的にクリアさせるので,AI手法の性能に劇的な効果があった。
マリオを動かす進化アルゴリズムとして,レヴィフライトとカッコウ探索を利用することを選択するのは,理にかなっている。
さらに,そのようなアルゴリズムはいずれも,論理空間の探索に焦点を当てるソフトマックスヒューリスティックを使用することが好ましい。