AI研所属14のいしづです。このたびは記事を書かせていただくことになりました。なぜかAI研カテゴリ初の投稿となっており、おっかなびっくりしてます。
さて私が取り組んでいるお題は「2048を自動で解くAI」です。
みなさんは2048というゲームをご存知でしょうか。
言葉で説明するよりも公式サイト(http://gabrielecirulli.github.io/2048/)にいって
実際にやってみるのがいいと思います。簡単に説明すると、
タイルを移動して同じ数字を足し合わせて数を大きくしていくゲームです。
まず初めに本家のソースコードに手を加えて、自動で動かせるようにしました。
ここからはAIを作るという一番のキモなわけですが、今回は強化学習のモンテカルロ法を用いました。
マサカリを恐れずに言うと、
「テキトーに行動して結果によって行動を評価する」
のがモンテカルロ法です。
今回の2048AIにおいては
・ゲームオーバーまで上下左右動かしていって
・「最終スコアをもとに
・出す手を決める
とい う流れになっています。
そんな感じで実装していくと、こんな風にそこそこ強いAIが出来上がります。
モンテカルロ法の利点はスコアを計算するだけなので、
自分で評価関数を考えなくても良い点にあります。
これはつまり2048の解き方やコツを知らずとも2048solverが作れるということです。
なかなか面白い話ですね。プログラムさんは試行錯誤の結果を出して
いるだけで本当に2048の解くコツというものはわかっていないわけです。
少し哲学じみていますね。
話が脱線してしまいました(汗)今回はモンテカルロ法をつかって2048のAIを作ってみました。
しかし、スコアは人間に及ぶものではないので、
人間と同程度のスコアをだすAIが作れたらいいなと思います。
さて私が取り組んでいるお題は「2048を自動で解くAI」です。
みなさんは2048というゲームをご存知でしょうか。
言葉で説明するよりも公式サイト(http://gabrielecirulli.github.io/2048/)にいって
実際にやってみるのがいいと思います。簡単に説明すると、
タイルを移動して同じ数字を足し合わせて数を大きくしていくゲームです。
まず初めに本家のソースコードに手を加えて、自動で動かせるようにしました。
ここからはAIを作るという一番のキモなわけですが、今回は強化学習のモンテカルロ法を用いました。
マサカリを恐れずに言うと、
「テキトーに行動して結果によって行動を評価する」
のがモンテカルロ法です。
今回の2048AIにおいては
・ゲームオーバーまで上下左右動かしていって
・「最終スコアをもとに
・出す手を決める
とい う流れになっています。
そんな感じで実装していくと、こんな風にそこそこ強いAIが出来上がります。
モンテカルロ法の利点はスコアを計算するだけなので、
自分で評価関数を考えなくても良い点にあります。
これはつまり2048の解き方やコツを知らずとも2048solverが作れるということです。
なかなか面白い話ですね。プログラムさんは試行錯誤の結果を出して
いるだけで本当に2048の解くコツというものはわかっていないわけです。
少し哲学じみていますね。
話が脱線してしまいました(汗)今回はモンテカルロ法をつかって2048のAIを作ってみました。
しかし、スコアは人間に及ぶものではないので、
人間と同程度のスコアをだすAIが作れたらいいなと思います。









