この記事は日経Robotics 有料購読者向けの記事ですが
日経Robotics デジタル版(電子版)』のサービス開始を記念して、特別に誰でも閲覧できるようにしています。
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です

 現在の多くの学習はパラメータθを入力とした目的関数F(θ)の最適化問題(以下、最小化問題とする)を解くことで実現される。

  最適化対象のパラメータ空間が高次元である場合、パラメータをランダムな方向に摂動(わずかに動かす)させた時に目的関数の値が改善される可能性は低い。これは、目的関数の形は多くの方向が崖のように切り立っている谷のような形をしており、特定の方向に沿った時のみ目的関数を改善できるようになっているためである。

 目的関数を改善できる方向を探すためには、勾配情報を使うのが一般的である。目的関数の値が最も急激に変わる方向である目的関数のパラメータについての勾配v=∇F(θ)/∇θは、現在のパラメータをどの方向に更新すれば目的関数を最も改善できるか正確な情報を与えてくれる。

著者の岡野原大輔氏

  ニューラルネットワークにおける誤差逆伝播法のように、多くの問題では目的関数のパラメータについての勾配を効率的に求めることができ、その勾配情報に従ってパラメータを更新する勾配降下法が広く使われている。

 一方、勾配を効率的に求めることができない問題も多く存在する。例えばニューラルネットワークで離散変数を使ったり、階段状の関数(例:f(x)=[x])のように微分が0や無限大になってしまうような非線形関数を利用する場合、勾配は0や無限大になってしまい、改善する方向を与えてくれない。また、目的関数の一部が不明な場合も効率的に勾配を求められない。例えば強化学習は、環境(現在の状態と行動から、報酬と次の状態を返す関数)はブラックボックスであり、誤差逆伝播法を使って勾配が計算できない。これに加え、学習時のハイパーパラメータ(学習率、モーメント、ユニット数、層数など)や、パラメータの初期値、ネットワークアーキテクチャそのものといった最適化全体を関数とみなした時、これらハイパーパラメータについての勾配も求めたいが、これも誤差逆伝播できず効率的に勾配を計算できない。

 こうした問題を解決するため、昔から存在する進化戦略(ES:evolution strategies)や遺伝的アルゴリズムが再度注目されている。これらのアルゴリズムは誤差逆伝播法を使った手法より勾配推定の効率は悪いが、目的関数の値さえ得られれば最適化できるという大きな特徴がある。ここでは進化戦略について紹介していく。

 進化戦略では、現在のパラメータが確率分布pφ(θ)で表されていると考え、この確率分布自体を更新していくことで学習する。学習ではこの確率分布から複数のパラメータをサンプリングし、それらの目的関数の値を調べ、その情報を元に勾配の推定値を計算する。

 ここで、最適化対象パラメータθが平均φ、分散σ2Iの正規分布pφ(θ)=N(φ,σ2I)に従って生成されているとする。ここで、σは固定のパラメータ、Iは単位行列である。このとき、この確率分布に従ってパラメータをサンプリングした時の目的関数F(θ)の期待値は、Eθ~pφF(θ)である。

 この目的関数のφについての勾配を求めてみよう。φは期待値をとっている確率分布のパラメータであり、勾配を計算してしまうと、この確率分布からサンプリングをしてモンテカルロ推定ができなくなってしまう。そこで、REINFORCE(本誌2016年10月号を参照1)を使って、勾配計算時にもpφ(θ)が残るようにする。

Eθ~pφF(θ)=Eθ~pφF(θ)∇φlogpφ(θ)} (1)

ここで、式中の勾配計算の部分に注目すると、

となる。これを元の式(1)に代入すると、

