重要なお知らせ:新型コロナウイルス、インフルエンザ等の感染予防・拡散防止の対策についてこちらをご確認ください。

AI研究所 - AI(人工知能)に脅かされないために、AI(人工知能)を作る側の人間になる(AI人材育成・セミナー) -

  • お問い合わせ

HOME  >  強化学習とは?強化学習の概要から実例を徹底解説【2021年最新】

公開日:2020.07.29 [最終更新日]2021.03.05

強化学習とは?強化学習の概要から実例を徹底解説【2021年最新】

強化学習

目次

こんにちは、AI講師の三谷です。
今回はボードゲームや自動運転、ロボットの制御などで活用が始まっている最新のAI(人工知能)の一つである、強化学習について解説します。
AI(人工知能)が自らデータを学び、動作を習得していく事ができる最新の技術を感じてみてください。

強化学習とは?

強化学習とは、機械学習と言われるAI(人工知能)の手法の一つです。
通常、AI(人工知能)に行動を教えようとする場合、人が「データ」とそれに対応する「答え」をセットで用意しておき、学習させることが多いですが、強化学習は違います。
強化学習では、点数が最も大きくなることを目的として、どのように行動すれば点数が最も大きくなるかを自ら探し出す学習を行います。
いろいろな行動を試してみて、一番いい行動を探し出す(探索)するという学習をするので、ある意味人間の動作に近くなるイメージです。
強化学習でAIを作成すると、「満点の行動を目指す」ことをしてくれるようになるので、AI自ら行動を改善してくれるようになるのです。

 

強化学習の実例一覧

強化学習と一言で言っても、何ができるのかイメージしづらいかもしれません。
ここでは、強化学習でできることをまとめてみました。

強化学習の実例①ゲーム

強化学習
昔やった方も多いかもしれない、懐かしいアーケードらしいゲームです。
Atariという会社が出していたゲームを、2015年にDeepMind社が強化学習を使用するAI(人工知能)に学習させ、49本のゲームのうち半数以上で人間に匹敵するか、それを上回るスコアを記録しました。
強化学習を勉強する上でもよく使用される題材です。
こちらも強化学習で作成した場合、どれだけ多く点数を取れるか、どれだけいい結果を出せるかにAIが努めてくれるようになります。

そのほか、ボードゲームで有名なAlphaGoにはSelf-playという手法が用いられています。

強化学習の実例②自動運転

強化学習
イメージ参照元:https://research.preferred.jp/2016/01/ces2016/
自動運転の分野でも強化学習が使われています。
日本の企業であるPrefferd Networks社が研究をしている内容では、車両の幅に対して道路が狭く、車が密集した交差点というような難易度の高い問題に対して強化学習を利用して自動運転を実施しています。
この技術を使うと、周囲を全て同時に集中して見ることができるため、前方向と同じように後方向にも躊躇なく移動します。
下の動画では、学習時には存在しない、人が操作する車からの回避という困難な問題も扱っています。(赤い車は、人間がその場で操作をしています。)

自動運転については下記記事で詳しく解説しています。

自動運転の仕組みとは?概要説明から事例まで徹底解説!

強化学習の実例③Googleのロボットアーム

強化学習
イメージ参照元:https://gigazine.net/news/20160310-google-deep-learning-robot/
Google社は、ロボットアームの動作を最適化する研究を行っています。
どのような場合に、どのような動作をすれば最適なロボットアームの動きになるかを学習していくのですが、Googleは複数の学習を同時並行で進める分散型の自己学習が可能にしています。
Google社は数々のロボット・AI(人工知能)の研究を行っています。
この研究では14台のロボットを使った分散型自己学習を行い、人間よりも速い速度で動作をマスターしています。

強化学習の仕組み

強化学習

強化学習の概要が理解できたところで、強化学習の仕組みについて徹底解説します。
通常の機械学習では、問題と解答は常に静的に定められており、「これが入れば、これが解答」と決まっているのですが、強化学習では、「これが入っても、状況に応じて対応を変える」ことを学習させることになります。
つまり、強化学習の場合はシステムの出力に応じて周りの環境が変化していくような場合も想定するので、他の機械学習とは少し違う特徴を持っています。
試行錯誤や様々な方策を凝らして、満点の行動を目指すもっとも人間らしい学習手法である強化学習。
重要なキーワードにマルコム決定過程(MDP=Markov decision process)があります。
強化学習においては、マルコム決定過程によってアルゴリズムを解析していく方策が一般的です。
マルコフ決定過程(=MDP Markov decision process)とは、「環境」を表す数理モデルのこと。方程式や状態価値関数などの数学的手法で表現されます。

  • 状態(state)
  • 行動(action)
  • 遷移確率(transition probability)
  • 報酬(reward)

