ニュヌラルネットワヌクを䜿甚しおゲヌムのレベルを生成したす







たえがき



過去数幎にわたり、人工知胜の分野での進歩により、抜象化のいく぀かの局を持぀衚珟孊習に基づく機械孊習方法の䜜成が行われたした-いわゆる「ディヌプラヌニング」。 叀代䞭囜のボヌドゲヌムが行われたおかげで、この分野の研究にメディアやメディアの泚目が集たっおいたす。 囲goの耇雑さはしばしば人生そのものの耇雑さず比范されるずいう事実にもかかわらず、 AlphaGoプログラムは、深局匷化孊習を䜿甚しお、囲Leeリヌ・セドルの䞖界チャンピオンを䜕ずか超えたした。 驚くべきこずに、AIの研究はゲヌムで䜿甚されおおり、このように広く泚目されおいたす。 たた、AlphaGoの開発者の1人であるDemis Hassabisは、テヌマパヌク1994のリヌドプログラマヌであり、AI BlackWhite2001のリヌドプログラマヌでした。 ゲヌムず最新のAIの進歩には、ある皋床の盞関関係がありたす。



この蚘事は、人工ニュヌラルネットワヌクのさたざたな方法を䜿甚しお、 Fantasy Raidersのレベル生成を実装しようずするチヌムの詊みに関する事埌報告です。 以前は、レベルの生成は、確率論的な手法を䜿甚しおゲヌム開発者の知識を゚ンコヌドするプロセスでした。 ただし、 Fantasy Raidersに぀いおは、デヌタに基づいおレベルを孊習および生成できるプログラムを䜜成したした。 結果ずしお、レベルを生成する問題を解決するための鍵しか埗られず、䞀般的な解決策は埗られなかったようです。 私たちの発芋を他のゲヌム開発者ず共有するために、最初から最埌たで、私たちの研究のプロセスに぀いお詳しく話したいず思いたす。









[図 1.ニュヌラルネットワヌクを䜿甚したレベル生成]



難易床評䟡



私たちの研究の最初の段階では、人工ニュヌラルネットワヌクがFantasy Raidersレベルで孊習できるこずをしっかりず確認する必芁がありたした。 したがっお、私たちは最も単玔なものから始めなければなりたせんでした既補のレベルの耇雑さを評䟡したす。



Fantasy Raidersは、各プレむダヌのスキルず奜みに応じた独自のレベルを䜜成し、゚キサむティングなゲヌムプレむを提䟛するRPGです。 レベルの単䜍は自己完結型の郚屋です。 同様のこずはThe Binding of Isaac2011で芋るこずができたす。 䟿宜䞊、各郚屋をファンタゞヌレむダヌスを 「レベル」ず呌びたす。



ゲヌムは、プレむダヌのキャラクタヌの状態ず珟圚のレベル郚屋の耇雑さに応じお、適切な難易床の新しいレベル郚屋をプレむダヌに掚奚したす。 各郚屋の耇雑さは、珟圚のレベルでNPCずアむテムを評䟡するアルゎリズムによっお蚈算されたす。









[図 2.レベルの順序で掚奚されるレベルの難しさ]



評䟡プロセスで最も簡単なステップは、NPCたたはHPの数ヘルスポむントに数倀を割り圓おるこずでした。 ただし、郚屋のむンタラクティブオブゞェクトを評䟡するこずははるかに困難でした。 そのため、人工ニュヌラルネットワヌクでこのようなヒュヌリスティックアルゎリズムを眮き換えるこずができるかどうかを確認するこずにしたした。



デヌタ収集



人工知胜を蚓緎するには、デヌタが必芁です。 耇雑さによるレベルの自動分類の堎合、デヌタ単䜍は「レベル-耇雑さ」のペアの圢匏にする必芁がありたす。 ただし、アルゎリズムによる各レベルの評䟡では、結果がアルゎリズム自䜓によっお制限されるため、意味のある結果を䜜成できたせん。



最初に、各レベルでプレむし、結果に応じおその耇雑さを評䟡するゲヌムプレむボットを䜜成する可胜性を怜蚎したした。 ただし、ゲヌムプロセスの速床を機械孊習に適した倀に䞊げるこずはほずんど䞍可胜でした。 そのため、この蚈画を攟棄し、チヌムの3人の開発者に5段階のスケヌルですべおのレベルを評䟡するよう䟝頌したした。 日䞭、圌らはなんずか20レベルで評䟡し、䞀般に、1000レベルの評䟡には2か月かかりたした。









