5.5. ディープラーニングにおける汎化¶
3 章 と 4 章 では、 線形モデルを訓練データに当てはめることで 回帰問題と分類問題に取り組んだ。 どちらの場合も、観測された訓練ラベルの尤度を最大化する パラメータを見つけるための実用的なアルゴリズムを示した。 そして各章の終わり近くで、 訓練データへの当てはめは あくまで中間目標にすぎないことを思い出した。 私たちの本当の目的は一貫して、 同じ背後の母集団から引き出された新しいデータ例に対しても 正確な予測を行えるような 一般的なパターン を見つけることであった。 機械学習研究者は最適化アルゴリズムの 消費者 である。 時には、新しい最適化アルゴリズムを開発しなければならないことさえある。 しかし結局のところ、最適化は目的を達成するための手段にすぎない。 本質的には、機械学習は統計学の一分野であり、 訓練損失を最適化したいのは、 何らかの統計的原理(既知であれ未知であれ)によって 得られたモデルが訓練集合を超えて汎化する場合に限られる。
明るい側面としては、確率的勾配降下法で訓練された 深層ニューラルネットワークは、 コンピュータビジョン、自然言語処理、時系列データ、 推薦システム、電子健康記録、タンパク質折りたたみ、 ビデオゲームやボードゲームにおける価値関数近似、 そしてその他数多くの領域にまたがる 無数の予測問題で驚くほどよく汎化することが分かっている。 一方で、最適化の物語 (なぜ訓練データに当てはめられるのか) あるいは汎化の物語 (なぜ得られたモデルが未見のデータ例に汎化するのか) のどちらかについて 分かりやすい説明を求めているなら、 一杯飲みたくなるかもしれない。 線形モデルの最適化手順と 解の統計的性質については、 包括的な理論体系によって十分よく記述されているが、 深層学習についての理解は、 両面ともいまだに無法地帯の様相を呈している。
深層学習の理論と実践の両方は急速に進化しており、 理論家たちは何が起きているのかを説明するために 新しい戦略を採用し続けている。 その一方で実践者たちも、 実践的なヒューリスティクス手法を蓄積し、 どの技法をどの状況で適用すべきかを判断するための 直感や経験則の知識体系を、 猛烈な速度で革新し続けている。
現時点での要約は、深層学習の理論は 有望な攻め口と散発的に興味深い結果を生み出してはいるものの、 (i) なぜニューラルネットワークを最適化できるのか、 および (ii) 勾配降下法で学習されたモデルが 高次元の課題でさえも なぜこれほどよく汎化するのか、 という両方について包括的に説明するには まだほど遠いように見える、ということである。 しかし実践上は、(i) はめったに問題になりない (訓練データすべてに当てはまるパラメータは常に見つけられる) ので、汎化を理解することのほうがはるかに大きな問題である。 一方で、一貫した科学理論の安心感がなくても、 実践者たちは実際にうまく汎化するモデルを作るのに役立つ 多くの技法を開発してきた。 深層学習における汎化という広大な話題を 簡潔な要約だけで十分に語り尽くすことはできないし、 研究全体の状況もまだ決着にはほど遠いであるが、 本節では研究と実践の現状を 広く概観したいと思いる。
5.5.1. 過学習と正則化の再考¶
Wolpert and Macready (1995) の「ノーフリーランチ」定理によれば、 どの学習アルゴリズムも、ある分布のデータではよりよく汎化し、 別の分布のデータではより悪く汎化する。 したがって、有限の訓練集合が与えられたとき、 モデルはある種の仮定に依存する。 人間並みの性能を達成するには、 人間が世界をどう考えるかを反映した 帰納バイアス を特定することが有用かもしれない。 このような帰納バイアスは、 ある性質をもつ解に対する選好を与える。 たとえば、深い MLP は、 より単純な関数の合成によって複雑な関数を構成する方向への 帰納バイアスを持っている。
機械学習モデルが帰納バイアスをエンコードしている以上、 それらを訓練する私たちのアプローチは通常、 (i) 訓練データに当てはめること、 および (ii) ホールドアウトデータ上でモデルを評価することによって 汎化誤差(背後の母集団における真の誤差)を推定すること、 という2段階から成る。 訓練データへの当てはまりと テストデータへの当てはまりの差は 汎化ギャップ と呼ばれ、これが大きいとき、 モデルは訓練データに 過学習 していると言いる。 過学習が極端な場合には、 テスト誤差が依然として大きいにもかかわらず、 訓練データに完全に一致させてしまうことがある。 古典的な見方では、 これはモデルが複雑すぎることを意味し、 特徴量の数、学習される非ゼロパラメータの数、 あるいはパラメータの大きさを何らかの尺度で 縮小する必要があると解釈される。 モデルの複雑さと損失の関係を示した図 (図 3.6.1) を 3.6 章 で思い出して。
しかし深層学習は、この図式を直感に反する形で複雑にする。 まず、分類問題では、 私たちのモデルは通常、数百万個からなるデータセットであっても すべての訓練データ例を完全に当てはめられるほど表現力がある (Zhang et al., 2021)。 古典的な図式では、この状況は モデル複雑度軸のはるか右端に位置し、 汎化誤差の改善はすべて正則化によって もたらされるはずだと考えるかもしれない。 つまり、モデルクラスの複雑さを下げるか、 あるいはペナルティを課して、 パラメータが取りうる値の集合を厳しく制約するかである。 しかし、そこから話が奇妙になり始める。
不思議なことに、多くの深層学習タスク (たとえば画像認識やテキスト分類)では、 私たちは通常、複数のモデルアーキテクチャの中から選んでおり、 それらはいずれも訓練損失を任意に小さく (そして訓練誤差をゼロに)できる。 検討中のすべてのモデルが訓練誤差ゼロを達成する以上、 さらなる改善の唯一の道は過学習を減らすこと である。 さらに奇妙なことに、 訓練データに完全に当てはめたにもかかわらず、 モデルを さらに表現力豊かに する たとえば層やノードを追加する、あるいは より多くのエポックで訓練することで、 実際には 汎化誤差をさらに減らせる ことがよくある。 さらに奇妙なのは、 モデルの 複雑さ(たとえばネットワークの深さや幅で捉えられるもの)と 汎化ギャップの関係が単調でないことがあり、 複雑さが最初は悪化を招くものの、 その後いわゆる「ダブルディセント」パターンで 改善に転じることがある (Nakkiran et al., 2021)。 このように深層学習の実践者は、 一部はモデルを何らかの形で制約しているように見え、 別の一部は逆にモデルをより表現力豊かにしているように見える さまざまな技法を使い分けており、 それらはすべて、ある意味では過学習を抑えるために適用されている。
さらに事態を複雑にしているのは、 古典的学習理論が与える保証は 古典的モデルに対してでさえ保守的でありうる一方で、 そもそもなぜ深層ニューラルネットワークが汎化するのかを 説明する力はないように見えることである。 深層ニューラルネットワークは、 大規模データセットであっても任意のラベルを 当てはめることができ、 \(\ell_2\) 正則化のような馴染み深い手法を使っていても、 VC 次元や仮説クラスの Rademacher 複雑度に基づく 従来の複雑度ベースの汎化境界は、 ニューラルネットワークがなぜ汎化するのかを説明できない。
5.5.2. 非パラメトリック手法からの着想¶
初めて深層学習に触れると、 それらをパラメトリックモデルだと考えたくなる。 実際、モデルには何百万ものパラメータがある。 モデルを更新するとき、私たちはそのパラメータを更新する。 モデルを保存するとき、私たちはそのパラメータをディスクに書き出する。 しかし、数学と計算機科学には、 直感に反する視点の転換や、 一見異なる問題の間にある驚くべき同型性に満ちている。 ニューラルネットワークは確かにパラメータを 持って いるが、 ある意味では非パラメトリックモデルのように振る舞うと考えるほうが より有益なことがある。 では、何がモデルを非パラメトリックにするのだろうか。 この名称は多様なアプローチを含むが、 共通するテーマの一つは、 非パラメトリック手法は利用可能なデータ量が増えるにつれて 複雑さのレベルも増していく傾向があることである。
おそらく最も単純な非パラメトリックモデルの例は、 \(k\) 近傍法です(より多くの非パラメトリックモデルについては、 たとえば 11.2 章 で後ほど扱いる)。 ここでは、訓練時に学習器は単にデータセットを記憶する。 そして予測時に、新しい点 \(\mathbf{x}\) に直面すると、 学習器は \(k\) 個の最近傍 (ある距離 \(d(\mathbf{x}, \mathbf{x}_i')\) を最小化する \(k\) 個の点 \(\mathbf{x}_i'\))を探する。 \(k=1\) のとき、このアルゴリズムは \(1\)-最近傍法と呼ばれ、 このアルゴリズムは常に訓練誤差ゼロを達成する。 しかし、それはこのアルゴリズムが汎化しないことを意味しない。 実際、いくつかの穏やかな条件の下では、 1-最近傍アルゴリズムは整合的である (最終的に最適予測器へ収束する)ことが分かっている。
\(1\)-最近傍法では、何らかの距離関数 \(d\) を指定する必要があること、 あるいは同値に、データを特徴量化するための ベクトル値基底関数 \(\phi(\mathbf{x})\) を指定する必要があることに注意されたい。 どの距離尺度を選んでも、 訓練誤差ゼロを達成し、やがて最適予測器に到達するが、 距離尺度 \(d\) が異なれば 異なる帰納バイアスをエンコードし、 有限のデータ量では異なる予測器を与える。 距離尺度 \(d\) の選択の違いは、 背後にあるパターンについての異なる仮定を表しており、 異なる予測器の性能は、 それらの仮定が観測データとどれだけ整合的かに依存する。
ある意味で、ニューラルネットワークは過剰パラメータ化されており、 訓練データに当てはめるのに必要な数よりも はるかに多くのパラメータを持っているため、 訓練データを 補間 する (完全に当てはめる)傾向があり、 そのためいくつかの点では非パラメトリックモデルに より近い振る舞いをする。 より最近の理論研究は、 大規模ニューラルネットワークと 非パラメトリック手法、特にカーネル法との間に 深い関係があることを明らかにした。 とりわけ Jacot et al. (2018) は、 ランダム初期化された重みを持つ多層パーセプトロンが 無限に幅広くなる極限で、 特定のカーネル関数 (本質的には距離関数)の選び方に対して (非パラメトリックな)カーネル法と等価になることを示した。 彼らはこのカーネルをニューラル接線カーネルと呼んでいる。 現在のニューラル接線カーネルモデルは 現代の深層ネットワークの振る舞いを 完全には説明できないかもしれないが、 解析ツールとしての成功は、 過剰パラメータ化された深層ネットワークの振る舞いを理解するうえで 非パラメトリックモデリングが有用であることを強く示している。
5.5.3. 早期停止¶
深層ニューラルネットワークは、 ラベルが誤って付与された場合やランダムに付与された場合でさえ 任意のラベルを当てはめることができるが (Zhang et al., 2021)、 この能力は訓練の多くの反復を経て初めて現れる。 ラベルノイズの設定における新しい研究 (Rolnick et al., 2017) は、 ニューラルネットワークはまず正しくラベル付けされたデータを当てはめ、 その後になって初めて誤ラベルのデータを補間する傾向があることを明らかにした。 さらに、この現象が汎化に関する保証へ 直接つながることも示されている。 すなわち、モデルが正しくラベル付けされたデータには当てはめているが、 訓練集合に含まれるランダムにラベル付けされたデータ例にはまだ当てはめていないなら、 その時点で実際には汎化しているのである (Garg et al., 2021)。
これらの知見は、深層ニューラルネットワークの正則化における 古典的な手法である 早期停止 を動機づける。 ここでは、重みの値を直接制約する代わりに、 訓練エポック数を制約する。 停止基準を決める最も一般的な方法は、 訓練中ずっと検証誤差を監視し (通常は各エポックの後に1回確認し)、 検証誤差がある小さな量 \(\epsilon\) 以上 減少しなくなってから 一定数のエポックが経過した時点で訓練を打ち切ることである。 これは 忍耐基準 と呼ばれることがある。 ノイズのあるラベル設定で よりよい汎化につながる可能性があることに加えて、 早期停止のもう一つの利点は時間の節約である。 いったん忍耐基準を満たせば、訓練を終了できる。 8個以上の GPU 上で同時に 数日間の訓練を要するような大規模モデルでは、 うまく調整された早期停止によって 研究者の時間を何日も節約でき、 雇用主にとっては何千ドルものコスト削減になる。
特に、ラベルノイズがなく、データセットが 実現可能 である (クラスが本当に分離可能である、たとえば猫と犬を区別する場合)とき、 早期停止は汎化の大きな改善にはつながりにくい傾向がある。 一方で、ラベルノイズがある場合や、 ラベルに本質的な変動がある場合 (たとえば患者の死亡率予測)には、 早期停止が不可欠である。 ノイズのあるデータを補間するまでモデルを訓練し続けるのは、 通常は悪い考えである。
5.5.4. 深層ネットワークのための古典的正則化手法¶
3 章 では、 モデルの複雑さを制約するための いくつかの古典的な正則化技法を説明した。 特に 3.7 章 では、 重み減衰と呼ばれる手法を導入した。 これは、大きな重みの値にペナルティを課すために 損失関数に正則化項を加えるものである。 どの重みノルムにペナルティを課すかによって、 この技法はリッジ正則化(\(\ell_2\) ペナルティの場合)または ラッソ正則化(\(\ell_1\) ペナルティの場合)として知られる。 これらの正則化の古典的な解析では、 モデルが任意のラベルを当てはめるのを防ぐのに十分なほど 重みの取りうる値を制限すると考えられている。
深層学習の実装では、 重み減衰はいまなお人気のある手法である。 しかし研究者たちは、 典型的な強さの \(\ell_2\) 正則化では ネットワークがデータを補間するのを防ぐには不十分である ことを指摘しており (Zhang et al., 2021)、 したがって正則化として解釈した場合の利点は、 早期停止基準と組み合わせたときにのみ 意味を持つのかもしれない。 早期停止がなければ、 深層学習における層数やノード数、 あるいは 1-最近傍法における距離尺度と同様に、 これらの手法は ニューラルネットワークの能力を実質的に制約するからではなく、 むしろデータセットに見られるパターンと より相性のよい帰納バイアスを 何らかの形でエンコードしているからこそ、 よりよい汎化をもたらすのかもしれない。 したがって、古典的な正則化手法は、 その有効性の理論的根拠が 大きく異なっている可能性があっても、 深層学習の実装では依然として広く使われている。
特筆すべきことに、深層学習研究者たちは、 モデル入力にノイズを加えるといった 古典的な正則化の文脈で最初に普及した技法も 発展させてきた。 次節では、有名な dropout 技法 (Srivastava et al. (2014) によって発明された) を紹介する。 これは深層学習の定番となっているが、 その有効性の理論的基盤は 同様に謎のままである。
5.5.5. まとめ¶
古典的な線形モデルとは異なり、 深層ネットワークは通常、データ例の数よりも少ないパラメータではなく、 過剰パラメータ化されており、 ほとんどのタスクで訓練集合を完全に当てはめることができる。 この 補間領域 は、 多くの強く持たれてきた直感に挑戦する。 機能的には、ニューラルネットワークはパラメトリックモデルのように見える。 しかし、非パラメトリックモデルとして考えるほうが、 直感のより信頼できる源になることがある。 検討中のすべての深層ネットワークが 訓練ラベルすべてを当てはめられることが多いため、 ほとんどすべての改善は 過学習を抑えること (汎化ギャップ を埋めること)によってもたらされなければなりない。 逆説的であるが、 汎化ギャップを減らす介入は、 あるときにはモデルの複雑さを増しているように見え、 別のときには複雑さを減らしているように見える。 しかし、これらの手法は古典理論が 深層ネットワークの汎化を説明できるほどには 複雑さを十分に下げることはめったになく、 なぜ特定の選択が汎化の改善につながるのか は、 多くの優れた研究者たちの集中的な努力にもかかわらず、 大部分が巨大な未解決問題のままである。
5.5.6. 演習¶
従来の複雑度ベースの尺度は、深層ニューラルネットワークの汎化をどのような意味で説明できないのだろうか。
早期停止 はなぜ正則化手法と見なせるのだろうか。
研究者は通常、停止基準をどのように決めるのだろうか。
早期停止が汎化を大きく改善する場合を分ける重要な要因は何だと考えられますか。
汎化以外に、早期停止のもう一つの利点を述べて。