の4つの構成要素で成り立っています。
もらえる報酬を最大化するような行動はどのようなものかを定式化していく方法と言えます。
実際にpythonで実装してみると、更に理解が深まるので、試してみてください。
書籍だと、コロナ社から刊行されている「マルコフ決定過程- 理論とアルゴリズム」がオススメです。Amazonで購入できます。

強化学習で使用する単語

強化学習を理解する上で、必ず覚えておくべき用語があります。
強化学習でどんな単語を使用するのか覚えておきたい方は参考にしてください。

エージェント(Agent)

強化学習

環境に対して行動を起こす学習者。強化学習では、このエージェントが環境に対して様々な試行・制御を繰り返すことで行動を最適化していきます。

環境

エージェントの行動に対して状態の更新と報酬の付与を行います。
強化学習では、与えられた「環境」における価値を最大化するように「エージェント」をラーニングさせます。

状態(s_t)

強化学習

環境が保持する環境の様子で、エージェントが起こす行動によって変化します。

行動(a)

エージェントが、ある状態(s)のときに取ることができる行動のことです。

報酬(r)

エージェントの行動に対する環境からの報酬です。

エージェント(Agent)・環境・状態(s_t)・行動(a)・報酬(r)

これら5つの言葉は非常に重要です。
ある環境の中のある状態の場合、エージェントはある行動をします。それにより、報酬が付与(または付与されない)ということが起こります。エージェントがとった行動により、状態が変化します。変化した状態から、更に新しい行動をエージェントが取ることで、また報酬が付与されます。
これらの行動をどんどん繰り返し、未来の価値を最大化する最適解を見つけ出すというのが強化学習の基本的な考え方です。

 Q値または状態行動価値

強化学習

例えば迷路を思い浮かべた場合、あるマスにいる「状態」から、上下左右のどちらに移動(「行動」)するといいのか、ということを探し出します。
この場合、報酬はゴールすることで得られるとすると、上下左右どこかに移動したという行動は、いい行動だったのか、悪い行動だったのかを評価する必要があります。
逆を言うと、「ある状態 s においてある行動 a を取った時の価値」がわかれば、その価値の一番高い行動を選択すれば報酬が得られるということになるはずです。
この価値のことを Q値 あるいは状態行動価値と呼び、 Q(s_t,a)と書きます。
Q値は「報酬」ではなく「価値」であることが重要でして、Q値とは短期的な報酬ではなく、長期的な意味での価値(未来の価値)を値として持っている関数です。
Q(s_t , a_t ) ← Q(s_t ,a_t )+α(r_(t+1)+γ maxQ(s_(t+1) ,a )-Q(s_t ,a_t ))
強化学習の基礎は、Q値を元にして、ある状態での最適な行動を見つけ出す方法を繰り返すということにあります。Q値を学習していくので、このアルゴリズム(計算手法)はQ学習(Qラーニング)と呼ばれ、強化学習のベースとなっています。

強化学習の理解がさらに深まるサービス「DeepRacer」

Deepracer(ディープレーサー)の正式名称は「AWS DeepRacer」。
1/18 スケールのレーシングカーを使い、自律走行のレースゲームを通して強化学習を学ぶことができるAmazonのサービスです。
世界中でDeepRacerリーグやコミュニティレースなどが実施されており、人気が高まっています。
DeepRacerは車にコースを走らせて、様々な行動を試してゴールにたどり着くための行動を自律的に学習させる強化学習のアプローチをとります。
なので教師あり学習のように多くのデータを必要としません。
DeepRacerにおいては、ゴールに向かって走行する主体であるエージェントは車になります。
環境はコースに該当し、状態(state)はカメラ画像になります。
エージェントがゴールに到達するための行動(action)はステアリングをどう切るかやどのくらいのスピードで走行するかなどです。
報酬(reward)はエージェント(車)がゴールに到達するまでにいかに正しい道のりを経たかによって大きな報酬がもらえます。
強化学習にとって、よい行動をしたら報酬をもらえるインセンティブを設定する報酬関数という概念が重要となります。
例えばDeepRacerにおいては、エージェント(車)がコースアウトすることなくゴールにたどり着いて行動をしたときにより大きな報酬を与えるということですね。
強化学習を楽しみながら学んでいくには、DeepRacerはかなりおススメです。
コミュニティも熱いですし、新たな価値を創出できる可能性もあります。
とはいえ、前提条件として強化学習の基礎知識やPythonプログラミングは必須。
DeepRacerのコードの実装はPythonを使います。
なので、書籍などでPythonの知識を身に着けておくとよいでしょう。
PythonについてはAI入門ブログでも詳しく解説しています。
Pythonとは?概要から実例、コードや関数について徹底解説!
Pythonを使って強化学習をする方法を徹底解説
また、AI研究所では強化学習に特化したセミナーも開催しています。
独学の場合よりも効率的に強化学習の知識が身につくので、興味のある方はぜひ受講してみてください。

