GoogleはDeepMindを買収してDeep Reinforcement Learning (深層強化学習) という手法を獲得した。この技法はビデオゲームで人間を遥かに上回る実力を示し、また、囲碁の世界では世界チャンピオンを破った。なぜGoogleはこの技法に会社の将来を託すのか、Atariビデオゲームをプレーするアルゴリズムとその技法を振り返り、Deep Reinforcement Learningの革新性を考察する。
ビデオゲームを超人的技量でプレー
DeepMind創設者のDemis Hassabisらが2013年12月に発表した論文「Playing Atari with Deep Reinforcement Learning」でこの技法が世界にデビューした。論文でコンピュータがビデオゲームを見るだけでプレーの仕方を学習する手法が示された。人間がゲームのルールや操作方法を教える必要はなく、コンピュータが試行錯誤でプレー方法を習得する。そして人間のエキスパートを上回る得点をたたき出す。
ブロック崩し (Breakout、上の写真) は、バーを操作し、ボールを打ち返し、ブロックを崩していくゲームで、1970年代に登場し日本だけでなく世界的な人気ゲームとなった。アルゴリズムは最初はゆっくりとプレーを学ぶ。一時間で200回程度のゲームをこなすと、34%の割合でボールを打ち返し、人間の初心者程度の実力となる。二時間後には、300回のゲームをこなし、既に人間の技量を上回る。四時間後には、ブロックに通路を開け、裏側からブロックを崩すという大技を自ら学習する。アルゴリズムは四時間でゲームをマスターする。アルゴリズムはDeep Reinforcement Learningという手法を使い、恐ろしいほど高速で学習する能力を示した。
Reinforcement Learningのモデル
Reinforcement LearningとはMachine Learningの一つで、意思決定のプロセスで使われる (下の写真がその概念図)。AgentがEnvironmentの中で、あるActionを起こす。AgentはActionに伴い更新されたStateを把握し、Rewardを受け取る。Reinforcement Learningのアルゴリズムは、試行錯誤を通じRewardが最大になるPolicyを求める。Policyは一つとは限らず、アルゴリズムは貪欲に異なるPolicyを探求する。
この概念をブロック崩しゲームで例えると次のようになる。Agentはプレーヤーで、Environmentはブロック崩しゲームで、Stateはゲームの状態 (バーとボールの位置、ブロックの有無) となる。 Actionはバーを左右に動かす動作で、Rewardは得点で、どういう規則でActionを取るかはPolicyと呼ばれる。プレーヤー (Agent) はゲーム画面 (State) でバーを右に動かし (Action)、これによりブロックを崩し (次のState)、得点 (Reward) を得る。プレーヤーはこのサイクルを繰り返しゲームを進行する。
アルゴリズムが解くべき課題
アルゴリズムはゲームを繰り返しプレーして、得点を多く取れるような操作を学習する。基本指針はシンプルであるが、実際には難しい問題を抱えている。バーを操作してボールを打ち返し得点するが、バーの動きと得点の関係が時間的にずれている。今の操作が得点につながるまで1000ステップかかることもある。これを「credit assignment problem」と呼び、直前の操作と時間的に離れた得点の関係を算出する必要がある。
もう一つの課題はどういう戦略で進めるのが高得点に繋がるかを求めること。これは「explore-exploit dilemma」と呼ばれ、今の戦略を続けるのか、それとも、新しい戦略に挑戦するのか、作戦を決める必要がある。今のやり方である程度の得点を稼げるが、更に高得点を目指して新しい戦略を試すのかの判断を求められる。
問題の解決方法
この問題を解くために、ビデオゲーム (Environment) を「Markov Decision Process」として定義するとうまくいく。Markov Decision Processとは、次の状態は現在の状態だけに依存するという環境を処理するプロセスを指す。プロセスの目的は、ある時点において将来得られる得点を最大にするよう設定することで、これを表現する関数をQ-Functionとして定義する。Q-FunctionはQ(s, a) と記述され、時間「t」の時から、State「s」でAction「a」を取り続けるとRewardが最大になる関数を示す。この関数を探すことが命題となる。
Hassabisのアイディア
ブロック崩しでStateとは、上述の通りゲームの状態で、バーの位置、ボールの位置と進行方向、ブロックの有無となる。Q-Function (得点を推定する関数) の中にStateの情報を取り込んで得点を計算し、その得点が最大になるAction (バー操作) を取る。しかし、この方式はブロック崩しゲームには使えるが、スペースインベーダーには使えないという問題が発生する。スペースインベーダーにはブロックやバーはなく、宇宙人が攻めてきて、それを大砲で打ち落とす。
これに対してHassabisのアイディアは、解法を一般化するために、ゲーム画面のピクセルをStateとして定義。実際には、ボールの速度が分からないため、連続する画面を使う。ゲーム画面のピクセルを入力するのであれば、プレーの仕方が異なるスペースインベーダーにも使える。このアイディアがゲーム解法のブレークスルーとなり、アルゴリズムは異なるビデオゲームで使うことができる。このポイントが最大の成果として評価されている。
Reinforcement Learningとニューラルネットワークの合体
このアイディアでQ-Functionを解くためにはもう一つ山を越えなくてはならない。Hassabisは、ビデオゲーム画面を84×84のサイズに縮小し、256段階のグレイで表示した。連続する四画面をStateとしてQ-Functionに入力した。しかし、Stateの数は256の84×84x4乗(10の67970乗)となり、Q-Functionで場合の数が膨大となり計算できない。ここでHassabisは次のアイディアとして、入力画面をConvolutional Neural Networkで処理し、それをQ-Functionの値 (Q-Value) とした。Convolutional Neural Networkを使うことで、ゲーム画面を圧縮して情報量を大幅に小さくできる。
上の写真が概念図を示しており、三階層のConvolutional Neural Networkなどで構成される。このネットワークはDeep Q-Network (DQN) と呼ばれ、アルゴリズムを指す言葉として使われる。ゲームスクリーン (左端の四角) から、DQNに四画面を入力すると、次に取るべきActionを出力する (右端の矢印で示された箱)。DQNの出力は数値で、バーを動かす方向とボタンを押す・押さないの操作法を算出する。
ネットワークの教育方法
生成されたDQNは最初はボールを打ち返すことができず、教育する必要がある。具体的には、前述のcredit assignment problemを解くことを意味する。DQNはゲームの時間をさかのぼり、どのActionがRewardに関係するのか意思決定のポイントを特定する。このプロセスではDQNが自らゲームをプレーして操作方法を学んでいく。人間のように試行錯誤しながら、DQNがプレーのコツを掴んでいく。
Neural Networkを組み込んだQ-Functionで将来のRewardを予測すると、関数が収束しなかったり振動して解を得られない。このため、「experience replay」という技法を用いる。ゲームプレーをメモリーに読み込んでおき、DQNを教育するとき、ここに記憶されたサンプルをランダムに取り出して実行する。人間のようにゲームの流れを振り返り、何処で間違えたのかなどを把握する。
DQNはプレー方法を学習し高得点を得る方向に収束していく。つまり、DQNはコツがわかるとその道を究める。しかし、DQNはこのレベルの得点で満足するのか、それとも、リスクを冒し新しい方式を試すのかの選択を迫られる。これが、exploration-exploitation dilemmaで、冒険する度合いを「ε」という変数 (greedy explorationと呼ばれる) で定義する。εは貪欲に新しい手を探る係数で、数字が大きくなるほど危険を冒して新しい手を探る。
DQNは人間の技能を大きく上回る
Hassabisは49の異なるビデオゲームでDQNをベンチマークしたが、そのうち29のゲームで人間以上の成績をマークした。ブロック崩しゲームでは人間のエキスパートの13倍超の成績を収めた。アーキテクチャの観点からは、DQNは同じアルゴリズム、同じネットワーク、及び同じパラメーターで異なるゲーム49をプレーできることが評価される。DQNは高次元のセンサーデータと操作方法を結び付けて、インテリジェントなAgentが高度なタスクを実行することを示したことになる。
GoogleがDeepMindを買収した理由
強化学習の技法「Q-Learning」はロボットや機器制御で幅広く使われている。Sonyの子犬型ペットロボット「AIBO」をQ-Learningで歩行制御する事例などが有名である。AIBOは、最初は速く歩けないが、Q-Learningで教育するにつれ歩き方を学習し、速く進めるようになる。
HassabisはこのQ-LearningをConvolutional Neural Networkと組み合わせ、複雑な環境に適用したことが評価される。具体的にはゲーム画面をConvolutional Neural Networkに入力することで、特定のゲームだけでなく、DQNが汎用的にゲームをプレーできることが示された。この点が大きなブレークスルーとなり、Deep Reinforcement Learningが世界の注目を集めることとなった。GoogleはDQNが自ら学び超人的な技量を獲得できる点に着眼し、DeepMindを6億ドルで買収した。
Googleの狙いはロボット開発
HassabisはDeep Reinforcement Learningをビデオゲームだけでなく幅広く適用することを目指している。その後公開された論文によると、DeepMindはReinforcement Learningを開発するために、三次元の迷路「Labyrinth」を使っている。これはオープンソースのゲーム「Quake」を利用したもので、DeepMindの研究者はこの環境で最新技術の研究を進めている。
研究テーマの一つが試行錯誤しながら迷路を歩くゲーム (上の写真)。仮想の人物 (Agent) が迷路の中に置かれたリンゴを拾い、魔法のドア (Portal) を抜けるとポイントを得る。60秒間でどれだけポイントを得るかを競う。魔法のドアを抜けると、また、ゲームオーバーになると新しい迷路が登場する。Agentは人間のように、目で見た情報から最適なアクションを取る。ブロック崩しゲームと同じ仕組みであるが、ここでは遥かに高度な技術が求められる。Agentは視覚からのインプットを元に、数多くの異なる迷路でプレーする。このためにAgentは特定の迷路向けに作戦を立てるのではなく、全ての迷路で通用する包括的な戦略の策定が求められる。将来は、迷路にパネルが掲示され、Agentはそこに書かれている言葉が何を意味しているのかを三次元空間でオブジェクトと接しながら学ぶ。Hassabisはこの技術を会話ボット (Chatbot) に応用することを明らかにしている。最終的には、Agentが仮想空間でインテリジェンスを身に付けることを目的としている。
DeepMindはLabyrinthで開発したAgentを実社会で試験する。Hassabisは開発したアルゴリズムでロボットを制御することが次の重要なマイルストーンであると述べている。Agentがどんどん変わる迷路で視覚を頼りに最適な判断を下すメカニズムは、ロボットが街の中を歩き、どんどん変わる周囲の環境に対応するアルゴリズムに応用できる。Hassabisは世界で優秀なロボットが開発されているが、ソフトウェアが周りの世界を理解できないため、十分に活用されていないとし、次の目標はインテリジェントなロボット開発であると述べている。更に、HassabisはDeepMindで開発したソフトウェアを自動運転車で使うことも表明しており、ロボティックスとモビリティー技術が一気に進む可能性を秘めている。