テクノロジー

基礎を抑えるならこれを読め!強化学習とはなにか、を1から解説

基礎を抑えるならこれを読め!強化学習とはなにか、を1から解説

機械学習について調べると、強化学習という言葉をよく見かけますよね。機械学習には3つの種類があり、教師なし学習と教師あり学習、そしてもうひとつが強化学習です。

強化学習は、システムにあらゆる環境でのシミュレーションを行わせ、状況ごとに最適な行動ができるよう人工知能(AI)に学習させる方法です。システム自身が試行錯誤を重ねるという方法により、様々な状況に対応できる人工知能(AI)を作り出すことができます。

このような優れた人工知能(AI)を生み出せる強化学習は、今の人工知能(AI)技術において欠かせないものといえるでしょう。ぜひ、この記事で強化学習の基礎をマスターしましょう。

ということで今回は、その強化学習とは具体的にどんなものなのか、何が出来るのかを現代社会での活用事例を交えながら解説します

そもそも強化学習とは

システムのイメージ
強化学習とは、システム自身が試行錯誤しながら最適なシステム制御を目指す機械学習手法です。

強化学習の大まかな流れは、システムに環境を用意する、システムが環境に応じて行動する、その行動の良し悪しに応じて人間が報酬を与える、というものになります。この流れを様々なパターンで繰り返し、どれが良い行動でどれが悪い行動なのかを人工知能(AI)が理解し、最適なシステム制御へと近づけます。この時、他の機械学習手法である教師なし学習や教師あり学習とは違い、入出力データを与えるなどの人間による介入が必要ない点がポイント。

また、強化学習は非常に高い実績を残しています。実際に強化学習が使われたAI(人工知能)「AlphaGo」囲碁で数々の名人相手に勝利を収めました。この他にも、強化学習は自律制御ロボットなどの基盤技術としても注目されているため、今後も様々な分野での活躍が期待されています。

強化学習とディープラーニングの違いとは

人間と機械のイメージ
ディープラーニングとは、人間の介入なしにシステムが自動でデータを分析してくれる学習手法のことです。強化学習とディープラーニングはどちらも人工知能(AI)の学習手段であり、その違いは学習方法にあります。

以下が、強化学習とディープラーニングの大まかな違いです。

  • 強化学習:学習に人間の手を必要とする、システムが何を目指して学習したかが分かる
  • ディープラーニング:学習に人間の手を必要としないシステムがどう学習したかは分からない

それぞれについて解説しましょう。

強化学習

強化学習は、入出力などの情報を与える必要はない代わりに、人間が報酬を与える必要があります。報酬とは、いわゆる行動に対するスコアであり、システムはこのスコアを高めようと試行錯誤していきます。

例として、ロボットの歩行で解説しましょう。ロボットの歩行の場合は、歩行距離を報酬として与えます。するとロボットは報酬である歩行距離を伸ばすため様々な手を尽くし、やがて長い距離を歩けるようになるのです。

このように、強化学習では人間が報酬を与える必要があり、学習に人間の手を必要とします。

また、強化学習では、システムが何を目指して最適化するかの指針となる報酬を与えているため、なぜこの結果に至ったのかが分かります。ディープラーニングではこの結果にともなう理由が分からないため、この点もディープラーニングとの違いといえるでしょう。

ディープラーニング

ディープラーニングは、学習するときに報酬が必要ありません。そもそも報酬とは、システムの行動に対するスコアであり、強化学習では最適化を目指すための指針となるものです。

この報酬が不要な理由は、ディープラーニングでは、システムが自動的にデータの特徴や傾向などを分析するためです。そのため、ディープラーニングでは人間による介入が必要ありません。

ただし、ディープラーニングは人間の脳を模倣したニューラルネットワークを使用していて、なぜこの結果になったのかが分かりません。このため、医療診断などの論理的な説明が必要な場面では使いにくいでしょう。

強化学習でできること

自動運転のイメージ

強化学習は、教師なし学習や教師あり学習のように入出力データを用意する必要がないので、人間が解を用意する必要がないという点があります。そのため、強化学習を使えば、自動運転や最適化問題のような、解の範囲が非常に広い内容をこなせるようになるでしょう。

