Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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

概要

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

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

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

https://github.com/ryogrid/RL_reversi/blob/master/RL_Q_reversi.py

もどきといっているのは以下のため。
- 最初に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

ryo_grid
svengali,kikker,はてブおせっかい,TOFU-G,ひらめいったー,キャチボ,顔面偏差値スカウター, UZOMUZO等の作者.機械学習でシステムトレードしたりも.元の専門はHPC (修士).機械学習,分散システム, physical computing,仮想通貨, 投資とか好き.Scrum-Upプロジェクト参画中. ryo.contact[at]gmail.com
https://ryogrid.net
orylab
オリィ研究所は距離や身体的問題を克服し、あいたい人に会え、行きたいところに行ける未来を実現します。
http://orylab.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした