AIなど技術が進み、これまで実現することが夢のようだった自動運転や顔認証など、今や当たり前のように社会で活用されてきています。このような機械学習が進化する中で、「強化学習」という技術が注目されています。
ここでは、強化学習とはどのようなものなのか、その重要性やメリット・デメリットなどについて解説していきます。
強化学習とは
まずは、強化学習とはどのようなものか理解していきましょう。
強化学習とは、機械学習の一つで、機械自体が課題に対して最大の価値となるゴールを考えて選択をする技術のことです。自動運転技術などにも利用されています。
機械学習の中には、「教師あり学習」と「教師なし学習」という学習方法がありますが、それに並んでもう一つの方法として強化学習があります。
教師あり学習、教師なし学習の仕組みとしては、「入力データ」によって正しい出力が出せるようにコンピュータが考え出力します。一方で、強化学習の特徴は、「ある環境の中で最大の価値」を抽出するために試行錯誤を行い探索し続ける学習方法です。
強化学習の重要性
では、強化学習がなぜ注目され重要視されているのでしょうか?その理由には、機械学習の可能性が未知だからということが挙げられるでしょう。
現在のAI技術においても、話題になった「人間対AI」の代表でもある囲碁勝負で勝利した「AlphaGo」や、どのメーカーでも技術向上をしている「自動運転」、レコメンド機能など「広告の最適化」などさまざまな分野においてAI技術は必要とされ研究されています。
その中でも、強化学習はAlphaGoにも利用され、機械学習の手法の中でも最先端の技術であるため、世界中から注目され重要視されているというわけです。
強化学習と機械学習・ディープラーニングの違い
次に、強化学習と機械学習、ディープラーニングの違いについて解説しましょう。
機械学習との違い
強化学習は機械学習の中にある分野です。つまり、機械学習と強化学習の違いというように、比例して考えるものではなく、あくまでも機械学習の分野の中に強化学習があるという位置づけです。
これまでは、「教師あり学習」「教師なし学習」というのが機械学習の分野でしたが、強化学習という考え方、技術が取り入れられたことで、機械学習の学習方法の一つとして、強化学習が含まれたという形になります。
これまでの「教師あり学習」や「教師なし学習」と比べて何が違うかというと、動的な環境によって動作し、データに依存しないため、事前のラベル付けが不要ということが最大の特徴といえるでしょう。
ディープラーニングとの違い
次に、強化学習とディープラーニングの違いについて見ていきましょう。
ディープラーニングも機械学習の手法の一つであり、機械が課題に対しての答えを見つけたり、判断したりするということには変わりありません。しかし、「強化学習」や「教師あり学習」、「教師なし学習」と比べて大きく異なる点としては、人がそれぞれのデータを判断してヒントや環境を与えるのに対し、ディープラーニングは機械自体がデータの特徴や何を学ぶべきなのかを判断するというところにあります。
ディープラーニングの方が高性能で人間に近い判断力を持つといえますが、コストや時間的な部分を踏まえると、どのようなものにも適しているとはいえないでしょう。
強化学習のメリット
ここからは、強化学習のメリットについて見ていきましょう。
評価の尺度を定義することが難しいものへの対応
将棋や囲碁のように、それぞれの局面ごとに最良の結果を導き出すことには答えがありません。強化学習は、そのような場面への応用が期待されています。
未知の環境に対する適用
これまでの「教師あり学習」や「教師なし学習」のように、あるデータをもとに答えを導き出すというよりも、それぞれ動的な環境の中で学習し、行動の評価自体も学習していくため、未知の環境に対する適用も可能となっています。
最良のプロセスを見つけることができる
ここまで紹介してきたように、強化学習の最大の特徴は、「最良のプロセスを見つける」ことです。これまでの学習とは異なり、最大の価値を出すためにどのようなプロセスが良いのか自ら学習し評価することができます。
強化学習のデメリット
メリットばかりではなくデメリットについても確認していきましょう。
膨大な時間がかかってしまう
強化学習は、機械学習の中でも特に時間がかかってしまう学習方法です。自ら学習し、そのような選択をすれば最適か判断しますが、そのぶん膨大な時間がかかることが難点といえるでしょう。
すべてにおいて「正解」ではない可能性がある
機械学習全般にいえることですが、強化学習を含めた機械学習が導き出した答えが、必ずしも成果とは限りません。人間の世界においてコンピュータがはじき出す答えが、必ずしも正しい結果を導き出しているというわけではないと理解しておきましょう。
意図しない行動をとる可能性もある
強化学習は、評価方法自体を自らが学習できることがメリットでしたが、一方でその評価方法自体は実際の学習モデルによって依存するため、予期せぬ行動や意図しない行動を取る可能性もあります。その点はデメリットだと考えられるでしょう。
強化学習の仕組み
続いては、強化学習の仕組みについてお伝えしていきましょう。
強化学習の原理
強化学習の利点は、与えられた課題に対して最大の結果を生むことにあります。その原理は、「教師あり学習」「教師なし学習」が問題と解答を静的に定めているのに対し、強化学習は状況に応じて対応を変えられるよう試行錯誤を繰り返して最大の結果を出すことにあります。
マルコフ決定過程
強化学習を説明する上で欠かせないのがマルコフ決定過程です。マルコフ決定過程とは、これまでの状態に関係なく、現在の状況のみをもとに次に起こることの確率がどのようなものかを決定するもので、強化学習にも利用されています。
強化学習のワークフロー
続いては、強化学習のワークフローについて解説していきましょう。
環境作成
強化学習を進めるにあたって、はじめに行うことは環境の作成です。強化学習を実行する環境づくりから行いますが、これには実際の物理システムを利用して進めることがありますが、一般的にはシミュレーションモデルを利用して実験します。
強化学習の環境作成の環境としては、実際にゲームなどを作成する環境としてOpenAIGymなどがあります。これらを利用して環境作成をしてみると良いでしょう。
報酬定義
強化学習は、「報酬」という成果を最大化するために、さまざまな行動や学習を繰り返していく機械学習の方法となるため、報酬の定義が必要です。この報酬の定義は、コンピュータエージェントが課題や目標に対しての測定に使用する「報酬信号」と、強化学習の環境から信号を計算する方法を指定して決定されます。
機械学習の中において、「教師あり学習」や「教師なし学習」の方法の正解ラベルとは異なり、強化学習においての報酬は、一つの行動に対して与えられる必要はなく、状況に応じて繰り返し行動を取ったものに対して与えられる形となります。
エージェント作成
次に、エージェントの作成を行います。強化学習は、与えられた環境とエージェントによって、報酬を最大化させます。エージェントの作成には、「方策の選択」と「学習アルゴリズムの選択」が必要です。
方策の選択肢としては、「ニュートラルネットワーク」や「ルックアップテーブル」などが使用されます。一般的には、ニュートラルネットワークが利用されるケースが多いです。
学習アルゴリズムの選択とは、その名のとおり、適切な学習アルゴリズムを選択することです。
エージェント学習と検証
報酬定義やエージェント作成が完了したら、実際にエージェントに学習させ、それを検証していくことが必要です。エージェントに学習をさせる場合には、どのような条件になったら停止するかという停止条件などの学習オプションを設定し、エージェント学習を進めます。
実際にエージェント学習をした後は、その結果を検証し、性能を評価します。その後、必要に応じて設計の再検討や再学習を行い、繰り返していきます。
強化学習は、他の機械学習と比べて時間がかかることがデメリットとなり、この学習と検証の繰り返し作業にも多くの時間を要することになるでしょう。時間を早める場合には複数のCPUやGPUなどを利用して行うと時間短縮につながるでしょう。
方策の展開
最後に、方策の展開を行います。実際に方策を展開した後、検証段階では見つからなかった課題が出た場合には、改めて学習設定や方策表現、報酬信号の定義などを再設定することが必要になるケースもあります。
強化学習のアルゴリズム
ここからは、強化学習のアルゴリズムについて理解していきましょう。ここでは、「DP法(動的計画法)」「MC法(モンテカルロ法)」「TD法(時間差分学習法)」について解説していきます。
DP法(動的計画法)
DP法とは、課題全体に対しての最良な回答をそれぞれの課題ごとに部分的に分割し、分割された部分課題に対して計算結果を記録しながら最終的な課題全体の回答を行うものです。
DP法には、「方策反復法」と「価値反復法」の2種類が存在します。
MC法(モンテカルロ法)
強化学習におけるモンテカルロ法は、サンプリングとしてシナリオに沿ってコンピュータエージェントに行動を取らせて報酬を得る方法です。それぞれの状態によって取得できた報酬を平均に取ることで、それにおける期待値を計算するというものになっています。
TD法(時間差分学習法)
TD法とは、時間差分学習法とも呼ばれる手法で、強化学習を進める方法の一つです。
これまで紹介したDP法とMC法の両方のメリットをかけ合わせたものがTD法となっており、環境に関する情報がなくてもシナリオを前進することができ、シナリオの終了を待たずに価値関数を更新することができます。
【事例】強化学習を利用した自動運転
強化学習を利用したビジネスでもっとも代表的と考えられるものは、「車の自動運転」ではないでしょうか。最後に、強化学習を利用してどのように自動運転を可能にするのかについて解説していきます。
自動運転の流れ
まずは、車の自動運転がどのように成立しているのか、仕組みや流れを見ていきましょう。車の自動運転には支援するレベルがあり、これまで自動車メーカーを中心に研究開発されてきました。
まずは、「運転支援」です。運転支援は車の左右のハンドルを制御し車線をはみ出さないようにしてくれるサポートや、自動でブレーキがかかるような支援です。
次に、「自動運転支援」です。ブレーキやアクセルを踏まなくても車線や車間を維持したり、追い越しを行ったりするなど支援をしてくれるものです。
そして、「自動運転」です。運転のメインをコンピュータが行い、すべての運転に関する操作を人間に代わって行うというものです。完全な自動運転の実現には、まだ開発中とはなっていますが、遠くない未来に完全自動運転を実現する車が出てくるでしょう。
強化学習利用のポイント
強化学習が自動運転に利用されている仕組みとしては、強化学習アルゴリズムの特徴である「試行錯誤を繰り返してうまくいく方法を導き出す」という考え方、仕組みにあります。
強化学習を採用している自動運転搭載の車は、少しの訓練を行うことで、運転を自動化するということが実現可能になっています。
まとめ
強化学習について解説しました。強化学習はあくまでも機械学習の一つに過ぎませんが、今注目を集めている機械学習の技術です。
車の自動運転など、私たちのすぐ近くにあるサービスとして実は利用されているアルゴリズムになります。今後、近い未来に強化学習を利用したさまざまなサービスが世に出されていくことでしょう。