強化学習でどのようなことができるのか、例をあげて解説します。

自動運転

自動運転は、人間によって解を出すのが難しい分野です。なぜなら、安全で安心な運転を実現するには、車間通信や運行システムとの通信、インフラとの連携なども必要で、幅広い領域にまたがった複雑なシステムが求められるためです。

強化学習は、この自動運転においても強みを発揮します。上手く衝突を回避すれば正の報酬、そうでなければ負の報酬を与えるといった流れで行動を学習させられるためです。このため、明確に答えを出すのが難しい自動運転でも最適な動作を見つけることができます。

最適化問題

最適化問題とは、特定条件のもとで、ある目的の最大もしくは最小の状態を求める問題のことです。現在の社会は効率を意識することが多く、この最適化が多く求められています。

最適化が使用されている例としては、電車やバスの「乗換案内アプリ」が挙げられます。このアプリを使うと、最短時間でのルートや最安値のルートが一目で把握できます。それぞれで最適なルートを提示してくれるこのシステムは、まさに最適化が実行されているといえるでしょう。

株式会社GRIDでは、更に最適化問題を解決していくために強化学習を用いています。その理由は、強化学習の状況変化への対応力です。旧来の手法では、状況が変わるごとに最適化計算を行う必要があったのですが、強化学習は環境ごとに対応した行動をとるため、状況の変化に自動で対応してくれます。

そのため、様々な状況が想定される最適化問題においても、強化学習は高い力を発揮できるのです。

強化学習の仕組み(アルゴリズム)とは

ゲームのイメージ
強化学習は、利益を最大化する行動を学習させ、最適な制御を目指す仕組みとなっています。とはいうものの、これだけでは分かりづらいですよね。もう少し詳しく見ていきましょう。

まず、強化学習では以下の2つを軸に学習が進みます。

  • エージェント 仮想環境で行動させる主体
  • 環境 エージェントが動く仮想環境

「エージェント」が「環境」の状態に応じて行動を起こし、その中で一番良い行動を見つけることが強化学習の目的です。例として、マリオのゲームに置き換えると、プレイヤーが操作するマリオは「エージェント」に当てはまり、マリオが動くステージは「環境」となるわけです。

次に、強化学習でエージェントや環境に影響を与える3要素について説明します。

  • 環境の状態を表す s
  • エージェントがとれる行動の選択肢 α
  • エージェントの行動に対する報酬 r

強化学習では、これらの要素を使ってエージェントの行動を左右し、最も利益を得られる行動をするように導きます。しかし、利益を最大化するなら常に報酬rが高い選択肢を選べば良いとは限りません。

この利益の最大化は、その時点で貰える即時報酬ではなく、長い期間を見ての価値の最大化を指しています。このような長期的価値をQ値もしくは状態行動価値と呼び、こちらを高めるようにするのが強化学習の本当の目的となります。

強化学習はこのように、長期的価値を高められるような試行錯誤を繰り返すことで、最適なシステム制御へと近づく仕組みになっています。

強化学習が使われた事例

ロボットのイメージ
強化学習は、現代社会において様々な分野で使われています。今回は、数ある中から3つの事例について紹介します。

ロボットの自律制御

Googleにて研究が進められている、ロボットアームの最適化のことです。

強化学習の特徴を活かし、状況に応じた物の掴み方や運びの挙動について学習させています。複数の学習を同時並行で行う分散型の学習を可能にし、人間より早く動作を覚えることを実現しています。

ロボットアームの学習した内容はその後、フィードバックシステムの訓練に使用されます。フィードバックは、出力結果を入力側に戻し、出力値が目標に一致するよう調整することです。

そのフィードバックシステムを訓練するため、ロボットアームが日々学習した内容を与え続けます。するとロボットアームはつかむという動作の成功率を正確に判断できるようになり、成功する可能性を高める調整も行えるようになるのです。

Googleはその後、この学習の効果を検証するためにリアルタイムで動きの補正を行わないという実験も行いました。その結果、この学習で得られた成果と比べて失敗率に約16%もの差があり、大きな成果があったことが確認されました

