強化学習こんにちは、AI講師の三谷です。今回はボードゲームや自動運転、ロボットの制御などで活用が始まっている最新のAI(人工知能)の一つである、強化学習について解説します。AI(人工知能)が自ら学び、動作を習得していく事ができる最新の技術を感じてみてください。強化学習とは?まとめ強化学習とは?強化学習とは、機械学習と言われるAI(人工知能)の手法の一つです。通常、AI(人工知能)に行動を教えようとする場合、人が「データ」とそれに対応する「答え」をセットで用意しておき、学習させることが多いですが、強化学習は違います。強化学習では、点数が最も大きくなることを目的として、どのように行動すれば点数が最も大きくなるかを自ら探し出す学習を行います。いろいろな行動を試してみて、一番いい行動を探し出す(探索)するという学習をするので、ある意味人間の動作に近くなるイメージです。強化学習でAIを作成すると、「満点の行動を目指す」ことをしてくれるようになるので、AI自ら行動を改善してくれるようになるのです。ニーズが多い強化学習プログラマーになろうゲームから自動運転、ロボットの制御など、行動を最適化できる強化学習。それがこの強化学習プログラミングセミナーならたった1日で即戦力のエンジニアに。強化学習プログラマーは少なく、需要が最高峰。強化学習と一言で言っても、何ができるのかイメージしづらいかもしれません。ここでは、強化学習でできることをまとめてみました。強化学習の実例1ゲーム昔やった方も多いかもしれない、懐かしいアーケードらしいゲームです。Atariという会社が出していたゲームを、2015年にDeepMind社が強化学習を使用するAI(人工知能)に学習させ、49本のゲームのうち半数以上で人間に匹敵するか、それを上回るスコアを記録しました。強化学習を勉強する上でもよく使用される題材です。こちらも強化学習で作成した場合、どれだけ多く点数を取れるか、どれだけいい結果を出せるかにAIが努めてくれるようになります。自動運転の分野でも強化学習が使われています。Networks社が研究をしている内容では、車両の幅に対して道路が狭く、車が密集した交差点というような難易度の高い問題に対して強化学習を利用して自動運転を実施しています。この技術を使うと、周囲を全て同時に集中して見ることができるため、前方向と同じように後方向にも躊躇なく移動します。下の動画では、学習時には存在しない、人が操作する車からの回避という困難な問題も扱っています。(赤い車は、人間がその場で操作をしています。)自動運転については下記記事で詳しく解説しています。自動運転の仕組みとは?概要説明から事例まで徹底解説!強化学習の実例3Googleのロボットアームイメージ参照元Google社は、ロボットアームの動作を最適化する研究を行っています。どのような動作をすれば最適なロボットアームの動きになるかを学習していくのですが、Googleは複数の学習を同時並行で進める分散型の自己学習が可能にしています。Google社は数々のロボット・AI(人工知能)の研究を行っています。この研究では14台のロボットを使った分散型自己学習を行い、人間よりも速い速度で動作をマスターしています。強化学習の仕組み強化学習の概要が理解できたところで、強化学習の仕組みについて徹底解説します。通常の機械学習では、問題と解答は常に静的に定められており、「これが入れば、これが解答」と決まっているのですが、強化学習では、「これが入っても、状況に応じて対応を変える」ことを学習させることになります。強化学習はシステムの出力に応じて周りの環境が変化していくような場合も想定するので、他の機械学習とは少し違う特徴を持っています。強化学習を理解する上で、必ず覚えておくべき用語があります。強化学習でどんな単語を使用するのか覚えておきたい方は参考にしてください。エージェント環境に対して行動を起こす学習者。強化学習では、このエージェントが環境に対して様々な試行を繰り返すことで行動を最適化していきます。環境エージェントの行動に対して状態の更新と報酬の付与を行います。強化学習では、与えられた「環境」における価値を最大化するように「エージェント」を学習させます。状態(s_t)環境が保持する環境の様子で、エージェントが起こす行動によって変化します。行動(a)エージェントが、ある状態(s)のときに取ることができる行動のことです。報酬(r)エージェントの行動に対する環境からの報酬です。これら5つの言葉は非常に重要です。ある環境の中のある状態の時、エージェントはある行動をします。それにより、報酬が付与(または付与されない)ということが起こります。エージェントがとった行動により、状態が変化します。変化した状態から、更に新しい行動をエージェントが取ることで、また報酬が付与されます。これらの行動をどんどん繰り返し、未来の価値を最大化する最適解を見つけ出すというのが強化学習の基本的な考え方です。迷路を思い浮かべると、あるマスにいる「状態」から、上下左右のどちらに移動(「行動」)するといいのか、ということを探し出します。この時、報酬はゴールすることで得られるとすると、上下左右どこかに移動したという行動は、いい行動だったのか、悪い行動だったのかを評価する必要があります。取った時の価値」がわかれば、その価値の一番高い行動を選択すれば報酬が得られるということになるはずです。Q(s_t,a)と書きます。Q値は「報酬」ではなく「価値」であることが重要でして、Q値とは短期的な報酬ではなく、長期的な意味での価値(未来の価値)を値として持っている関数です。))強化学習の基礎は、Q値を元にして、ある状態での最適な行動を見つけ出す試行を繰り返すということにあります。Q値を学習していくので、このアルゴリズム(計算手法)はQ学習(Qラーニング)と呼ばれ、強化学習のベースとなっています。強化学習をするためのプラットフォームはいくつかありますが、言語としてはPythonができればフレームワークを使うだけで簡単に実装できます。今回は強化学習で有名なプラットフォームを3つご紹介します。ChainerRL強化学習で実装されているアルゴリズムが多いです。初心者でもわかりやすいと言われているChainerと組み合わせて使用できるため、初学者にはオススメです。RLlibRLlibは強化学習で実装されているアルゴリズムも多く、学習状況も見やすいです。RLlibでは強化学習がどのように実装されているのかを確認するのは少し難しい部分もあります。Keras―RLこちらは強化学習で実装されているアルゴリズムは少なめです。どのように実装されているかは見やすく、メジャーなKerasと組み合わせて使えます。強化学習を行う上でのアルゴリズムがいくつかあります。それらは基本的に、上述したQ学習(Qラーニング)を元にしています。ここではどのような種類があるかを確認してみましょう。Q学習(Qラーニング)ある状態のときにとったある行動の価値を、Qテーブルと呼ばれるテーブルで管理し、行動する毎にQ値を更新していく手法です。学習時にはQテーブルを更新していくことで、学習済みモデルはQテーブルとなります。単純な仕組みで動作しますが、連続的な「状態」、例えばロボットアームの動きのようななめらかなものを表現しようとすると、Qテーブルが膨大な量となるため、現実的に計算ができなくなるデメリットがあります。Networkの略です。ごとのQ値を推定できれば、一番いいQ値の行動=取るべき最善の行動がわかるという仕組みです。関数とその時のQ値を評価するQ関数の2つを混ぜて学習をさせることで、誤差計算を安定させたモデルです。Actor-Critic)DQNでは、基本的に1つのエージェントが行動して得た経験を学習データとして使って学習します。1つのエージェントの経験しか利用しないため、学習の進みが遅く、なかなか学習が進まない(時間がかかる)事がありました。そこで、A3Cでは、エージェントを複数作っておき、それぞれの経験を元に学習させることでオンライン学習ができるようにしています。エージェントを複数作ることで学習もより早く進むようになっています。RainbowDDQNやA3Cを始めとする、DQNをベースにしたアルゴリズムを全部乗せしたアルゴリズムと言われています。強化学習を導入するメリットとは強化学習は行動を学習するため、人間が行えることを代替する分野での活用に期待が持たれています。現状ではビジネスシーンで完璧に活用されているところは実はほとんどありません。現状では、膨大な試行をすることで学習を行いますが、非常に多くの時間や調整が必要になるためです。ここでは、どのようなことに強化学習が活用できるかをまとめてみました。ロボットの制御ができるロボット制御と書きましたが、ロボットを始めとする動作の制御で活用できます。様々なセンサーを搭載したような産業機械もそうですし、家電などのモーター制御で動作するものも、自ら最適な行動を探し出すという意味では強化学習が活用される部分になっています。Fintech(フィンテック)で活用できるFintechと呼ばれる、金融サービスとITを結びつけた部分での活用も期待されています。どのように行動すれば最善の行動か、ということを学習することができますので、今後金融業界のAI活用として期待がされています。強化学習は無料のプログラミング言語Pythonと、上述したプラットフォームを使用することでなんと無料で始められます。Pythonのフレームワークはオープンソースのものがほとんどです。プログラミング言語を動作させるPycharmやAnacondaなどの統合開発環境によっては金額がかかる場合もありますが、基本は無料でスタートできると考えていいでしょう。実際に無料で強化学習を試そう最先端で難しそうに感じる強化学習ですが、実際に強化学習を無料で簡単に試すことができるようになっています。いくつかのステップは必要ですが、是非強化学習を体感してみてください。強化学習を試すための準備として、以下の作業が必要です。Gymのインストールこれらをインストールしておけば、強化学習をすぐ始めることが可能になります。強化学習について詳しく説明してきましたが、初心者の方にはなかなか理解しづらい内容ですよね。そんな時は強化学習を体系的に学ぶことができるセミナーを受講するのがおすすめです。初歩的なCartPole問題から、実践的なブロック崩しゲームの学習実装までを学ぶことができます。強化学習とは?まとめ今回は強化学習についてとても詳しく解説しましたが、いかがだったでしょうか。AI(人工知能)は、画像認識によって目を手に入れ、強化学習によって行動を手に入れると言われているくらい、ディープラーニングの活用範囲の中でも最先端で注目をされている技術です。本格的なビジネス活用はもう少し先かもしれませんが、今からどのような考え方でAI(人工知能)が人間のような行動を手に入れていくのかを理解しておくことは非常に重要かもしれませんね。強化学習を理解してワクワクする未来を想像してみてください!ニーズが多い強化学習プログラマーになろうゲームから自動運転、ロボットの制御など、行動を最適化できる強化学習。それがこの強化学習プログラミングセミナーならたった1日で即戦力のエンジニアに。強化学習プログラマーは少なく、需要が最高峰。事務経験を経て、2016年9月よりAI研究所に入所。AIセミナー責任者、講師。AIについての幅広い知識を持ち、人に分かりやすく伝える技術を持つ。AIを事業や仕事に取り入れる方法について日々講義しています。RESERVED.ご希望のコースを選択してください。自分でコースを自由にカスタマイズする。