強化学習とはー概念や仕組み・機械学習との違いを解説

世界中で日進月歩している科学技術のなかでも特に注目を集めるAI(人工知能)。そして、AIの話題になるとよく耳にする「機械学習」や「強化学習」。これらは決して新しい概念ではありませんが、近年の計算能力の目覚ましい進歩やディープラーニングの台頭により優れた成果をあげており、人々に関心を向けられています。

本記事では、強化学習について、機械学習やディープラーニングとの関係などにも触れつつ、わかりやすく解説していきます。

強化学習とは?機械学習との関係を整理

強化学習(Reinforcement Learning)とは、3つある機械学習(Machine Learning)の手法の1つであり、システム自身が試行錯誤を重ねることにより、最適なシステム制御の実現を目指すものです。

機械学習は現代のAI技術の中核であり、機械学習の生みの親と言われるアーサー・サミュエル(Author Samuel)氏によれば、「明示的にプログラムしなくても学習する能力をコンピュータに与える研究分野」です。つまり、あらかじめ人間の手によりAIの動作ルールをすべて設定するのではなく、人工知能のプログラムが大量のデータを学習することで、分類や予測などのタスクを遂行するアルゴリズムやモデルを自動的に構築する技術です。なお、人間が明示的に行動ルールをプログラムする必要があり、そのルールに従って行動するAIはルールベースAIと呼ばれます。これも人工知能の一手法です。

このような機械学習の手法の1つとして強化学習があり、その他の手法としては、教師あり学習や教師なし学習が挙げられます。この関係性をまとめると、以下のような図になります。

機械学習の3つの手法

1.教師あり学習

教師あり学習とは、学習データとして、入力とその入力に対する正しい出力、データのどの部分に着目して学習すればいいのか(一般的に「特微量」と呼ばれます。)が与えられ、ある入力を受けると正しい出力ができるようなアルゴリズムを作るものです。あらかじめ人間により正解ラベルをつけられたデータを学習させることで、正解と特微量との関係性やパターンを見出し、入力されたデータをそのパターンに基づき出力します。この手法では、迷惑メールの振り分けなど学習データをもとに未知のデータを判別したり(「分類」と呼ばれます。)、過去のデータから売り上げや株価などを予測したりする(「回帰」と呼ばれます。)タスクが可能となります。

2.教師なし学習

教師あり学習とは異なり、教師なし学習では正解が与えられていないデータを学習します。そのため、出力すべきものがあらかじめ決まっておらず、データ同士の関連性やその本質的な構造、パターンなどをコンピュータが自ら抽出・分析します。特徴の似ているグループに分けたり(「クラスタリング」と呼ばれます。)、重要な情報を際立たせるためにデータの変数を減らすなどのタスクを実行します。

3.強化学習

そして本記事の主題である強化学習です。強化学習とは、ある環境の中でシステム自身が試行錯誤しながらより高い報酬を得られるように学習していき、最適なシステム制御を実現する手法です。つまり、AIが様々な行動を自主的に起こし、なんども失敗しながら人間の設定した「報酬」が高くなるような行動を模索し段々と会得していくことで、目的のタスクを実行できるアルゴリズムを構築するという学習方法です。行動を起こし、その結果を踏まえてまた行動を起こす、といったことを繰り返し実行していきます。また、学習の際、人間の監視は必要とされません。この手法は囲碁や将棋などのゲームやロボットの制御、自動運転などのアルゴリズムを構築する際に有用だとされています。

強化学習の仕組みーロボットによる二足歩行を例に

次は、強化学習の具体的な仕組みを見ていきましょう。例として、ロボットによる二足歩行の実現を目標として想定します。

以下は、強化学習において頻繁に登場する用語です。

エージェント:行動を行う主体のことです。以下ではロボットを指します。
環境:エージェントが存在する仮想の空間のことです。
状態:エージェントや環境の情報です。ロボットの位置や体制、その場の傾斜、段差などです。
行動:エージェントの行う行動です。股関節を曲げる、膝関節を曲げるなどです。
報酬:エージェントのランダムな行動に対する評価のことです。前に進むや体制を保つなどです。

これらの用語を使って強化学習の仕組みとその流れを解説していきます。

まず、エージェントであるロボットが、ある仮想の環境下に立った状態で存在します。この場合の環境とはロボットの立つ地面であり、周りの物体や生物です。最初、ロボットのアルゴリズムはまっさらであり、なにもわかりません。いずれかの関節を〇度曲げるなどの行動をランダムに起こしますが、歩行はもちろん姿勢を保つこともできずに倒れてしまうでしょう。

このエージェントの行動により更新された状態に対し、報酬や罰(報酬の逆で、やってはいけない行動をとったときに与えられるものです。)が発生します。ここで重要となるのが、報酬の設定です。つまり、どのような結果には報酬を与えられ、どのような結果には報酬が与えられないか(または罰を与えられるか)を設定することです。これがロボットの行動指針を決めていくことになります。

ロボットによる二足歩行の場合、前に進むことや姿勢を保つこと(頭の高さや手足の位置、胴体の傾きなど)といった、二足歩行を実行するのに必要だと思われる行動を報酬に設定します。

また、1ステップを終了する条件も設定します。例えば、頭の高さがある一定以下になること(転倒扱い)などです。この終了条件を満たしてしまったとき、その回(ステップ)は終了となり、ロボットは初期状態に戻されますが、その際、そのステップにおいてロボットが得た報酬を基に、次回以降どのような行動をとるかを決定する方策を設定、修正していきます。

強化学習では、初期状態から終了条件を満たすまで行動し、得た報酬を基に方策を修正するというステップを膨大な回数繰り返し、将来得られる報酬が最も大きくなるような方策を得ることを目指して進んでいきます。

ディープラーニングを組み合わせた深層強化学習

ディープラーニングは機械学習の技術の一つであり、近年注目を集め盛んに研究されています。ディープラーニングでは、従来の機械学習と異なり人間の手により特微量(入力データの注目すべきポイント)を設定する必要がなく、コンピュータ自身が特微量を見つけ出し、自ら分析して学習を進めます。この技術を強化学習に組み合わせた新たな手法が深層強化学習です。従来の強化学習に飛躍的な技術進展をもたらし、社会やビジネスの場での活躍が期待されています。

強化学習においては、状態の把握が肝心です。これまでの強化学習では、人間の定義した特微量を用いるほかなかったため、あらかじめ想定した範囲内でしか「状態」を記述できませんでした。

しかし、深層強化学習ではディープラーニングで得られた「特徴量」を使って「状態」を定義するため、状態を認識する精度が飛躍的に向上しており、機械やロボットが今までより容易に環境の状態に対応できるようになりました。

強化学習の活用事例とその未来

強化学習はどのような分野に活用されているのでしょうか。

まず初めに挙げられるのがゲームです。Googleの子会社であるDeepMind社が開発した「AlphaGo」は、囲碁のトップ棋士相手に勝利をおさめ、注目を集めました。

また、自動車の自動運転での活用も期待されています。自動運転のアルゴリズムは、人間の手で作り上げるにはあまりにも膨大であり、困難です。そこで、強化学習を活用することでこの難題を解決しようと日々研究が行われています。

さらに、広告配信の分野でも活躍が見込まれています。Web広告の効果やその要因などのデータを基に、顧客の購買金額が上がるよう広告配信のアルゴリズムを構築します。

様々な分野での活躍が期待され、研究が進められる強化学習。これからも人工知能は注目を集め続けると考えられますが、その中でも試行錯誤を通じアルゴリズムを築き上げていく強化学習は応用分野も多く、重要な手法として活躍し続けるでしょう。