となる、ここで、ϵ=θφ/σと変数変換をした。つまり、ESの最終的な式では現在のパラメータφに対し、摂動ϵσを起こした上で目的関数の値を調べ、その結果に従って重み付けをした上でϵ方向に動くという更新則のようにみなせる。

 ESはその後CMA(covariance matrix adaptation)-ESなどさまざまな改善版が提唱されている。CMA-ESは連続行動空間の強化学習で方策学習と比較し、同等の性能が達成できると報告されている2)

 しかし、ESはミニバッチ学習による並列化と相性が悪いことが報告されている。通常ミニバッチ学習では、複数の学習データに対して同じパラメータのモデルを使って勾配推定することで勾配推定の分散を減らしている。それに対し、ESをミニバッチ学習にそのまま適用すると、各学習データ(グループ)毎に異なるパラメータのモデルを使って勾配推定する必要があり、並列計算できない。そのため、例えばGPUなど並列計算を使って高速化することができない。

 最近発表されたFlipOut3)は、この問題を解決しミニバッチ学習時に各サンプルが摂動によって異なるパラメータを持った場合でも勾配計算を効率的に実現する手法である。

 ここからは、参考文献3)に従ってパラメータを行列Wとし、目的関数はWTxを含むような関数とする。ニューラルネットワークを含む多くのモデルがこのような関数形をとる。また、摂動分布Wpw)からのサンプリングが平均W̅と、平均に対する摂動ΔWの2つから構成され、W=W̅+ΔWと表されるとする。

 ここで摂動分布に対し仮定を2つ置く。1つ目は各成分毎に摂動は独立である、2つ目は摂動は原点について対称であるとする。例えば、摂動分布がガウシアンであったり、である場合はこの仮定を満たす。次に、Eを各成分が{+1,−1}から一様にサンプリングされたような行列とする。摂動分布をpφとし上記の仮定を満たすとする。このとき、の分布と、(ただし◦は要素毎の積)の分布は一致する。また、ΔWを使って求めた勾配はを使って求めた勾配と一致する。

 この事実を利用し、とする。ただし、rnsnはそれぞれ各成分が一様に+1と−1からサンプリングされたようなベクトルであり、はrankが1の行列である。この上の事実よりΔWnの分布はWと一致する。各ΔWnはお互い独立ではないが、によって各成分の符号がランダムにシャッフルされており、お互いの相関が小さくなる。サンプリングをする場合には、サンプルが独立でなくてもサンプル間の相関が小さい場合に推定の分散を減らせることが分かっている。

 この時、n番目のサンプルに対するパラメータとの内積は

この計算は各サンプル毎に独立に行うことができる。各行がrnからなる行列Rsnからなる行列Sを用いて上記の計算は、と行列積のみで記述できる。行列積は並列化可能であり、特にGPUなど近年のハードウェアが高速に処理することができる。また、この式はRSに対し独立なので、上記の計算に基づき誤差逆伝播することができる。

本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です

 このFlipOutを進化戦略に適用した結果、並列に学習できGPUによる高速な並列計算を実現し、CPUによる学習より数倍から数十倍の高速化を達成している。FlipOut自身は進化戦略以外にも適用でき、ベイズニューラルネットワークの変分法による最適化、DropConnect正則化などでも高速化、または分散が減ることによる性能向上を達成できている。

 コンピュータは本質的に並列計算が得意であり逐次的な更新を必要とする現在の学習手法とは異なる学習手法が今後生まれてくると考えられる。

1)岡野原、「逆誤差伝播法による期待値最大化」、『日経Robotics』、2016年10月号、pp.29-31.
2)T. Salimans et al., “Evolution Strategies as a Scalable Alternative to Reinforcement Learning,” https://arxiv.org/abs/1703.03864
3)Y. Wen and et al.,“Flipout: Efficient Pseudo-Independent Weight Perturbations on Mini-Batches,” https://arxiv.org/abs/1803.04386 (ICLR 2018 to appear)
岡野原 大輔(おかのはら・だいすけ)
Preferred Networks 取締役副社長
岡野原 大輔(おかのはら・だいすけ) 2006年にPreferred Infrastructureを共同創業。2010年、東京大学大学院博士課程修了。博士(情報理工学)。未踏ソフト創造事業スーパークリエータ認定。東京大学総長賞。
出典:日経Robotics、2018年5月号 pp.34-35
記事は執筆時の情報に基づいており、現在では異なる場合があります。