建物揺れを制御する人工知能(AI)

株式会社Laboro.AIが開発した建物揺れを制御する人工知能(AI)は、強化学習が使われた事例のひとつです。地震が多い日本では、従来から高層ビルの揺れを抑える技術が研究されてきました。

対応するべき揺れには大きく分けて2つあり、それが地震と風揺れです。地震については比較的簡単に対応できるのですが、風揺れの対応は難しいものとされてきました。

そんな中、Laboro.AIは風揺れも含めてより高い精度の建物揺れ制御を実現するため、この制御揺れ人工知能(AI)のプロジェクトを開始します。このプロジェクトでは、ビルの揺れをシミュレートする環境を作り、どのように重りを動かせば揺れを早く抑えられるかを人工知能(AI)に学ばせました。

学習は、ビルの揺れをシミュレートする環境を作って初めはランダムに重りを動かし、揺れを抑えられたらプラスの報酬、揺れが大きくなったらマイナスの報酬を与えるという流れを繰り返します。

この学習を約2万回行ったところ、約1秒という早さで揺れを抑えることに成功しました。以前の制御システムよりも早く正確に、建物揺れの制御を行えるようになったのです。Laboro.AIは今後、日本の様々な産業へこの制御人工知能(AI)を導入する予定とのこと。

ゲーム

2015年、DeepMind社開発の人工知能(AI)「DQN」がいくつかのAtari社製のゲームで人間と勝負し、半数以上のゲームで人間と同等、あるいはそれ以上の結果を残しました。DeepMind社が強化学習やゲームプレイ人工知能(AI)の研究に力を入れている理由として、これらの試みが人工知能(AI)の更なる発展につながると同社が考えていることがあります。

その後もDeepMind社はDQNの改良を続け、2020年に改良版である「Agent57」が開発されました。Agent57は、DQNが人間に勝てなかったゲームも含め57本全てのゲームで人間を上回るスコアを叩き出し、強化学習の更なる可能性を世界に示しました。

強化学習を応用すると、こんなことができる

エレベーターのイメージ
強化学習は、エレベーターの制御システムなどにも応用できます。

エレベーターの制御システムの前提条件としては、利用者の待ち時間を短くすることが挙げられます。これはデパートや大型ビルのような、エレベーターの使用機会が多い場所において非常に大事な条件となるでしょう。

数的手法では状況に応じた最適な割り当てを行うのに限界があるのですが、強化学習がそれを解決します。強化学習では、人が乗るエレベーターをかごとして認識させ、そのかごがどう動けば人の待ち時間を減らせるかを、システムに試行錯誤させながら学習を進めていきます。

そのため、試行回数を積めば自然と、人を待たせない良いエレベーター制御システムが完成するのです。

まとめ
さて、今回は強化学習の基礎についてお伝えしました。

強化学習は、システムが試行錯誤しながら最適な動作を目指すという手法をとった機械学習のひとつです。強化学習とディープラーニングの違いは学習方法の差であり、その中で人間の手を必要とすること、結果に至った理由がわかるという2つが、強化学習から見たディープラーニングとの差です。

また、強化学習の流れは、システムが環境に応じた行動を起こし、その行動への評価である報酬をシステムに与え、より高い評価を得られるようシステムが試行錯誤するという仕組みで成り立っています。

人間が解を出すのが難しい問題でも対応できることから、ロボットや建物揺れの制御、自動運転、そして乗り換え案内アプリのような最適化問題にまで広く使われ、これからの日本の技術的革新にも大きく貢献していくことが期待されています。

人工知能(AI)の可能性を大きく広げる強化学習。基礎を学んだあとも、ぜひ更に詳しく強化学習を学びましょう。

【お知らせ】

当メディア(AIZINE)を運営しているAI(人工知能)/DX(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。

御社の悩みを強みに変える仕組みづくりのお手伝いを致しますので、ぜひご相談ください。

お多福ラボコーポレートサイトへのバナー

トップへ戻る
タイトルとURLをコピーしました