●「強化学習」にディープラーニングを組み込む
画像認識の精度は、今すごく上がっていますが、それと同時に、すごく面白いことが起こっています。画像認識と強化学習、ディープラーニングと強化学習を組み合わせるという技術が出てきています。
強化学習とは、大雑把に言うと「行動を学習する仕組み」です。これはもう100年ぐらい前から研究されています。例えば人間は、サッカーボールを蹴っているうちに、だんだん上手に蹴ることができるようになります。なぜ上手に蹴ることができるようになるかというと、たまたま上手く蹴ることができたら、「今のは上手く蹴ることができた」と思って、その蹴り方を繰り返すからですね。
このように「上手く蹴らることができたな」と思えることを、「報酬」と言います。報酬が与えられると、その前にやった行動を強化する。こういう仕組みによって、行動がだんだん上手になってくるのです。犬にお手を教えるというときにどうやるかというと、たまたま犬がお手をしたらエサをあげるということを繰り返していく。すると、お手をするようになるわけです。これは犬から見ると、エサという報酬がもらえた前にやった行動を強化しているわけですね。
これが強化学習の仕組みです。犬も、いつもお手をしていればいいわけではなく、ご主人さまが「お手をしなさい」と言ったときにお手をするといいわけですね。ですから、どういう状況でどういう行動をすると良かったか、あるいは悪かったか、すなわち「状況」と「行動」、そして「良かったか/悪かったか」、これらをセットにして、コンピュータに学習させていくわけです。
●ブロック崩しのテクニックを「学ぶ」人工知能
今までの強化学習では、「どういう状況で」という「状況」の記述をするのに、人間が定義した変数を使っていたのです。ところが、このディープラーニングと組み合わせる方法では、「状況」の記述にディープラーニングで画像認識をして出てきた特徴量を使うことで、その変数を人間がつくらなくてよくなります。後の部分は、今までの強化学習と一緒です。違いはそこにしかないのですが、それによって非常に大きな変化が起こります。
動画をお見せします。まず2013年後半の研究です。ディープマインドという会社がありまして、これは2014年初頭にGoogleに買収された会社です。この会社がどういうことをやったかというと、ゲームを学習するAIをつくりました。ブロック崩しのゲームを学習する人工知能です。
【参考動画1】
Google DeepMind's Deep Q-learning playing Atari Breakout
https://youtu.be/V1eYniJ0Rnk
このゲームでは、ブロックが崩れるとスコアが1点入るので、このスコアを報酬としています。スコアが上がると、その前にやった行動を強化するということです。最初は下手なのですが、だんだん上達していきます。やがてすごく上手になるわけですが、ここまでなら、実は昔の強化学習でもできたのですね。昔はどうやっていたかというと、ボールの位置やバーの位置を人間が定義し、指定していました。
ところが、このディープラーニングと組み合わせる手法では、入力しているのは画像です。画像を見せているだけです。その画像の中から、「ボールっぽい」もの「バーっぽい」ものを取り出し、そのX座標が合っていると、どうやら点が入りやすいということを学んでいく。そうすると何が起こるか。最終的には、左端を狙うというやり方を始めます。こういったゲームを実際にやったことがある方なら分かるかと思うのですが、左端や右端に通路をつくると、点がすごくたくさん入るのですね。要するに、画像を入力にしているので、画像の中から、左端/右端に通路ができた状態という特徴量を見つけ出し、そういった状態になるとすごく点が入るのだということを学習できるということです。
●ゲームによっては人間よりも高いスコアが出せる
さらにまた面白いのが、これと全く同じプログラムを使って、全く違うゲームでも学習させることができます。
【参考動画2】
DeepMind: Space Invaders
https://youtu.be/ePv0Fs9cGgU
こういったスペースインベーダーなどでも、非常に上手に学習させることができます。これがすごいのは、先ほどのブロック崩しと全く同じプログラムを使っているのですね。今までのやり方であれば、このインベーダーゲームをやるときには「これがインベーダーです」...