#シリーズ目次
- 機械学習の理論を理解せずに tensorflow で オセロ AI を作ってみた ~導入編~
- 機械学習の理論を理解せずに tensorflow で オセロ AI を作ってみた ~実装編~
- [機械学習の理論を理解せずに tensorflow で オセロ AI を作ってみた ~いざ対戦編~]
(http://qiita.com/sasaco/items/f9aa608860eebb3026c1) - 機械学習の理論を理解しようとしてから オセロ AI を作ってみた 〜再始動‼〜
- 機械学習の理論を理解しようとしてから オセロ AI を作ってみた 〜何これ Alpha Zero 編〜
- 機械学習の理論を理解しようと エクセルでニュートラルネットワークを作ってみた 〜画像認識 mnist 編〜
#前回の反省...
この分野では門外漢の私が、「機械学習の理論」をまったく勉強せずに
オセロのAI を作ってみましたが、結果惨敗でした。強くならない
しかたがないので、機械学習の勉強しようと思います。
#勉強する教材
オセロAIに関して私が理解できる本は唯一これだけでした
この本の 第6章 強化学習ー三目並べに強いコンピューターを育てる
を元にオセロAIを作成します。
この他に参考になる書籍をご存知の方ご教示ください
#まずは教科書通り...と言いたいところですが
この本の 第6章 強化学習ー三目並べに強いコンピューターを育てる
では下記の点を改良したものを 再始動の初期状態とします。
1. RL-Glue という仕組みは、削除する
この本の 例では RL-Glue という仕組みを使って学習しているのですが
私には難しく使いこなせなそうなので、削除してみました
はじめにソースコードをダウンロードします。
$ git clone -b "#1" https://github.com/sasaco/train-chainerai.git
環境が整ったら、ソースコードのディレクトリに移動して、experiment.pyを叩くと学習が始まります。
$ cd train-chainerai
$ python experiment.py
どうやら 改造 RL-Glue なしバージョン も正常に学習できるようです。
2. ゲームが 三目ならべなのでオセロに変更する
とりあえず今回は、中間層の数とか細かいところは この本のままで、下記の修正をしました
- 入力層と出力層を 3×3 → 8×8 に変更しました。
- オセロは空白でも置けないマスがある
- 置けない場合パスする動作を追加
- 対戦相手は、完全なランダム
まずは動かしてみよう
はじめにソースコードをダウンロードします。
ソースはここにおいておきます。
$ git clone -b "#2" https://github.com/sasaco/train-chainerai.git
学習
環境が整ったら、ソースコードのディレクトリに移動して、experiment.pyを叩くと学習が始まります。
$ cd train-chainerai
$ python experiment.py
結果
ランダム相手に 5000 エピソード学習させても効果見えず
少し勝率が上がっているかな?っといったところ
150000 エピソードを超えたあたりで Loss nan になってしまった!!
勝率も上がらず...失敗です。
次回、機械学習の理論を理解しようとします