780 views
この記事は最終更新から 385日 が経過しています。
直近の目標:
DQNで MCTSと同レベルの強さのオセロ AIを作ること!
前回の投稿 (52)【Othello AI】古典的AI モンテカルロ探索で CvR 9900に到達 の結果を見て色々と考えた。
【1】試行錯誤
前回の 185モデル総当たり戦(全 34,040試合) では…
モンテカルロ探索を実装した古典的 AIである MCTS agent が
他者を寄せ付けない圧倒的な強さ(321勝 20敗)で優勝 した。
なぜ、MCTS agent が圧勝したのか?
なぜ、他のDQN agent たちは完敗だったのか?
今までの DQN強化学習では、
MCTSよりもずっと弱い DQN agent 同士の対戦で強化学習 していた。
これを例えるならば、
英語を話せない者同士が、密室で一週間英語オンリーの生活をしても、喋れるようにはならない。
剣道 5級同士が、道場で一週間籠って対戦練習を続けても、剣道 2段の人には勝てない。
ということか。
そこで考えた。
MCTS agent の指し手データを DQN強化学習で使ったら、ブーストをかけられないか?
まずは MCTS agent の指し手履歴データを訓練データとして使い、
DQN agent に MCTS agent のレベルまで成長してもらいたい。
その後、ようやく DQN agent 同士の自己対戦型強化学習、
すなわち、脱模倣フェーズが始められるのではないか。
まずは…
MCTS vs MCTS の対戦で、今入手し得る最強の指し手履歴データ、
すなわち高品質の学習データを作ってみよう。
もし、DQN agentが MCTS agentの強さに到達できないとしたら?
自作の DQN戦術プログラムに設計の誤り or バグがあるのだろう・・・
まずは一度試してみたい。
【2】収集すべき「指し手履歴」データ
(1) 保存対象のデータ
MCTS vs MCTS のすべての対戦、すべての指し手について、以下の情報を記録する。
これを DQNの訓練初期の教師データとする。
| # | パラメータ名 | 説明 |
|---|---|---|
| 1 | state | オセロ盤上の石の配置、[6][6]の配列 |
| 2 | action | 指し手 (r,c) |
| 3 | reward | (state, action) の結果、指し手(r,c)により得られた報酬 |
| 4 | next_state | action実行後のオセロ盤上の石の配置、[6][6]の配列 |
| 5 | done | ゲーム終了 or not フラグ |
(2) 保存ファイル形式
pickleでリストオブジェクトをそのままシリアライズし、ダンプファイル出力する。
後から随時新しい教師データを連結できるようにする。
【3】このプランの懸念点
学習が MCTSの模倣に偏り過ぎる。
→ 過学習
→ 未知の局面に弱くなる。
これへの対策は、
MCTS以外の対戦相手も混ぜる。
これには、以下のような対戦相手モデルを含める。
・過去に作成した DQN成果モデル
・ランダム指し手モデル
・Playout数を低く抑えた弱い MCTSモデル
模倣学習の終了後、つまり 対 MCTS agent の対戦成績が勝率 50%に到達した時点で、
DQN成果モデル同士の自己対戦型強化学習に移行する。
Self-Play Reinforcement Learning(自己対戦型強化学習)
【4】今後の予定と目標
次回、実際にプログラムを書いて、MCTS対局による教師データ作りに着手する。
直近の目標は…
DQNで MCTSレベルの AIを作ること!