読者です 読者をやめる 読者になる 読者になる

妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

ブループリント製のマッチ箱脳(2)

アルゴリズム ブループリント 人工知能 UE4.15

f:id:una_unagi:20170313002327p:plain
f:id:una_unagi:20170313002337p:plain

「昨日の分に学習の仕組みと、あと現在のマッチ棒状況の表示機能を加えた。コレでニューラルネットワーク的なアレになったはず。今回はマッチ箱Aを整数型、マッチ箱B・C・Dを構造体として作った。ただ構造体は一部だけ書き換えるのが面倒くさいので、2つの整数に分けた方が良かったかも。あとB・C・Dは配列にした方が楽なはず」

妹「なんで配列にしなかったの?」

「別々の変数の方がニューラルネットワークな感じなブループリントになるかなあ、と思ったんだけど、別にそうでもなかった」

f:id:una_unagi:20170313002526p:plain
f:id:una_unagi:20170313002531p:plain

「5つの問題について5セット学習した段階で、正しい解答が出せるようになった。とはいえコレは元々マッチ棒で、つまり手作業で再現出来ることを意図した仕掛けだから、プログラムでやるには簡単すぎるんだけど」

妹「値段とマッチ棒の数を同じにすれば、何も学習する必要ないよね」

「全ての状況に対応出来る答えが人間にもわからない、でも総当りでやるとすごい時間かかる、という場合でないと学習させる意味あんまりない。あと、不完全な答えしか出せないAIを作る目的にも使える。例えば敵の思考ルーチンとかは、あんまり完璧な答えを出されると困る場合がある」

妹「強すぎて勝てないから?」

「それもあるし、段階的に強さを変化させたい場合もある。イージーモード的な。上手く手加減させるのは難しい。完璧なAIだけど20%の確率でランダムな行動をする、みたいなやり方もあるけど、これだとなんかやらせっぽい。学習途中のAIの方がしっくりくるかもしれない」