強化学習をするためのプラットフォーム3選

強化学習をするためのプラットフォームはいくつかありますが、言語としてはPythonができればフレームワークを使うだけで簡単に実装できます。
今回は強化学習で有名なプラットフォームを3つご紹介します。

ChainerRL

強化学習
強化学習で実装されているアルゴリズムが多いです。
初心者でもわかりやすいと言われているChainerと組み合わせて使用できるため、初学者にはオススメです。
Chainerについては「Chainerとは?5分で分かるChainerでできることまとめ」に詳しいです。

RLlib

強化学習
RLlibは強化学習で実装されているアルゴリズムも多く、学習状況も見やすいです。
RLlibでは強化学習がどのように実装されているのかを確認するのは少し難しい部分もあります。

Keras―RL

強化学習

こちらは強化学習で実装されているアルゴリズムは少なめです。
どのように実装されているかは見やすく、メジャーなKerasと組み合わせて使えます。

強化学習で利用するアルゴリズム5選

強化学習

強化学習を行う上でのアルゴリズムがいくつかあります。それらは基本的に、上述したQ学習(Qラーニング)を元にしています。ここではどのような種類があるかを確認してみましょう。

Q学習(Qラーニング)

ある状態のときにとったある行動の価値を、Qテーブルと呼ばれるテーブルで管理し、行動する毎にQ値を更新していく手法です。学習時にはQテーブルを更新していくことで、学習済みモデルはQテーブルとなります。
単純な仕組みで動作しますが、連続的な「状態」、例えばロボットアームの動きのようななめらかなものを表現しようとすると、Qテーブルが膨大な量となるため、現実的に計算ができなくなるデメリットがあります。

DQN(Deep Q Network)

DQNとは、Deep Q Networkの略です。Q学習ではQ値を学習し、Qテーブルを完成させることに重きが置かれていましたが、DQNではQ学習にニューラルネットワークの考え方を含めています。
最適行動価値関数を、ニューラルネットを使った近似関数で求め、ある状態_ のときに、行動 ごとのQ値を推定できれば、一番いいQ値の行動=取るべき最善の行動がわかるという仕組みです。
更に詳しく知りたい方は「DQN(Deep Q-Network)とは?DQNを使って強化学習する方法を徹底解説」を参考にしてください。

強化学習

DDQN(Double DQN)

DQNでは、前の状態を過大評価してしまうという問題があったため、最適行動を選択する Q 関数とその時のQ値を評価するQ関数の2つを混ぜて学習をさせることで、誤差計算を安定させたモデルです。

A3C(Asynchronous Advantage Actor-Critic)

強化学習

DQNでは、基本的に1つのエージェントが行動して得た経験を学習データとして使って学習します。1つのエージェントの経験しか利用しないため、学習の進みが遅く、なかなか学習が進まない(時間がかかる)事がありました。
そこで、A3Cでは、エージェントを複数作っておき、それぞれの経験を元に学習させることでオンライン学習ができるようにしています。エージェントを複数作ることで学習もより早く進むようになっています。

Rainbow

DDQNやA3Cを始めとする、DQNをベースにしたアルゴリズムを全部乗せしたアルゴリズムと言われています。
強化学習
イメージ参照元

Pythonを使って強化学習を試す記事は、こちらにまとめてありますので見てみてください。

Pythonを使って強化学習をする方法を徹底解説

強化学習を導入するメリットとは

強化学習

強化学習は行動を学習するため、人間が行えることを代替する分野での活用に期待が持たれています。しかし、現状ではビジネスシーンで強化学習が完璧に活用されているところは実はほとんどありません。現状では、膨大な試行をすることで学習を行いますが、非常に多くの時間や調整・制御が必要になるためです。ここでは、どのようなことに強化学習が活用できるかをまとめてみました。

ロボットの制御ができる

ロボット制御と書きましたが、ロボットを始めとする動作の制御で活用できます。
例えば、様々なセンサーを搭載したような産業機械もそうですし、家電などのモーター制御で動作・更新するものも、自ら最適な行動を探し出すという意味では強化学習が活用される部分になっています。

Fintech(フィンテック)で活用できる

