AIを作ってみたいその2 妥協祭り

はいどーもこんばんは、AIを作りたい無職です。
本日は先生のいないAI・強化学習とかいうやつを試してみました。

力尽きた

最初に言っておきます。
力尽きました!w

ここ数日はAI関連の作業をやっているわけですが、主に『マッチ箱の脳』に書かれているAIを作成しています。
この本にはコードが一切載っていないので、書いてある考え方を「実際のコードに起こすとこうかなー」と試行錯誤しながら作っています。
当然コードは汚くなりますし、コードが汚くなると僕のやる気もダウン。
なんだか異様に疲れたので「保守性のかけらもないけど、とりあえず動いた」というレベルのコードを今回も公開したいと思います。

ちゅーわけで、コードを参考にするのはオススメしません!w
実際のコードが載っている本を買ったらもう少し何やらやりたいなあと思います。

どんなものを作ったのか

AI君は山を登ろうとしています。
その山には分岐点が100個あります。
その分岐点は右か左かの二択です。
正しい道を選べばそのまま進みますが、間違った道を選ぶと初めからやり直しです。
このとき、AI君は間違ったことを記憶して、自分自身で「正しい道はこうだ」と学習していきます。

ちゅーわけでコードをドン。

最初は350~400回くらい試行しますが、その次は5回くらいで正解の道を選べるようになります。
これが学習の成果ですね。

なお『マッチ箱の脳』では正解時にも確率を調整していたのですが、力尽きてこちらは実装していませんw
また、本当は3択の道を進めるようにしようかなーとか思っていたのですが、どうやって確率を学習させればいいかよくわからなかったので、本に書かれている通りの二択に戻しました。
もっと言うなら、ツクールMVで「迷路を探索し、正解の道を自分で見つける」みたいなプログラムを当初作っていたのですが、こっちも実力足らずでオシャカになりました。

いやあ、妥協だらけですね!

AIを作ってみて

マッチ棒を使って書かれている「AIの考え方」についてはこれで全てコードに書き起こせたかなと思います。
まあ最初にも書いた通り汚いので、そのうち何とかしたいですが……。
AI作成を始めたばかりなのでまだまだゲームに活かせるようなものの作成は無理そうですが(実際無理だった)、半年後くらいには何とか使えるレベルまでもっていけたらなあと思います。

あとデザインパターンも上手に使えるようになりたいですねえ……。

ほなそんな感じで。

フォローする