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

 機械学習の目標は、有限の訓練データからルールや知識を獲得し、(同じ分布からサンプリングされる)訓練データには含まれないが、訓練データと同様の性質をもつ未知のデータに対してもうまく推論できるようなモデルを獲得することである。この能力を汎化能力と呼ぶ。

 一般に学習は訓練データZ={zi}Ni=1が与えられた時、訓練データに対する損失関数l(z,f)の和を最小にするような関数fを求めることで実現する。

 この訓練事例に対する損失の和Lefを訓練誤差(または経験誤差)と呼ぶ。一方、未知のサンプルに対する損失の期待値L(f)を汎化誤差と呼ぶ。

 データがどのような分布から生成されているかは未知のため、汎化誤差も未知である。訓練データとは別に用意した正解の分かっている開発用データセットを使って汎化誤差を推定することは行われる。関数fは訓練誤差を最小にするように最適化されているため、一般に訓練誤差は汎化誤差よりも小さくなる。

訓練誤差が小さく汎化誤差が大きい場合が過学習

 一般に関数の表現力を大きくすると訓練誤差を小さくできるが、汎化誤差が大きくなる。例えば、関数のパラメータ数を増やす、あるいは内部で扱う関数を線形ではなく非線形にすることによって関数の表現力を上げることができる。このような、モデルの表現力が高く訓練誤差は小さいが、汎化誤差が大きくなっている状態を過学習(オーバーフィット)と呼ぶ。これはモデルの表現力が強すぎるため、訓練データにのみたまたま成り立つような間違った仮説を見つけてしまったり、訓練データを丸暗記して未知のデータの分類に役に立つような普遍的なパターンやルールを獲得できなかったりしたため起こる。逆にモデルの表現力が足りない場合は、訓練誤差をそもそも小さくできない。これを未学習(アンダーフィット)と呼ぶ。

訓練誤差と汎化誤差はトレードオフ

 訓練誤差と汎化誤差はトレードオフの関係にあり、学習の際には、訓練誤差と汎化誤差の和が最小になるような適度な表現力を持つ関数を探す必要がある。汎化誤差を減らす場合にはモデルの表現力を落としたり、モデルの表現力が強いとペナルティを与えるような正則化を学習時に適用したりして学習する必要がある。

 例えば、パラメータの大きさ(ノルム)に制限やペナルティを与えたり、入力や途中の計算結果にノイズを加えて学習したりなどである。

 現在のDNN(ディープニューラルネットワーク)は多くのパラメータを持ち、内部の各構成要素が非線形関数を表現できるため、どんなに複雑なデータでもフィッティングすることができる非常に表現力の高いモデルである。

DNNの表現力を調べるために実験

 Zhang1)らはDNNの表現力を調べるために次のような実験を行った。訓練データのラベルを全部シャッフルして並び替え、データとラベルの間に意味のある関係がないようにした上で、データからラベルを予測できるようにDNNを学習させた。

 このような場合でもDNNは、全てのでたらめな訓練事例を正しく分類するように学習できることが分かった。つまり、DNNは汎化に役立つようなパターンを抽出せず、訓練事例を1つひとつ丸暗記し、この訓練事例が来たらこのラベルを返すという関数を盲目的に覚えたことを意味する。

 その後の実験では、データとラベルの間に意味がある場合には、DNNは丸暗記ではなくパターンを学習していることが分かった2)。DNNは可能な場合は汎化するように学習し、汎化できない場合は丸暗記するような仕組みが備わっていたのである。

なぜ表現力が高いのに汎化誤差が低いのか

 DNNは表現力が高いため、容易に過学習するはずである。しかし、DNNは汎化誤差が低く、汎化能力を持っていることが分かっている。こうした結果は学習時に正則化手法を適用しなくてもみられる現象であり、これまでの機械学習の常識とは一致しない。なぜDNNはこれほど表現力が高いのに、汎化できるのだろうか。

 近年、DNNの汎化能力の獲得にはパラメータの最適化で使っているSGD(確率的勾配降下法)が大きな役割を果たしていることが分かってきた。単なる目的関数の最小値を見つける最適化手法が実は正則化の役割を果たし、訓練誤差を下げるだけでなく汎化誤差を下げることにも役立っていたのである。

 SGDは今のパラメータを、その勾配の(逆)方向に少しだけ更新することで最適化を行う。さらに、訓練データ全体から勾配を求めず、訓練データからサンプリングした上で勾配の推定量を求めるため、勾配にはノイズが含まれている。

SGDは暗黙的な正則化効果がある

 まず分かったこととしては、SGDによって見つかる解はそのパラメータのノルムが最小となるような解であること、である1-3)。ノルムが小さいというのはモデルの表現力を抑える強い正則化であり、また分類面から各訓練事例までの距離を最大化するマージン最大化とつながりがある。マージンと汎化誤差には直接関係があることが分かっている。

 次に、SGDにより見つかる解はベイズ推定に対応することが分かっている4)。分類をする際に、訓練誤差を小さくするようなパラメータを1つだけ選択して分類するのではなく、訓練誤差を小さくするようなパラメータを無数に選び、それらをその訓練誤差の小ささに応じて重みをつけた上で多数決をして最終的な判断をしているとみなせる。このように複数のモデルで多数決を取ると、たまたま1つのモデルが見つけた誤った仮説を引く可能性は低くなり、過学習を大きく抑えることができる。

SGDはFlat Minimaを見つけることができる

 SGDは最適化の際、サンプリングの選び方によって勾配にノイズが乗るが、これが局所最適解からの脱出に役立っていただけではなく、その周辺も値が小さいようなFlat Minimaを見つけるのに貢献していることが分かった。Flat MinimaはMDL(最小記述長原理)とも関係し、より単純な表現力の低いモデルを見つけることに相当する5)

 また、SGDでの学習を加速させるようなADAMやRMS Propといった目的関数の曲率を利用した手法は汎化性能を大きく落とすということも分かってきた6)。こうした手法を使うと特定の訓練データに特化し、過学習してしまうためである。

 汎化能力についてはまだ分かっていないことが多くあり理論と実践の間に大きなギャップが存在する。今後、汎化能力の理論解明が必要とされている。

1)C. Zhang et al.,“Understanding deep learning requires rethinking generalization,” https://arxiv.org/abs/1611.03530
2)D. Arpit et al.,“A Closer Look at Memorization in Deep Networks,” https://arxiv.org/abs/1706.05394
3)S. Gunasekar et al.,“Implicit Regularization in Matrix Factorization,” https://arxiv.org/abs/1705.09280
4)S. Mandt, “Stochastic Gradient Descent as Approximate Bayesian Inference,” https://arxiv.org/abs/1704.04289
5)S. Hochreiter et al., “Flat Minima,” Neural Computation vol.9, no.1, pp.1-42, 1997.
6)A. Wilson et al.,“The Marginal Value of Adaptive Gradient Methods in Machine Learning,”https://arxiv.org/abs/1705.08292
岡野原 大輔(おかのはら・だいすけ)
2006年にPreferred Infrastructureを共同創業。2010年、東京大学大学院博士課程修了。博士(情報理工学)。未踏ソフト創造事業スーパークリエータ認定。東京大学総長賞。