Fintechと呼ばれる、金融サービスとITを結びつけた部分での活用も期待されています。
どのように行動すれば最善の行動か、ということを学習することができますので、今後金融業界のAI活用として期待がされています。

強化学習をするためにかかる費用

強化学習は無料のプログラミング言語Pythonと、上述したプラットフォームを使用することでなんと無料で始められます。
Pythonのフレームワークはオープンソースのものがほとんどです。
プログラミング言語を動作させるPycharmやAnacondaなどの統合開発環境によっては金額がかかる場合もありますが、基本は無料でスタートできると考えていいでしょう。

実際に無料で強化学習を試そう

最先端で難しそうに感じる強化学習ですが、実際に強化学習を無料で簡単に試すことができるようになっています。
いくつかのステップは必要ですが、是非強化学習を体感してみてください。
強化学習を試すための準備として、以下の環境構築が必要です。

  • Pythonのインストール
  • Pycharmのインストール
  • ChainerとChainerRLのインストール
  • OpenAI Gymのインストール

これらをインストールしておけば、環境が整うため、強化学習をすぐ始めることが可能になります。

強化学習をより簡単に学ぶには?


強化学習プログラミングセミナー
強化学習について詳しく説明してきましたが、初心者の方にはなかなか理解しづらい内容ですよね。
そんな時は強化学習を体系的に学ぶことができるセミナーを受講するのがおすすめです。
強化学習の仕組みから実践的なプログラミングまで行なうことができ、
初歩的なCartPole問題から、実践的なブロック崩しゲームの学習実装までを学ぶことができます。

高給の強化学習エンジニアを目指すならこのセミナーがおすすめ

需要の高いAI技術者になれる!強化学習プログラミング
1DAYセミナー

  • 自動運転・自動制御を学べる!
  • 配信セグメントを学べる!
  • ゲームの最適化を学べる!

受講者数1万人を突破したAI研究所が開催している「強化学習プログラミングセミナー」は、強化学習の基礎知識と仕組みを理解し、実務で使える実装スキルを1日で取得できる人気のセミナーです。ニューラルネットワークの仕組みとプログラミング言語「Python」を理解されていることを前提とした内容になっています。

強化学習プログラミングセミナーの特徴

強化学習プログラミングセミナーはこんな方におすすめ!

  • 強化学習プログラムの実装スキルを習得したい方
  • ビジネスをする上で必要な人工知能や強化学習の知識を身につけたい方
  • ゲームやロボットの動作を人工知能を使って最適化したい方
  • Q学習、DQNのアルゴリズムについて学びたい方
  • 強化学習ライブラリ「ChainerRL」を扱えるようになりたい方
  • 強化学習のシュミレーションライブラリ「OpenAI Gym」を扱えるようになりたい方
  • より実践的な強化学習のプログラミングセミナーを受講したい方

人気の理由がわかる6つのメリット

  1. セミナーイメージ

    01

    即戦力のあるAIエンジニアに求められるスキルを習得!

    強化学習の仕組みの理解とプログラミングの両側面を重要視した内容となっています。

  2. セミナーイメージ

    02

    実務ですぐに役立つ知識と技術を学習できる!

    機械学習用ライブラリChainer、ChainerRL、OpenAI Gymを用いて実装スキルを習得。

  3. 03

    たった1日で実装力を習得できる!

    1日で強化学習の基礎知識と仕組みを理解し、実務で使える技術を習得できます。

    セミナーイメージ
  4. 04

    実務実績のある講師陣!

    強化学習の専門的な知識だけでなくプログラミングを「わかりやすく教える能力」に優れた実績のある講師を揃えています。

    セミナーイメージ
  5. セミナーイメージ

    05

    セミナー特典付き!

    復習に役立つテキスト(120ページ以上のスライド抜粋)進呈のほか、個別相談チケット(60分)をプレゼント。

  6. セミナーイメージ

    06

    選べる2つの受講スタイル!

    参加人数や環境に応じて「会場受講」「ライブウェビナー」よりお選びいただけます。

1日でこれだけの内容を学習できる!

午前 10:00~12:00(休憩90分)
強化学習の基本的な知識と仕組み、さらに強化学習プログラムを
実装する上で必要なライブラリや設定項目を学習します。

  • 強化学習の学習手法の概要について(Q学習、DQN 、SARSA)
  • 強化学習の活用事例
  • Q学習の学習手順と用語(状態・行動・報酬)について
  • Qテーブルの更新とQ学習のパラメーターについて
  • DQN(Deep Q Network)とは
  • DQNの学習手順について
  • 誤差関数とQ-network、Target-networkの重みの更新
  • ε-greedy法による探索について
  • DQNの進化アルゴリズム