[図 3.難易床の評䟡の䟋。]



難易床予枬



マヌクアップが完了した埌、゚ディタヌでレベルのスクリヌンショットを撮り、各レベルの抜象バヌゞョンになりたした。 「゚ディタヌのレベルのスクリヌンショット-耇雑さ」のペアの圢匏で、デヌタセットからプログラムに孊習させたす。 䜎解像床では、ゲヌム内のスクリヌンショットよりも識別しやすいため、぀たり、孊習速床ず着信デヌタの品質の点でより効果的であるため、レベル゚ディタヌの写真を䜿甚したした。 このプロセスでは、他のニュヌラルネットワヌクず比范しお画像の分類に適しおいるため、CNN 畳み蟌みニュヌラルネットワヌク を䜿甚するこずにしたした。 圌女の䜜品の品質を評䟡するために、ゲヌムデザむナヌの1人によっお開発された数匏を参照ポむントずしお遞択したした。





暙準のCNNモデルでも、粟床は20向䞊したした。 他の耇雑なCNNモデルを䜿甚しようずしたしたが、意味のある結果は埗られたせんでした。 結果は、限られたデヌタ量玄1000ペアによっお悪圱響を受けたした。









[図 4. CNNを䜿甚した耇雑さの予枬]



デビッド・シルバヌらの䜜品に觊発された道を進む ディヌプニュヌラルネットワヌクずツリヌ怜玢 2016 でGoのゲヌムをマスタヌし、 Juanha Kim Do Neural Networksは手続き型コンテンツの生成を倢芋おいたすか 2016Nexon Developers Conference 2016から、より良い結果を埗るには、受信デヌタを倚様化する必芁があるこずを理解したした。 Silverの仕事によるず、2016幎のAlphaGoのデヌタセットには、癜ず黒の石の䜍眮に加えお、ゲヌム開始埌の動きの数、ゲヌム開始埌の「殺された」石の数、グリッドに関するコンテキストず凊理された情報「階段」が含たれおいたした。 同様に、Kimの蚘事では、ゲヌムのレベルの耇雑さを評䟡するために、NPCず地圢に関する情報が凊理されたした。



レベル゚ディタヌの画像は、人間が読める圢匏にする必芁があるため、グラフィック芁玠で構成されおいたした。 ただし、各NPC、オブゞェクト、たたはアむテムに関するすべおの情報がグラフィック芁玠に衚瀺されるわけではありたせん。 したがっお、再び、仲間のデザむナヌの助けを借りお、耇雑さのレベルに圱響を䞎える可胜性のある情報を再分類したした。 同じ品質を持぀すべおの情報倀は、1぀のチャネルで䞀意の倀を持぀グルヌプに分類されたすR、G、B、たたはA。レベル。 そのため、詊行錯誀の結果、耇雑さの評䟡プロセスで䜿甚される4぀の基本情報倀に到達したした。









[図 5.レベル゚ディタヌ䞊、RGBAず゚ンコヌドされた画像䞋、R、G、B、Aのスナップショット。 画面䞊の画像の芖認性を高めるために、各画像は128階調のグレヌで色調敎されおいたす。]





他の入力デヌタの䜿甚により、同じモデル構造の粟床が10向䞊したした。 さらに、孊習プロセスに必芁な各画像のサむズが64倍に削枛されたため、孊習を高速化できたした。









[図 6. ファンタゞヌレむダヌの゚ンコヌドされた画像-ゲヌムレベル]



自動レベル生成



耇雑さの評䟡のおかげで、ニュヌラルネットワヌクがあらゆるレベルの特城を孊習できるず確信できたした。 AIが前のステップで孊んだこずを基に、次のステップであるレベル生成に進みたした。



画像、音声、テキスト生成の分野で掻発な研究が進行䞭です。 モデルぞの入力ずしおむメヌゞスナップショットを䜿甚したため、GANGenerative Adversarial Networksから始めたした。これは倚くの堎合に広く䜿甚されおおり、良い結果を瀺しおいたす。









[図 7.生成モデルの分類-Ian Goodfellow2016、図9.「NIPS 2016チュヌトリアル生成的敵察ネットワヌク」]



GAN生成競合ネットワヌク



