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