午後 13:00~17:30(休憩30分)
ロボットアーム動作の最適化や、ブロック崩しゲームの強化学習ブログラムを
機械学習用ライブラリ「ChainerRL」「OpenAI Gym」を利用して実装します。

  • 棒を倒さないように土台を最適化する強化学習プログラムを実装する
  • ロボットアームの動きを最適化する強化学習プログラムを実装する
  • ブロック崩しゲームの強化学習プログラムを実装する
  • 機械学習用ライブラリ「ChainerRL」「OpenAI Gym」の使い方について
  • 「ChainerRL」「OpenAI Gym」のインストール方法について
  • 「ChainerRL」を使った強化学習プログラムの実装手法について
  • CartPole問題を使ったQ学習プログラムを実装する
  • 報酬の割引率や、過去の結果の重要視度を変更する
  • Acrobot問題を使ったDQN(Deep Q Network)プログラムを実装する
  • ハイパーパラメーターの設定と学習精度を高める方法について
  • 「OpenAI Gym」のシミュレーション環境について
  • 報酬計算の手法を変更し学習精度を上げる
  • Breakout問題(ブロック崩し)を使ったCNNの強化学習プログラムを実装する

強化学習プログラミングセミナーのワンクリックお申し込みはこちら

受講方法は環境にあわせて2つの形式から選ぶことができます。「会場受講」は、現在、東京にて開催中。開催地から遠方の方は自宅や会社からオンラインで受講できる「ライブウェビナー」がおすすめです。

  • 会場受講

    料金48,000円(税別)

    1日(10:00~17:30)

  • ライブウェビナー

    料金48,000円(税別)

    1日(10:00~17:30)

開催日程・受講受付

会場受講 [東京] 2020/11/14(土) 10:00~17:30
ライブウェビナー 2020/11/14(土) 10:00~17:30

※ご入力頂いたメールアドレス宛にお申し込みに関するご案内をお送りいたします。

強化学習プログラミングセミナーの詳細はこちら

セミナー受講者の声

強化学習プログラミングセミナーを受講された方の声を一部ご紹介します。受講者は日本全国各地から参加されています。セミナーの受講をご検討される方はぜひ参考にしてください。

  • 東京都 K.K様 男性

    強化学習の実装について深く理解できた。強化学習について、非常に丁寧に1から教えていただいたので、全くの素人の私でも理解することができました。強化学習プログラミングの仕組みから楽しさ、難しさ、今後知っておくべき知識など、多くのことを学ぶことができました。テキストも丁寧に解説が書いてあるので、後から復習する際にも助かります。

  • 埼玉県 T.H様 男性

    強化学習についてよく理解できた。Pythonは独学、強化学習は初心者のため、セミナーについていけるか不安でしたが、様々なことを学習できてよかったです。

  • 東京都 G.N様 男性

    強化学習の活用方法がわかった。強化学習についてわからないことが多かったのですが、丁寧な説明と実践学習のおかげで十分理解することができました。今後、復習を重ねて実務に活かしていきたいと思います。

  • 神奈川県 H.B様 女性

    実装しながら勉強できたので有意義だった。機械学習用ライブラリ「Chainer」「ChainerRL」「OpenAI Gym」の使い方が理解できました。他のAIセミナーもそうでしたが、細かく説明して頂いたので、とてもわかりやすかったです。

  • 神奈川県 J.W様 男性

    要点が明確で理解しやすかった。1つ1つの項目を丁寧に進めていただけるのでとても理解が深まりました。実装する上で特に理解しなければいけない箇所が明確だったので要点を理解しやすかったです。

  • 愛知県 Y.M様 男性

    ディープラーニングのハードルが下がった。講師の先生の熱意がすごく、非常に有意義なセミナーとなった。質問しやすく、Openspecialな強化学習ブログラムだった。

セミナーの詳細をもっと詳しく知りたい方はこちら

強化学習とは?まとめ

強化学習

今回は強化学習についてとても詳しく解説しましたが、いかがだったでしょうか。
AI(人工知能)は、画像認識によって目を手に入れ、強化学習によって行動を手に入れると言われているくらい、ディープラーニングの活用範囲の中でも最先端で注目をされている技術です。
本格的なビジネス活用はもう少し先かもしれませんが、今からどのような考え方でAI(人工知能)が人間のような行動を手に入れていくのかを理解しておくことは非常に重要かもしれませんね。
是非強化学習を理解してワクワクする未来を想像してみてください!


参考になったら「いいね!」と「シェア」をお願いします!!

このエントリーをはてなブックマークに追加
AI(人工知能)セミナー開催中