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

 現在の深層学習のほとんどは、誤差逆伝搬法を利用して学習している。これは、微分可能な計算要素を組み合わせて入力から出力を求める計算グラフ(順計算)を構築し、その計算グラフ上で誤差(目的関数に対する各状態についての勾配)を順計算とは逆方向に伝播させることで、学習に必要な目的関数に対する各パラメータについての勾配を正確にかつ効率的に推定できる方法である。

 誤差逆伝搬法は、当初想定されていたよりも非常に多くの問題を解けることが示されており、学習のエンジンとして大きく発展している。

誤差逆伝播法が抱える4つの問題

 一方で、誤差逆伝播法はいくつかの問題があることが分かっている。

 1つ目は、微分可能でない、または微分がほとんどの場所で0になる計算要素を含む場合、誤差は不定、または発散または減衰するため、誤差逆伝播法が使えない。

 例えば、活性化関数に入力が負であれば0、それ以外であれば1を返すような閾値関数を利用した場合、微分値は0以外の場所では0、0では不定となり、誤差逆伝搬法が使えない。また、画像認識や自然言語処理で使われるソフトアテンションは、必要ではない部分の情報も含んでしまうが、アテンションを掛けた場所だけの情報を得るハードアテンションは、先の閾値関数と同じように誤差逆伝搬法が使えない。

 2つ目の問題は、計算グラフが確率層を含む場合である。この場合、誤差逆伝搬法は直接使えないため、変数変換トリックや尤度比法を使って勾配の推定値を求める問題に帰着させ学習する。しかし、複数の確率層を含む場合は勾配の推定値の分散が大きくなってしまい、現実的なサンプル数で学習できないという問題がある。

 3つ目の問題は、誤差の逆伝搬時に順計算時に使った重み行列の転置行列を使う部分である。最近ではハードウエアを使って行列計算を効率的に実現する例がいくつか出ている。例えば、アナログ回路を使って効率的に行列演算を実現できることが分かっている。しかしこの場合、重み行列の転置を実現することが難しく、誤差を伝搬させることができない。

 4つ目の問題は、ニューラルネットの層の数が数十層から数百層と深くなるにつれ、各層の計算は他の層の計算が終わるまで待たなければならない点である。計算機におけるパイプライン処理と同様に、前の誤差逆伝搬法のステップが終わる前に次の誤差逆伝搬法を走らせた場合、次のステップの計算では更新されていない古い(stale)パラメータを基に勾配を求めることになる。その結果、得られる勾配は(更新されたパラメータを使って求められた勾配と比べて)不正確な勾配となり、収束速度が遅くなったり、良い解が得られなかったりといった問題がある。

 こうした問題を解決するために、誤差逆伝搬法ではない学習手法が提案されている。以降で、その3つの手法を紹介しよう。

固定のランダム行列を使う

 Feedback Alignment1-2)は誤差を逆伝搬する際に重み行列の転置行列を使うのではなく、固定のランダム行列を使う。この場合、最初に求められる更新方向は、勾配のような目標値を最も急に下げる方向ではない。しかし、不思議なことに、この学習を進めていくと、真の勾配と更新方向が一致し始め、あたかもこのランダム行列が転置行列であるかのように表現が変わっていく。つまり学習する方法を学習する(Learning to learn)。これは前述した誤差逆伝搬法の問題の3つ目を解決する。専用ハードウエアの学習則や脳内の学習則の候補として注目されている。

 さらに、真の誤差を入力に近い層に直接渡してから、それを順計算と同じように伝搬させても学習できることが分かっている2)。この場合、途中で微分不可能な計算要素があったとしても、それより前に誤差を流して学習することができ、1つ目の問題を解決できる。

各層の誤差を推定する専用モデルを用意

 Synthetic Gradient3は得られるであろう勾配を各層毎に推定するモデルを学習する手法である。各層毎に順方向の計算とは別に誤差を推定するモデルを用意し、各層の状態と補足情報(例えばラベル)から、その層に到達するであろう誤差を推定する。いうならば各推定モデルは、「この出力だったらこのように間違えそうだ」ということを推定する。各推定モデルは真の勾配との二乗誤差を最小化するように学習する。

 各モデルにはニューラルネットワークのような強力なモデルではなく、線形モデルなどが適していることが分かっている。なぜそうなのかはまだよく分かっていない。各推定モデルが真の誤差を近似できる能力はないことから、各推定モデルは現時点での目標関数の近傍のみを簡単なモデルで近似しているのではないかと考えられる。

 また、推定モデルの学習時には、真の勾配ではなく1つ上の層の勾配の推定値を目標として学習することもできる。この場合、推定値を基に推定するブートストラップ法であり、強化学習のTD(Temporal Difference)誤差の伝搬のように出力層から順に推定が正しくなっていく。

 ブートストラップ法であるため学習が不安定という問題がある。しかし、誤差逆伝搬法の1つ目から4つ目の問題を全て解決するだけでなく、計算の周期が異なるような学習システム同士を連携させることもできることから、非常に有望な手法である。
誤差ではなく目標を伝搬
 Target Prop4-5)は誤差ではなく目標を伝搬させていく手法である。隣接する2つの層の状態がそれぞれhi、hi+1だとする。この2つの層の間の計算をfとすると、

hi+1=f(hi

という関係にある。上の層で今の状態hi+1よりも目的関数の値を下げられる目標値ĥi+1が分かっているとする。このとき、下の層の目標はĥi+1=f(ĥi)となるようなĥiとなる。そうすれば目的関数の値を下げられるからである。

 この目標値は最初、出力層で決定され、次に1つ下の層、次に2つ下の層と順番に伝搬されていく。このとき、各層で上の層が目標値となるような値を求める必要がある。

 Difference Target Prop5)では、各層毎に自己符号化器を学習し、(非線形関数を含む)順方向の計算hi+1=f(hi)と同時にその逆関数を近似するhi=g(hi+1)を学習する。各層ではこの目標値を出力するようにパラメータを更新すると同時に、gを使って目標値を下の層に伝搬させていく。

 Target Propは、誤差逆伝搬法の問題の1つ目から3つ目を解決している。一方で、常に自己符号化器が作れるのか、またそれが不完全な場合にどのような学習が実現されるのかについてはまだ解明されていない。

誤差逆伝搬法との組み合わせも可能

 今回紹介した手法は、誤差逆伝搬法を組み合わせることも可能である。例えば、Synthetic Gradientを大きなブロック毎に行い、各ブロック内では誤差逆伝搬法を使うことで、並列化と正確な学習の両方を実現するといったことも考えられる。

本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です
1)T. Lillicrap et al.,“Random synaptic feedback weights support error backpropagation for deep learning,”Nature Communication 7, 2016.
2)A. Nokland et al.,“Direct Feedback Alignment Provides Learning in Deep Neural Networks,” https://arxiv.org/abs/1609.01596
3)M. Jaderberg et al.,“Decoupled Neural Interfaces using Synthetic Gradients,” https://arxiv.org/abs/1608.05343
4)Y. Bengio,“How Auto-Encoders Could Provide Credit Assignment in Deep Networks via Target Propagation,”https://arxiv.org/abs/1407.7906
5)D. Lee et al.,“Difference Target Propagation,”https://arxiv.org/abs/1412.7525
岡野原 大輔(おかのはら・だいすけ)
Preferred Networks 取締役副社長
岡野原 大輔2006年にPreferred Infrastructureを共同創業。2010年、東京大学大学院博士課程修了。博士(情報理工学)。未踏ソフト創造事業スーパークリエータ認定。東京大学総長賞。