強化学習とは?ALPHAGOでも使われている強化学習を具体例とともに丁寧に解説!

強化学習とは?ALPHAGOでも使われている強化学習を具体例とともに丁寧に解説!

最近、機械学習とか強化学習とかよく耳にするけど、ネットで検索しても数式が出てくる記事ばかり。数式の出てこない解説はどこにあるの……?

そんな方のために、本記事では数式を全く使わずに「強化学習」を解説していきます。

初心者でも理解できるよう、丁寧に解説していますので、ぜひ最後まで読んで強化学習の概要を掴んでください。

強化学習とは?初心者でもわかるように解説!

強化学習とは、機械学習のアルゴリズムの一つです。

教師あり学習、教師なし学習のような固定的で明確なデータを元にした学習ではなく、プログラム自体が与えられた環境(=現在の状態)を観測し、連続した一連の行動の結果、価値が最大化する(=報酬が最も多く得られる)行動を自ら学習し、選択していくだけでなく、行動についての評価も自ら更新していきます。

報酬は、例えばブロック崩しのゲームにおいて、ブロックをより多く倒せる位置にボールを飛ばせたら+5、ボールを落としたら-5、のように設定します。

機械学習について詳しく知りたい方は、「機械学習とは?ディープラーニングとの違い&必ず知っておきたいDQNとは?」の記事を参考にしてみて下さい。

 

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

強化学習の3つの応用例

まだ強化学習について疑問が残る方もいると思うので、実際の応用例を挙げて、説明していきたいと思います。ここでは、プロに勝った囲碁の人工知能AlphaGo、アウディの自動車の自動運転、エレベーターの制御システムを取り上げていきます。

 

強化学習の応用例①プロに勝った囲碁の人工知能、AlphaGo

強化学習は、行動の直後に報酬を得られない場合や、行動を選択する指針となる教師データの入力がされていないなど、制約のある状況でも学習を進めることができる自律型エージェントに適した学習手法です。

人間対人工知能の囲碁

囲碁の対戦を複数回行っても名人を下し続けた人工知能AlphaGo(アルファ碁)のアルゴリズムには、この手法の一つであるQ学習が採用されています

Q学習は、最適な行動の価値をQ値とし、大量の試行とその結果から、常にこのQ値が最大になるような行動を選択していく学習手法です。

Q値は将来に渡る報酬の期待値ともいえます。次に起こる状態において報酬を最大化するために採用した行動のQ値と、現実のQ値の差を0になるように行動し学習していくアルゴリズムが、良いアルゴリズムです。

AlphaGoに使われているアルゴリズムの場合、入力された大量の画像を畳み込みニューラルネットワークで処理して特徴量を抽出することで、種々のゲームでそのゲームの達人級の人間を超えるスコアを出せるようになりました。

特徴量の生成をディープラーニングの一種である畳み込みニューラルネットワークが行うことで、アルゴリズムが同じままでも、様々なゲームをプレイすることも可能なのです。

 

強化学習の応用例②自動車の自動運転

現在、大手自動車メーカーのみならず、IT大手企業なども車の自動運転技術に注目し、開発を進めています

車の制御はロボット制御と同じ技術を利用できます。強化学習を用い、自動車の各行動に対して報酬を与えることで、あらゆる状況に対応するプログラムを作成する必要がなくなるのです。

車が自律的に学習し、判断し、行動することをセンサフュージョンといいます。そのためのデータは、車に取り付けられた多数のセンサーで取得します。

自動運転システム

ところで、もしこのデータを通常のQ学習で処理しようとすると、取り付けられたセンサから得られるデータの種類の数(直面する状態)だけQ関数を学習する必要があります。様々なシチュエーションを学習させることで、上手な運転をできるようになっていきます。

また、上手な運転とは、単に目的地に早く到着する運転ではなく、他にも様々な要素をもつ非線形データです。

このようなデータから表現の難しい報酬を求める方法として、反復的に計算を行って価値を徐々に更新する価値反復法や、Maximum Entropy IRL、Maximum Entropy Deep IRLがあります。

大手自動車メーカーのアウディでは、いち早く自動運転技術に取り組み、2016年には「トラフィック ジャム アシスト」搭載の車を発売しています。これは、完全な自動運転ではありませんが、運転支援システムで、渋滞時などにハンズフリーでの走行を可能にしています。

 

強化学習の応用例③エレベーターの制御システム

建物の高層化に伴い、エレベータの制御はますます重要になっています。

よいエレベーターの制御システムの条件の一つに、客の平均待ち時間が短いことがあります。

特にデパートや大型オフィスビル、マンションなど、毎日複数のエレベータが多くの人たちに利用されているところには欠かせない条件です。エレベータの増設は通常難しいため、台数と定員は同じまま待ち時間を短くする必要があります。

エレベーターの制御システム

数理的手法で最適なかご割り当てを行うには限界があるため、通常は各かごを自律的に行動する主体ととらえ、各かごの経験に基づく学習から、複数の呼びの中で優先させる呼びを判断させます

強化学習とニューラルネットワークを組み合わせたエレベータの群制御システムについては特許を有している企業もあります。

エレベータ呼び割り当て用ニューラルネットが日々の運行の中で新しい適切なかごの割当て解を学習し、より良い運行が可能になるよう、強化学習により新たな経験を学習データとしてシステムに追加し、ニューラルネットの自己組織化を図っていく仕組みが特許になっています。

 

強化学習とディープラーニングの関係は?

強化学習とディープラーニングはどちらも機械学習の手法の1つです。

近年、強化学習とディープラーニング(ニューラルネットワーク)を組み合わせた研究がいろいろ出てきています。

両者を組み合わせることで、強化学習の特徴である「特定のタスクを達成するために必要な行動をコンピュータが“自ら”学習していく」点が、ディープラーニングを組み合わせることで評価に必要なデータの大量かつ迅速な供給、処理により強化されているためでしょう。

例えばUC Berkeleyは、強化学習とディープラーニングを組み合わせ、ロボットの自律的な学習や動きを向上させるプロジェクトを進めています。

今後、強化学習はディープラーニングと組み合わせることにより、より教師なし学習に近い形で利用されていくのかもしれません。

ディープラーニングについては「話題のディープラーニングとは?初心者向けに1から徹底解説!」で解説していますので、詳しくはそちらをご覧ください。

 

いかがでしたか? 強化学習とは何かお分かりいただけましたか?