Unityゲーム開発スタジオ スタジオしまづ

初心者向けUnity講座・ 統計・機械学習関係についてつらつらと

ニューラルネットワークでブロック崩しをします。

僕も人工知能が作りたい!!

最近google人工知能DQN」でゲームをクリアする話が盛り上がっているので,私も作りたくなり友達とチャレンジしています。

対象としたゲームは”ブロック崩し”です↓

f:id:simanezumi1989:20150319041647p:plain

 

 具体的にやりたいこと

やりたいことは,ルールを教えないで高得点を出すような人工知能を作ることです。使うデータはボールの座標とバーの座標とスコアです。これらのパラメータを使ってバーの動きを学習させていきます。

ブロック崩しにおける学習の問題とその解決策となる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/

 

参考になる資料があれば教えてください!!