LoginSignup
14
12

More than 5 years have passed since last update.

深層強化学習(DQN)でオセロもどきAIを作ってみた

Last updated at Posted at 2016-11-30

どうも、オリィ研究所(http://orylab.com/) の ryo_grid こと神林です。
今回は深層強化学習 (DQN) を試してみたので、それについて書いてみます。

概要

以下を大いに参考(大半のコードを流用させてもらって)にして、(深層)強化学習でオセロもどきのAIを作ってみました。エージェントには駒を多く取ったら勝ちといった知識も与えずに、対戦した勝敗結果(ここの判定だけは学習の時に行う)から打ち方を学ばせます。
コードは間違っているとこがあるかもしれないので、指摘してもらえると幸い。
なお、エージェント自体の学習ロジックは下記の参考コードからほとんどいじっていません(うまく分離されていて素晴らしい!)

ChainerでDQN。強化学習を三目並べでいろいろ試してみた。(Deep Q Network、Q-Learning、モンテカルロ)
http://qiita.com/narisan25/items/e64a5741864d5a3b0db0

作成したコードはこちら。

もどきといっているのは以下のため。
- 最初に4コマ置くのを端折っている
- はさめるところにしか置けないという制約がない。というか空いているところはどこにでも置ける。
- 盤面を4x4と小さくしている

学習結果

ランダム君との対戦成績で強さをはかる。

Q-Learning君

  • ランダム君相手に10万回対戦して学習 → εを0にして対戦すると多少勝ち越せるようにはなった。
  • 20万回。大して変わらず。 → QL1:4454,Random:4302,DRAW:1244
  • うーん

DQN君

  • 2万回学習 → DQN:481,Random:396,DRAW:123 とQ-Learning君よりは強い?
  • 10万回学習 → DQN:5423,Random:3373,DRAW:1204 いくらか強くなったかな

学習結果 (8x8の正規のサイズでやってみる)

ランダム君との対戦成績で強さをはかる。

DQN君

10万回。NNの素子数もいくらか増やした。 → QL1:2391,Random:1629,DRAW:180 頑張ってるけど、期待したほど強くはないかなあ。。。

他に参考にした記事

倒立振子で学ぶ DQN (Deep Q Network)
http://qiita.com/ashitani/items/bb393e24c20e83e54577

14
12
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
12