JA EN
体系確率・統計
·★ 会員·論文·16分で読めます

統計学習理論 — なぜ学習は汎化するのか

有限個の例しか見ていないのに、なぜ未知のデータに答えられるのか。Hoeffdingの不等式からVC次元・PAC学習まで汎化の保証を1から組み立て、それが深層学習の前で破れた経緯と、評価設計での使いどころまでを解説する。

対象textタスクmath

Understanding Deep Learning Requires Rethinking Generalization


過去問が解けても、本番で受かるとは限らない

資格試験で過去問を10年分やり、全問正解できるようになったとします。本番でも受かるでしょうか。答えは「やり方による」です。解き方を身につけたのなら受かる。答えの記号を丸暗記しただけなら、本番では何も残っていません。

機械学習でも同じです。全データを表に持っておいて「見たことがある入力にはその答えを返す」規則を作れば訓練誤差はゼロですが、誰もそれを学習とは呼びません。知りたいのはまだ見ていないデータでどうなるかだからです。

不思議なのは、それでも学習がしばしばうまくいくことの方です。有限個の例しか見ていないのに、無限にある入力への答えを言い当ててしまう。なぜその飛躍が許されるのか。1970年代から積み上がった回答が一様収束・VC次元・PAC学習という道具立てで、2017年前後、その道具は深層学習の前で音を立てて破れます。この記事はその一部始終です。

「汎化する」とは、2つの数の差が小さいということ

学習が選んだ規則を仮説 hh と呼び、その良し悪しを2つの数で測ります。

R(h)=E(x,y)D[(h(x),y)],R^(h)=1ni=1n(h(xi),yi)R(h) = \mathbb{E}_{(x,y)\sim D}\big[\ell(h(x), y)\big], \qquad \hat{R}(h) = \frac{1}{n}\sum_{i=1}^{n} \ell(h(x_i), y_i)
(1)

DD は世の中のデータが従う真の分布、\ell は間違いを測る関数(0-1損失なら外したら1・当たったら0)、nn は手元の例の数です。式(1)の左が本番の成績(真の誤差=汎化誤差)、右が過去問の成績(経験誤差=訓練誤差)。世界中のデータでの平均と、手元の nn 件での平均、と言っているだけです。つまり「汎化する」とは、この2つの平均点がほとんど同じ値に落ち着く、というだけの意味になります。

下げたいのは R(h)R(h) ですが、DD が分からないので計算できません。計算できるのは R^(h)\hat{R}(h) だけ。だから理論の仕事はひとつに絞られます。

R(h)    R^(h)+(計算できる何か)R(h) \;\le\; \hat{R}(h) + (\text{計算できる何か})

この形の不等式を作ること。右辺の「何か」を複雑さの罰金と呼びます。手元の成績に罰金を足せば本番の成績の上限になる、という保険証書を発行するのが統計学習理論です。つまり読み方は「本番の点 ≤ 過去問の点 + 下駄」で、その下駄の大きさを手元の情報だけで見積もれれば、まだ見ていないデータでの成績に天井をつけられます。その罰金が何を捉えようとしているのかを、先に目で見ておきましょう。

FIG 1多項式の次数を上げると訓練誤差は下がり続けるのに、テスト誤差はある点から上を向く。この2本の線の開きが汎化ギャップで、統計学習理論はこの開きに上限を与えようとします

仮説が1つだけなら、これはコイン投げの話

データを見る前に仮説を1つ決め打ちしたとします。すると各例での損失は独立同分布の確率変数になり、R^(h)\hat{R}(h) はその標本平均、R(h)R(h) はその期待値です。大数の法則が効く、教科書どおりの状況。近づく速さを定量化するのが Hoeffdingの不等式で、損失が [0,1][0,1] に収まるとき次が成り立ちます。

