ニューラルネットワークでブロック崩しをします。
僕も人工知能が作りたい!!
最近googleが人工知能「DQN」でゲームをクリアする話が盛り上がっているので,私も作りたくなり友達とチャレンジしています。
対象としたゲームは”ブロック崩し”です↓
具体的にやりたいこと
やりたいことは,ルールを教えないで高得点を出すような人工知能を作ることです。使うデータはボールの座標とバーの座標とスコアです。これらのパラメータを使ってバーの動きを学習させていきます。
ブロック崩しにおける学習の問題とその解決策となるQ-learning
どのように学習させるかは,望ましい結果がでたら褒める,,のようながんじです。ブロック崩しの場合,行動がバーの動きで,望ましい結果がスコアの上昇です。ここで問題になったのがどのように学習を行うかです。ブロック崩しはバーの行動ごとにスコアがあがっていくわけではありません。
そこで。。。先行研究であるgoogleの「DQN」を調べたところ,deeplearningとQ-learningを使っていました。deeplearningはニューラルネットワークの一つで,Q-learningは強化学習の一つです。ここに私の誤解がありました。ニューラルネットだけでできると思っていたのですが,強化学習も必要なんですね(というよりはこの二つの違いもよくわかってなかったです)。なんだかまた基礎勉強をやるのかと思うと気が重くなりますが,とりあえずQ-learningについて勉強してみようと思います。
参考資料
強化学習について
http://www.jnns.org/niss/2000/text/koike2.pdf
Q-learningについて
http://www.sist.ac.jp/~kanakubo/research/reinforcement_learning.html
DQNの論文
http://www.cs.toronto.edu/~vmnih/docs/dqn.pdf
DQNの仕組みについて
Slidebean - Presentation Software Simplified
DQNの記事
http://gigazine.net/news/20150226-google-deepmind/
参考になる資料があれば教えてください!!