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

 メモ化によって学習データに対してはうまく処理できるようになるが、未知データに対してはうまくいくかの保証はない。特に実世界で学習したい問題の多くは入力が高次元であるため、学習時にありえるデータを全て列挙できず、メモ化では網羅できない。機械学習の主要なテーマは、有限の学習データから学習し、未知のデータをうまく扱えるようなルールや知識を獲得することだ。このような能力を汎化能力と呼ぶ。

 一般に学習モデルの表現力が高ければ高いほど、学習データをうまく処理できるようになる。例えば、入力ベクトルから連続値を推定する回帰の問題において、1次式を使うよりは2次式、3次式を使ったほうが、より学習データにフィットする曲線を見つけることができる。モデルというのは粘土のようなものであり、表現力というのは、その“柔らかさ”のようなものだと思ってもらえればよい。粘土の形によって、学習データをうまく扱えるかが決まる。固い粘土(表現力が低いモデル)は力を入れても思った形にならず、柔らかい粘土(表現力が高い)であればぐにゃぐにゃで思い通りに形を変えることができる。それでは、モデルの表現力は高ければ高いほどいいかというと、そうでもない。モデルの表現力が高すぎると、学習データはうまく行っても未知データをうまく分類できなくなる可能性が高くなる。これを過学習や過適合と呼ぶ。

 学習が行っていることはモデルの候補の中からモデルを1つ選ぶということであり、表現力が高いということはモデルの候補数が多いということである。例えば、学習データを一番うまく分類できるモデルを100の候補から探す場合と100万の候補から探す場合、後者の方がモデルの種類が多いため、学習データをより正しく分類できるものが見つかる可能性が高い。一方で、見つかったモデルは偶然、学習データを分類できているだけで、そのデータの特性を捉えていない可能性も高い。表現力が高いモデルの中に真のモデルも含まれている可能性もあるが、それを見つけるのは砂浜の中から金の砂粒を見つけるように難しい。

 理解を深めるために別の見方をしよう。学習アルゴリズムは学習データのサンプリングのランダム性によって、真のパラメータとは外れたパラメータを推定する。表現力が低いモデルは、真のパラメータとは外れたところを推定する可能性が高い。さらにその平均をとっても真のパラメータと外れたところを推定するが、推定のバラつきは小さい(high-bias、low-variance)。表現力が高いモデルは、真の分布に近いところを推定するが(low-bias)、推定のバラつきは大きい(high-variance)。モデルのずれというのは、bias+√varianceぐらいで評価できるので、このbiasとvarianceのトレードオフをみて最適なモデルの表現力を選ぶ必要がある。

 正則化はモデルの表現力を落とす方法である。表現力を落としても学習データを同じくらいうまく処理できれば未知データをうまく処理できる可能性が高くなる。

 近年成功しているニューラルネットワークはパラメータ数が非常に多く、変数の高次の関係も扱えるのでモデルの表現力が非常に高い。どんなに難しい学習問題でも、学習データを全て正しく分類できるようなパラメータは簡単に見つけてしまう。そのため、正則化がとても重要となる。以下にニューラルネットに対する正則化の代表的な手法を紹介しよう。

(1)表現力にペナルティを与える

 モデルの表現力を数値化し、それをコスト関数に加える方法は最もよく使われる手法である。例えば、モデルのパラメータがベクトルvで表されている時、そのノルム‖v‖2(L2ノルム)、‖v‖1(L1ノルム)、‖v‖(L∞ノルム)をコストとして使う。L2ノルムは大きい値に非常に大きなペナルティが、小さい値には非常に小さいペナルティが加えられ、推定結果は多くが小さい値となる。L1ノルムは疎な推定結果、つまり多くの値が0であるような推定結果になりやすくなる。L2ノルム、L1ノルムはそれぞれ、パラメータの事前確率として正規分布、ラプラス分布を想定している場合の事後確率最大化推定に対応する。パラメータがベクトルではなく行列の場合は、フロベニウスノルム(全成分値の二乗和)や行列の特異値のノルムをコストとする場合が多い。