Pr[R^(h)R(h)>ϵ]    2exp(2nϵ2)\Pr\big[\,|\hat{R}(h) - R(h)| > \epsilon\,\big] \;\le\; 2\exp(-2n\epsilon^2)
(2)

「過去問の点と本番の点が ϵ\epsilon 以上ずれる確率は、例の数 nn が増えると指数関数的に潰れる」。つまり、例を集めれば集めるほど「手元の点数はほぼ実力どおりだ」と言い切ってよくなり、その確信は例の数に対して急激に強まる、ということです。指数の中身が ϵ2\epsilon^2 なのが効き所で、精度を2倍にしたければ例は4倍要ります。ϵ\epsilon について解けば、確率 1δ1-\delta 以上で R(h)R^(h)+log(2/δ)/(2n)R(h) \le \hat{R}(h) + \sqrt{\log(2/\delta)/(2n)}δ\delta は「保険が外れる確率」です。n=10,000n=10{,}000δ=0.05\delta=0.05 なら罰金は約1.4ポイント。悪くない保証に見えます。

「選ぶ」という行為が代償を生む

しかしこの話には嘘が混ざっています。「データを見る前に hh を決めた」という前提です。現実の学習はその逆で、データを見てから候補の中で R^\hat{R} が最小のものを選ぶ。選ばれた h^\hat{h} はデータの関数であり、もはや固定された仮説ではありません。

なぜこれが問題かはコインで分かります。100人にコインを10回ずつ投げさせ、いちばん表が多かった人を選ぶ。その人が9回表を出したとして、コインが歪んでいる証拠になるでしょうか。なりません。「いちばん良い人を選ぶ」という操作自体が、偶然の当たりを拾い上げるからです。学習も同じで、多数の仮説から訓練誤差最小のものを選べば、その値は運の良さの分だけ実力より良く見えます。

対策は、選ばれ方に依存しない保証を要求することです。仮説集合 H\mathcal{H}すべての hh について同時に成り立つ不等式を作る——これが一様収束です。候補が有限個なら和集合上界(どれか1つが外れる確率は各々が外れる確率の合計以下)で片が付き、確率 1δ1-\delta 以上ですべての hHh \in \mathcal{H} に対して

R(h)    R^(h)+logH+log(2/δ)2nR(h) \;\le\; \hat{R}(h) + \sqrt{\frac{\log|\mathcal{H}| + \log(2/\delta)}{2n}}
(3)

H|\mathcal{H}| は候補の個数です。式(3)は「候補が多いほど罰金が増えるが、増え方は対数なので緩い」と言っています。つまり、たくさん試したなら試した分だけ最高点を割り引いて読め、ただしその割引はデータを増やせば取り返せる、という取り決めです。候補を1000倍にしても中身は log10006.9\log 1000 \approx 6.9 しか増えず、しかも全体は n\sqrt{n} で割られる。表現力とデータ量のトレードオフが、これ以上ないほど素朴な形で式に現れています。

現実のモデルは実数パラメータを持つので 、 で式(3)は無意味になります。ここが統計学習理論のいちばん美しい所です。

この先にあるもの

§

ここから先は会員限定です

解説記事371本・教科書26章・学生モード48単元・論文精読6本が、月額¥490ですべて読み放題になります。新しい解説は毎日3本ずつ増えます。いつでも解約でき、解約後も期間の終わりまで読めます。

会員の方はログインすると続きが表示されます

参考文献

  1. Understanding Deep Learning Requires Rethinking Generalization. arXiv:1611.03530論文ページ·PDF
  2. Deep Double Descent: Where Bigger Models and More Data Hurt. arXiv:1912.02292論文ページ·PDF
  3. Computing Nonvacuous Generalization Bounds for Deep (Stochastic) Neural Networks with Many More Parameters than Training Data. arXiv:1703.11008論文ページ·PDF
  4. Uniform convergence may be unable to explain generalization in deep learning. arXiv:1902.04742論文ページ·PDF

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

コメント

コメントにはログインが必要です