ブループリント製のマッチ箱脳(2)
「昨日の分に学習の仕組みと、あと現在のマッチ棒状況の表示機能を加えた。コレでニューラルネットワーク的なアレになったはず。今回はマッチ箱Aを整数型、マッチ箱B・C・Dを構造体として作った。ただ構造体は一部だけ書き換えるのが面倒くさいので、2つの整数に分けた方が良かったかも。あとB・C・Dは配列にした方が楽なはず」
妹「なんで配列にしなかったの?」
「別々の変数の方がニューラルネットワークな感じなブループリントになるかなあ、と思ったんだけど、別にそうでもなかった」
「5つの問題について5セット学習した段階で、正しい解答が出せるようになった。とはいえコレは元々マッチ棒で、つまり手作業で再現出来ることを意図した仕掛けだから、プログラムでやるには簡単すぎるんだけど」
妹「値段とマッチ棒の数を同じにすれば、何も学習する必要ないよね」
「全ての状況に対応出来る答えが人間にもわからない、でも総当りでやるとすごい時間かかる、という場合でないと学習させる意味あんまりない。あと、不完全な答えしか出せないAIを作る目的にも使える。例えば敵の思考ルーチンとかは、あんまり完璧な答えを出されると困る場合がある」
妹「強すぎて勝てないから?」
「それもあるし、段階的に強さを変化させたい場合もある。イージーモード的な。上手く手加減させるのは難しい。完璧なAIだけど20%の確率でランダムな行動をする、みたいなやり方もあるけど、これだとなんかやらせっぽい。学習途中のAIの方がしっくりくるかもしれない」