強化学習とは | 仕組み・深層強化学習・活用事例を解説

このエントリーをはてなブックマークに追加


自動運転や自律制御ロボットなどの基盤技術として、近年注目を集めている強化学習。Google子会社のDeepMind社が開発し、数々の囲碁の名人に勝利を収め、衝撃をもたらした人工知能「AlphaGO」のアルゴリズムとしても強化学習は使われています。

本稿では、機械学習やディープラーニングの中での強化学習の位置づけ、その仕組みを分かり易く解説します。また、ビジネス・産業での活用事例などについても取り上げます。

強化学習とは?

強化学習(Reinforcement Learning, RLとは、システム自身が試行錯誤しながら、最適なシステム制御を実現する、機械学習手法のひとつです。

強化学習という概念自体は、昨今のAIブームよりかなり前から存在します。強化学習の原型は、機械の自律的制御を可能にする「最適制御」の研究として、1950年代には既に存在しました。1990年頃には「強化学習の生みの親」とも呼ばれるカナダ・アルバータ大学のリチャード・サットン教授らを中心に、活発に研究されていました。

古くから存在した強化学習に、飛躍的な技術進展をもたらしたのが「深層強化学習」です。従来の強化学習にディープラーニングを応用した深層強化学習の登場は、強化学習をベースに駆動するAIが社会に実装される契機となりました。

その強化学習、そして深層強化学習を理解するため、まずは機械学習やディープラーニングといった技術の概要を説明します

強化学習と機械学習

機械学習(Machine Leaning, ML)とは、人工知能のプログラムが大量のデータを学習し、識別や予測を行うアルゴリズムを自動で構築する技術の全般を指します。その機械学習の中のひとつの領域が「強化学習」であり、その「強化学習」に「教師あり学習」「教師なし学習」のふたつを加えた3つの領域が機械学習には存在します。


出典:The building Blocks of ML, Stanford University

①教師あり学習・教師なし学習(Supervised Learning/Unsupervised Learning)

教師あり学習では、コンピューターに「入力」と「正しい出力」が紐づいた学習データを与え、ある入力を受けたときに正しい出力を返せるアルゴリズムを構築する学習方法です。

たとえば、住宅価格を予測するアルゴリズムが挙げられます。この場合、ある家の広さや立地、駅からの距離などを「入力」、その家の価格を「正しい出力」として紐づけて学習させます。これにより、ある家の周辺条件を入力すると、適正な住宅価格を推測してくれるアルゴリズムが構築されます。

一方、教師なし学習では、コンピューターには「入力」データのみを与え、データの中に内在するパターンなどをコンピューターが独自で抽出します。

例のひとつとして、あるスーパーに来店する顧客の購買データを元に、顧客をいくつかのグループに分けるアルゴリズムが挙げられます。購入商品や来店時間などの購買データが入力となり、コンピューターが独自に類似する購買行動を抽出し、顧客グループを出力します。この出力は事前に人が定めたものではありません。

②強化学習(Reinforcement Learning)

強化学習では、コンピューターはある「環境」の中で、目的として設定された「報酬(スコア)」を最大化するための行動を学習します。

代表例として、ロボットの歩行制御が挙げられます。この場合はロボットに「歩けた距離」を報酬として与えます。するとロボットは、歩行距離を最大化するために、自らさまざまな歩き方を試行錯誤します。そうすることで、歩行可能距離の長いアルゴリズムが構築されます。

ディープラーニングと強化学習

ディープラーニングは機械学習の一手法であり、機械学習に飛躍的な進展をもたらした技術です。2012年に世界的な画像認識AIのコンペティションである「ILSVRC」にて、カナダ・トロント大学のジェフェリー・ヒントン教授らが開発した、ディープラーニング技術を用いた画像認識AIが圧倒的な勝利を収め、現在の人工知能ブームの火付け役となりました。

従来の機械学習手法とディープラーニングの違いは、人間による「特徴量抽出(Feature Extraction)」が必要か否か、という点にあります。

従来の機械学習では、学習データのどの部分が、出力にどれ位の影響を与えているかを示す「特徴量」を、人間が自ら調整する「特徴量抽出」を経た上で、機械学習で予測モデルを構築していました。


出典:A.I. Technical: Machine vs Deep Learning

一方でディープラーニングでは、コンピューターが自ら学習データから特徴量を抽出し、予測モデルを構築できる「表現学習」が可能です。これにより人間が介在して特徴量設計を行う必要がなくなり、以前よりはるかに容易に機械学習を行うことができるようになりました。

そのディープラーニングの登場は、強化学習にも大きな技術的進展をもたらしました。ディープラーニングを強化学習に応用した学習手法は「深層強化学習(Deep Reinforcement Learning)」と呼ばれます。

2013年にDeepMind社が深層強化学習を用いたブロック崩しゲーム用AIを開発し、人間を超える成績を残し話題となりました。2015年に同じくDeepMind社が開発したAlphaGOは、世界屈指の名人に次々に勝利する成績を残しています。深層強化学習は産業にも応用されつつあり、自動運転やロボット制御の分野で活用が始まっています。

人気ゲーム「スーパーマリオブラザーズ」でLet’s 強化学習!

Photo on いらすとや

では、その強化学習の仕組みとはどのようなものなのでしょうか。本節では、「スーパーマリオブラザーズ」を仮想空間に再現し、プレイに強化学習を応用した動画を用いて、その流れを解説します。

強化学習は、与えられた条件下で得られる価値を最大化する方法を、試行錯誤を通じて探索し続ける学習です。ある行動を起こした結果を踏まえ、また行動を試行する、という流れで学習がループし続けます。マリオの例で言えば、あるステージでマリオが少しでも長い距離を進めるプレイスタイルを確立する学習手法と言えるでしょう。

強化学習の流れ

①「エージェント」がある「環境」の中に置かれ、その環境に対して「行動」を起こす。

出典:強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによるステージ設計支援~(DeNA Co.,Ltd.)

「エージェント」とは、ある条件下において行動する主体を指します。例えば「強化学習でマリオのゲームのスコアを上げる」という条件においては、マリオそのものがエージェントとなります。「環境」とはそのエージェントが存在する仮想の空間を意味し、マリオのゲームでいう「ステージ」が環境に該当します。ステージ内でジャンプしたり、アイテムを取ったりといったマリオのアクションが、強化学習での「行動」を指します。

②環境がエージェントに、行動により更新された「状態」と「報酬」をフィードバックする。

「状態」とは、エージェントが存在する仮想空間の情報であり、エージェントが行動する度に更新されます。

ゲーム内でマリオはゴールに向け移動したり、敵を踏んで倒したりと、さまざまな行動を取ります。その行動は、マリオ自身の位置はもちろん、ステージの状態も変化させています。環境の変化を、マリオに伝達することが「状態」のフィードバックです。

また、強化学習スタート時のステージに置かれたばかりのマリオは、自分が何をすればいいのかまったく分からない無垢な存在です。そのマリオの行動指針となるのが「報酬」です。マリオは、とりあえずジャンプしてみる、とりあえず右に進んでみる、などのさまざまな行動をランダムに取ります。その都度、行動に応じた「報酬」、もしくは罰をマリオは受け取ります。

強化学習のサイクル(Agent:エージェント, State:状態, Reward:報酬, Action:行動, Environment:環境)出典:「強化学習」東京大学大学院新領域創成科学研究科, 伊庭斉志

③環境からのフィードバックを元に、「方策」を修正する。

エージェントは、自身の行動に対する環境からの「状態」と「報酬」のフィードバックを元に、将来得られる「価値」を最大化する「方策」を導き出します。方策の導出に用いられるのが「状態価値関数」「行動価値関数」です。

このステップを理解する上で重要なのが、「報酬」と「価値」の違いです。

「報酬」はランダムな行動aのみに対してのフィードバックを指し、即時報酬などとも呼ばれます。一方で「価値」とは、強化学習により構築されたアルゴリズムが、より長いスパンで行動した結果得られる最終的なアウトプットを指します。

Ledge.ai 編集部作成

状態価値関数は、ある状態“s”において、エージェントが方策“π”を実行した際に得られる価値を計算します。一方で行動価値関数は、エージェントがランダムな行動“a”を実行した後に方策πを実行した際に得られる価値を計算します。


Ledge.ai 編集部作成

状態価値関数と行動価値関数を比較すると、両者とも最終的に方策πを実行している点では共通です。しかし、行動価値関数のみが途中でランダムな行動aを実行しています。すなわち、両者それぞれが導出する価値を比較することで、行動aの実行で得られる価値がどれくらい増えるか、もしくは減るのか明確になるのです。得られる価値が増えるのであれば、行動aを方策の一部として採用し、方策を修正していきます。ある意味でPDCAサイクルを回しているとも言えます。

強化学習マリオで上の流れを例えてみましょう。この例では、右に進みゴールを目指すことに加え、コインを獲得することも報酬と設定した場合を想定します。

あるステージで、上にコインブロックがあるステージの箇所を、ジャンプしてコインを獲得せずに通過していたとしましょう(=修正前の方策)。この場所で、行動aとしてジャンプしてコインをとる行動を実行し、その結果を計算します(=行動価値関数)。それを元々コインを取らずに通過していた時の結果(=状態価値関数)と比較します。すると、ジャンプしてコインを獲得した試行のほうが多くの価値を得られていることになります。よって、コインブロックの下でジャンプしコインを取る、という行動が方策に組み込まれる訳です。

④これまでの一連の行動の結果として変化した環境の中で、再びエージェントが環境に対して行動を起こす。

以上の、①行動⇒②行動による環境の変化と報酬のフィードバック⇒③その行動を取った場合と、取らなかった場合の価値を比較し、方策を修正し①に戻る、のサイクルを繰り返しながら、強化学習は進んでいきます。

左から順に報酬(Reward)、行動価値関数(Action Value Function)、状態価値関数(State Value Function)を意味する。フィードバックサイクルを繰り返しながら学習は進む。出典:A Novel Deep Neural Network Architecture for Mars Visual Navigation

補足:「Q値」とは
強化学習の説明でよく聞く「Q値」という概念は、「ある状態sにおいて、ある行動aを取った際に得られる価値」を指します。「状態行動価値」とも呼ばれ、行動価値関数が導出する「価値」と同義です。

新たに登場した”深層”強化学習とは

この章では、従来の強化学習に、新たに登場したディープラーニングを組み合わせた学習手法である、「深層強化学習」を解説します。強化学習とディープラーニングの融合は、旧来の強化学習に大きな技術的進展をもたらし、社会・ビジネスへの活用が大幅に進む契機となりました。 

代表的な「DQN」を中心に、深層強化学習では多様なアルゴリズムが開発されている。
出典:Deep Learning for Video Game Playing, New York University

ディープラーニングは入力されたデータからの自律的な特徴抽出を可能にします。一方で強化学習は、外部からの入力に対応して自律的な制御を行うことを可能にします。この自律的特徴抽出と自律制御の組み合わせである「深層強化学習」が、強化学習に飛躍的なブレイクスルーをもたらしました。

前節で強化学習の流れを解説しましたが、その全体の流れの中で行われているプロセスは、主に「特徴量抽出」と「時系列データ生成」のふたつであると言えます。

強化学習では、エージェントが置かれる環境についての知識は事前に与えられていないため、自ら探索を行い、情報収集しなくてはなりません。例えば、マリオゲームをプレイする場合、まずマリオがステージを動き回って環境を把握した上で、各地点でどのような行動を取るかを決定します。これが強化学習における「特徴量抽出」です。

更に強化学習においては、ステージの環境を把握した上で、長期的な「価値」を最大化することを念頭に置いた行動パターンを考えなくてはなりません。時系列と各行動の相互の影響を考慮し、行動パターンを決定するのが、「時系列データ生成」です。

この「特徴量抽出」と「時系列データ生成」にそれぞれに対し、強みを持つのがディープラーニングです。

ディープラーニングとひと言にいっても、その中にはさまざまなアルゴリズムがあります。中でも入力データからの特徴量抽出に強いのが「畳み込みニューラルネットワーク(CNN)」、時系列データの扱いを可能にするのが「再帰型ニューラルネットワーク(RNN)」と呼ばれるアルゴリズムです。

「点群」と呼ばれる三次元空間上の点の集合のデータでの深層強化学習を可能にした「3DCNN-DQN-RNN」というモデル。CNNとDeep Q Networkと呼ばれる深層強化学習のアルゴリズムが組み合わさっている。
出典:3DCNN-DQN-RNN: A Deep Reinforcement Learning Framework for Semantic Parsing of Large-Scale 3D Point Clouds

このように、強化学習の重要なプロセスそれぞれに、対応した強みを持つディープラーニングを適宜組み合わせることにより可能になったのが「深層強化学習」という訳です。

強化学習とディープラーニングが融合して生まれた深層強化学習ですが、その性能とはどれ程のものなのでしょうか。深層強化学習の最先端のモデルである「R2D2」は、Atariという強化学習の性能評価で一般的に用いられるゲームプレイにおいて、人間のプレイと比べて平均約35倍という驚異的なパフォーマンスを叩き出しています。
出典:Recurrent Experience Replay in Distributed Reinforcement Learning

強化学習の活用事例

この章では、強化学習の実際の産業・ビジネスへの実装の事例をいくつか紹介します。

オンラインゲームにおける顧客体験向上

株式会社DeNAは、提供するゲーム「逆転オセロニア」の顧客体験向上のために、強化学習を活用しています。強化学習AIは、いち早く「楽しい」と思える領域に到達してもらうプレイヤーサポートと、ゲームバランスの調整を通じたゲームプランナーの意思決定支援のふたつの側面に貢献しています。

自然エネルギー発電網の最適化

株式会社GRIDは、供給が不安定な自然エネルギー発電の送電ネットワークの為の最適化ソリューションに、強化学習を活用しています。電力システムは刻一刻とで状況が変化し、かつ人々のインフラであるゆえに、リアルタイムで調整する必要があります。このような動的な状況下でのマネジメントは強化学習の得意分野のひとつです。

建物揺れ制御のための「制御系AI」

株式会社Laboro.AIが株式会社大林組向けに開発した建物揺れ制御のための「制御系AI」は、強化学習のゲーム以外の領域への先進的な応用事例のひとつです。Laboro.AI社は今後、日本のグローバルニッチトップ産業へこの制御系AIを導入することを通じて、新たな日本初のイノベーションに寄与していくとプレスリリースにおいて述べています。

強化学習の課題と未来

社会に大きなインパクトをもたらす可能性を秘め、研究の進展により技術も成熟しつつある強化学習。しかしその活用は現状ゲーム領域が中心であり、産業全体への実装は進んでいるとは言えないのが現状です。

その背景のひとつとして、そもそも活用事例が少ない上に、強化学習を扱う書籍は数式などの理論を中心に扱うものが多い点が上げられます。現場での実装を支援するような解説書の充実が待たれます。

IoT技術により、あらゆるモノから莫大なリアルタイムデータを取得できる未来が現実味を帯びつつあります。そういったデータを元に、アルゴリズムを常に更新し続けられる強化学習は、今後あらゆる産業において生産性を上げるために、ますます重要な役割を帯びることになるでしょう。