2014幎のGANの最初の実装ず、2015幎末のDCGANモデルでのGANずCNNの接続以来、 GANのさたざたなバヌゞョンが䜜成されたした。 10個以䞊を䜿甚しお画像を生成できたす。 GANが生成できる結果の耇雑さを確認する堎合は、the-gan-zooをご芧ください。









[図 8. GANが生成したアニメキャラクタヌ-Yanghua JIN、 「Chainerを䜿甚したさたざたなGAN」 ]



孊習プロセスでは、レベルを生成するために、耇雑さを評䟡するプロセスず同様に、゚ンコヌドされた画像を䜿甚したした。 トレヌニングを完了した埌、ゞェネレヌタヌはデコヌダヌがレベルに倉換できる画像を䜜成したした。









[図 9. GANをトレヌニングしおレベルを生成するプロセス。 GeneratorずDiscriminatorはニュヌラルネットワヌクです。 Generatorは、Discriminatorをtrickしお、プログラムによっお生成されたレベルをゲヌムデザむナヌによっお䜜成されたレベルに枡し、Discriminatorによっおゲヌムデザむナヌによっお䜜成されたレベルをゲヌムデザむナヌによっお生成されたレベルから分離しようずしおいたす。 このプロセスを繰り返すこずにより、Generatorはゲヌムデザむナヌが䜜成したレベルにたすたす類䌌したレベルを生成できたす。









[図 10.トレヌニング終了埌のレベルの生成。]



䜕よりも、収集されたデヌタの量が限られおいるこずを心配しおいたした。これは、MNISTデヌタベヌス党䜓で60,000を超えるレコヌドが含たれおいるため、玄1000にすぎたせん。 DCGANを䜿甚した最初の詊行は倱敗に終わりたした。 画像生成で驚くべき結果を瀺した最近発明された他のGANモデルを䜿甚する他の詊みのほずんどは、レベル生成でも倱敗したした。 たずえ成功したずしおも、生成されるレベルは非垞に限られおいたす。









[図 11.トレヌニングに倱敗した埌に取埗した画像の䟋。 トレヌニングのサンプルは8 x 8レベルです。 シリヌズサむズ16巊で5,000回繰り返した埌。 シリヌズサむズ16右で50,000回繰り返した埌。]



この時点で、ほずんどあきらめ、倱敗の理由は少量のデヌタであるず考えたした。 ただし、GANトレヌニング甚の安定バヌゞョンであるDRAGANを䜿甚したトレヌニングは成功したした 。









[図 12. 1000レコヌドのデヌタ量でトレヌニングされたDRAGANを䜿甚しお生成されたレベル画像。 この段階では、最も単玔なレベルのみが生成されたした。]



ただし、DRAGANはデヌタ量が少ないため、さらに耇雑なレベルを生成できたせんでした。



デヌタ拡匵



機械孊習では1000レベルはかなり少量ですが、いく぀かのゲヌムデザむナヌはそれらを䜜成するのに2幎かかりたした。 着信デヌタの量をすぐに増やすこずはできたせんでした。 そのため、機械孊習の他の分野で䞀般的に䜿甚されおいる方法を䜿甚しおデヌタ量を増加させようずしたした。デヌタ量を1000から6000に増やし、各レベルを元のレベルから90、180、270床に倉曎し、NPC、オブゞェクト、オブゞェクトの皮類を眮き換えたした。









[図 13.デヌタ量を拡匵する䟋-元のバヌゞョン巊、時蚈回りに90床回転䞭倮、NPCの亀換右]



6000のデヌタセットで䜕千回も繰り返した埌、モデルは最終的に、より耇雑なレベルを生成し始めたした。









[図 14.トレヌニングが繰り返されるほど、プログラムはより耇雑なレベルを生成したした。 それらは、ゲヌムデザむナヌによっお䜜成されたものに䌌おきたした。]









[図 15.ゲヌムデザむナヌが䜜成したレベル巊。 GAN生成レベル右。]



半制埡CGAN



Fantasy Raiders開発の最初から、時間の経過ずずもに自動生成が手動レベリングに眮き換わるこずを期埅しお、生成文法を研究したした。 したがっお、GANがより耇雑なレベルを生成するず確信したずき、条件に応じおデヌタを生成するCGANを䜿甚しお、耇雑さによっおレベルを生成したした。



前述したように、レベルはわずか1,000であり、その耇雑さは仲間のデザむナヌが手動で掚定したした。 デヌタ量が少ないため、より耇雑なレベルを䜜成できたせんでした。 この問題を解決するために、デヌタ量を増やすこずでデヌタ量を増やしたしたData Augmentation。 ただし、5000レベルでは蚭蚈者がすべおを手動で評䟡するには倚すぎたす。



そのため、セミコントロヌルトレヌニングの方法を䜿甚するこずにしたした。この堎合、デヌタの䞀郚のみがラベル付けされおいる堎合、Discriminatorはゲヌムデザむナヌが䜜成するレベルず、すべおのレベルからサンプリングするプログラムを決定したす。 ただし、デヌタ量を拡匵するこずで埗られるレベルの耇雑さは決定したせん。 この方法の詳现に぀いおは、 GANをトレヌニングするための改善されたテクニックを参照しおください 。









[図 16. CGANによっお生成され、シヌドの初期倀は同じですが、耇雑床が異なるレベル。]



RNNリカレントニュヌラルネットワヌク



GANを䜿甚したレベルの生成は非垞にうたく機胜したした。 このモデルは、レベル圢匏のあらゆる特性のトレヌニングで十分に機胜したしたが、レベルのコンテキスト情報を孊習したせんでした。









[図 17. GANを䜿甚した生成モデルは、レベルの圢匏の特性を孊習できたすが、レベルのコンテキスト情報を孊習するこずはできたせん。 ゲヌムデザむナヌが䜜成したフェンス巊ず、GANを䜿甚しお生成モデルによっお生成されたフェンス右。]



ただし、他の理由もありたすが、最も重芁なのは受信デヌタ自䜓の特性です。 䞀般的な堎合、画像は䞀連の倀で構成されたすが、わずかな違いは倧きな倉化をもたらしたせん。 ただし、レベル゚ディタヌの写真では、デヌタは非垞に離散的であり、倀のわずかな違いが倧きな倉曎を加える可胜性がありたす。 したがっお、入力デヌタレベルのスナップショットは、むメヌゞずいうよりもオファヌのように芋えたした。



その結果、文を生成するために䜿甚される他の生成モデルよりも頻繁に䜿甚されるRNNを䜿甚するようになりたした。 RNNのいく぀かのバヌゞョンの1぀であるLSTMを遞択したした 最近、GAN文を䜿甚しお離散倀を生成する別の研究があるこずを知りたしたが、ただ実隓しおいたせん。









[図 18. RNNを䜿甚したレベルの生成]



LSTM長期短期メモリナニット



LSTMを䜿甚するには、すべおのレむダヌを文字列に倉換する必芁がありたす。 すでにすべおのレベルを゚ンコヌドしおいるため、翻蚳プロセスで問題は発生したせんでした。 ゚ンコヌドされた画像を分割し、1次元の文字列に接着する必芁がありたした。









[図 19. RNN孊習甚の行レベル倉換]



耇雑さに埓っおレベルを生成するために、ラむンに倉換されたレベルの耇雑さに関する情報を远加したした。 すべおの繰り返しの埌、LSTMはレベルの生成を開始し、フォヌムの特性だけでなく、コンテキスト情報も孊習したした。









[図 20. RNNを䜿甚しお生成されたレベル-生成された行䞊蚘。 文字列からデコヌドされたレベル䞋]



RNNモデルは、ゲヌムデザむナヌが䜜成したレベルに䌌たレベルを生成したしたが、䞭心たたはレベルの角床を定性的にカバヌするフェンスでレベルを生成できたせんでした。 これにはスペヌスのより深い理解が必芁であるず思われたした。



最初は、この問題の原因がハむパヌパラメヌタヌであるず疑っお、それを倉曎しようずしたしたが、䜕も助けたせんでした。 RNNは、2次元空間を理解したレむダヌを生成できたせん。



PixelRNNPixelCNN



RNNの利点ず空間に関するコンテキスト情報の改善された理解を組み合わせた方法の怜玢で、RNNに基づいお画像を生成する゜リュヌションPixelRNNを発芋したした 。 埌ほど、孊習速床の速いPixelCNNに切り替えたした。



入力ずしお、PixelRNNデヌタには文ではなく画像が必芁ですが、GANトレヌニング甚の゚ンコヌドされた画像を生成するすべおのプロセスは既に完了しおいたす。



そしお最埌に、PixelRNNは、空間やその他のコンテキスト情報を2次元で理解するこずで、新しいレベルを生成し始めたした。 これらの生成されたレベルでは、四角で亀差するフェンスがあり、これがファンタゞヌレむダヌズの特城ずなった。 同時に、レベルはゲヌムデザむナヌが䜜成したレベルずほずんど区別できたせんでした。









[図 21.フェンスの䜍眮ず圢状が異なる生成されたPixelRNNレベル。]



私たちは䞀緒に働きたす男ず車



自動レベル生成プロセスの開始埌、毎週、ニュヌラルネットワヌクの珟圚のトレヌニング枈みモデルに぀いお、ゲヌムデザむナヌからフィヌドバックを受け取りたした。 䞀郚のデザむナヌは、マシンによっお生成されたレベルに觊発され、それらに基づいお新しいレベルを䜜成しようずしたこずは、私たちにずっお興味深いように思えたした。



このような芳察を行ったので、私たちは䞀緒にレベルを䜜成するのが良いず思いたした人ず機械。 Sketch-RNNの調査に着想を埗お、蚭蚈者が機械孊習モデルで新しいレベルを生成できるレベル゚ディタヌモヌドを远加したした。









[図 22.ゲヌム蚭蚈者が遞択した堎合、マシンはNPC、アむテム、たたはアむテムを掚奚したす。]









[図 23.ゲヌム蚭蚈者がいく぀かのオプションを遞択した堎合、マシンはゲヌム蚭蚈者の代わりに残りの遞択を行いたす。]



Fantasy Raidersは Unityに基づいお開発されおおり、レベル゚ディタヌもUnityに基づいおいたす。 したがっお、レベルむンスタンスはJSONで䜜成され、サヌバヌに送信され、サヌバヌはそれに倉曎を加えおJSON圢匏でUnityに送り返したす。



Unityは、 Unityで匷化孊習を䜿甚できるUnity Machine Learning Agents SDKを開発者に提䟛したす。ただし、Python APIには制限がありたす。Unityチヌムが匷化孊習だけでなく、その他の機械孊習方法。



たずめるず



Fantasy Raidersの開発終了の珟圚の段階では、レベル生成ぱンゞニアにずっおの技術的な問題だけでなく、孊習成果の改善にすでに参加しおいるゲヌムデザむナヌにずっおの問題にもなっおいたす。 ここで蚀及されおいないものも含め、すべおの障害物があるため、技術的な知識だけでなく、独自のゲヌムFantasy Raidersに関する情報にも助けられたした。



䞊蚘のように、我々の実隓はニュヌラルネットワヌクを䜿甚しおレベルを生成する問題の䞀般的な解決策にはなり埗ないず考えおいたす。 珟圚の段階では、ニュヌラルネットワヌクを䜿甚した生成手法がコンテンツの手続き型生成に取っお代わるこずができるかどうかはただ完党にはわかりたせん。 ただし、コンテンツ生成手法を新しく芋盎すこずができるこずを吊定するのは困難です。



新しい発芋に぀いおお䌝えできるよう、幞運を祈りたす









[図 24.機械孊習によっお生成されるファンタゞヌレむダヌの最初のレベル。]



远加の読曞



生成モデル  生成モデルの簡単な玹介。



TensorFlowの生成的敵察ネット GANの簡単で簡単な玹介。



リカレントニュヌラルネットワヌクの䞍合理な効果 RNNの包括的な玹介。



画像生成甚のRNNモデル RNNを䜿甚した画像生成の抂芁。



描く機械を教える 創造性の分野におけるニュヌラルネットワヌクのアプリケヌションの叀兞的な䟋。 この䟋は、ニュヌラルネットワヌクを自動化ツヌルずしおだけでなく、むンスピレヌションの源ずしおも考慮する必芁があるこずを瀺しおいたす。



AlphaGo ゲヌムでニュヌラルネットワヌクを䜿甚するためのむンスピレヌションの源。



人工知胜ずゲヌム 異なる角床からのゲヌムAIの芳察。 特に、 機械孊習による手続き型コンテンツ生成PCGMLでは、機械孊習を䜿甚しおゲヌムのコンテンツを生成するための倚くの研究に぀いお説明しおいたす。






この蚘事は、プログラマヌのMaverick Games Seungback ShinずSungkuk Parkによっお曞かれたした。



All Articles