(2)アーリーストッピング

 アーリーストッピングは古典的だが強力な手法である。学習データのほかに評価データを用意し、学習を進めている過程での評価データ上の性能をモニタリングする。そして評価データ上の性能が最も良い時のパラメータを保存しておく。最適化を途中で止めることはL2ノルムによる正則化と同じ効果があることが知られている。そして、アーリーストッピングの場合、L2ノルムの様々なハイパーパラメータの結果を効率的に調べることができる。

(3)アンサンブル/ドロップアウト

 複数のモデルを組み合わせて多数決を取るアンサンブルも正則化の重要なテクニックである。なぜ複数のモデルを使うと正則化の効果があるのかを簡単に説明しよう。k個の回帰モデルがあり、i番目のモデルの学習事例に対する誤りはei、その分散はE[ei2]=v、その共分散はE[eiej]=cであるとする。この場合、k個のモデルの推定結果の平均を推定として使った場合の誤りは1/k∑ieiである。一方で、その二乗誤差はv/k+(k−1)c/kである。もし各モデルが完全に相関している場合(c=1)は期待二乗誤差はvであり一つのモデルを使った場合と同じである。一方で全てのモデルが全く相関していない場合(c=0)、二乗誤差の期待値はv/kとなる。つまり、モデルの数を増やせるほど、期待二乗誤差は線形に減らせる。「三人よれば文殊の知恵」ということわざがあるが正確には、「“考え方が違う”三人よれば文殊の知恵」ということだろう。潜在変数モデル、ベイズ推定もアンサンブルの一種としてみることができる。それぞれパラメータの分布に従って重み付けされた無数のモデルでアンサンブルをとっているとみることができる。

 近年では、ドロップアウトが広く使われるようになった。学習時には各ニューロンの出力を確率ρでランダムに0とし、テスト時にはニューロンの出力をρ倍したのを使う。学習時は毎回、違うニューラルネットワークを使っているとみなせ、テストはそのアンサンブルとなる。

(4)パラメータ数を減らす

 パラメータ数を少なくし表現力を落とす手法も効果的である。例えば、ユニット数がNからMの総結合層のパラメータ数はNMであるが、これらの層の間にユニット数がLの層を挟めば全体のパラメータ数はNL+LM=(N+M)Lとなり、L<<N,Mのときパラメータ数を減らすことができる。これを通常の機械学習では低ランク近似とよび、層としてボトルネックレイヤーと呼ぶ。また、モデル中のパラメータを共有することもパラメータ数を減らすのと同じ効果がある。例えば、CNNは場所に依存せず同じパラメータを共有することでパラメータ数を劇的に減らし、RNNも時間に依存せず同じパラメータを使うことでパラメータを減らしている。パラメータの表現に使うビット数を減らすことも正則化の効果がある。

(5)入力にノイズを加えても出力が似た値をとるように制約

 入力に何らかのノイズを加えた上で出力の差のL2ノルムを正則化項として使う手法が近年注目されている。入力がガウシアンである場合、このL2ノルムは関数のヤコビアン行列のフロベニウスノルムの近似であることが分かっている。また、vATと呼ばれる手法では出力が確率分布である時、その確率分布間のKLダイバージェンス距離の最小化を行う。これは確率分布から定義されるフィッシャー行列の最大固有値を小さくしている正則化とみなせる。フロベニウスノルムは固有値の二乗和であることから、ガウシアンノイズを加えた場合は全ての固有値を小さくし、vATは最大固有値のみを小さくしているとみなせる。この両者のどちらが良いかは問題の性質に依存する。

 正則化は学習の要で、今の人工知能と人間の学習能力を比較すると、まだ分かっていない正則化手法が多くあると思われる。

岡野原 大輔(おかのはら・だいすけ)
Preferred Networks 取締役副社長
岡野原 大輔2006年にPreferred Infrastructureを共同創業。2010年、東京大学大学院博士課程修了。博士(情報理工学)。未踏ソフト創造事業スーパークリエータ認定。東京大学総長賞。