CVで検証したときのoverfitに関する注意とその背景の話

3
自然外挿しなさい⚪ @naturalskew

XGBoost CVの件つづき。cross-validationしてればoverfitしてないと思うのは間違い。CVはoverfitしてるから。詳しく知りたければWAICの導出やloo-lpdの関係などいくつか文献をあたると良い。CVでうまく行くのはCVでhyperparameter overfitしてもそのダメージが少ないような「簡単なデータ」だからなの

2018-03-22 16:58:54
自然外挿しなさい⚪ @naturalskew

僕だって現職くるまではloo-lpdやWAICを深く考える機会はなかった。しかし極端にノイジーなデータではモデル選択手法とその結果の違いに注意深くならざるを得ない(そしてその注意は報われる)。CVとは逆に経験ベイズ(特にARD)はある種underfitします。Jeffreysが昔ベイズ仮説検定の欠陥を指摘した通り

2018-03-22 17:01:22
黒木玄 Gen Kuroki @genkuroki

Re:RT LOOCV(一個抜き交差検証)と他の規準を比較するときにはそれらが予測分布と真の分布のKullback-Leibler情報量(+定数)の推定値であることを忘れてはいけない。LOOCVがどんなにうまく近似計算できていてもそれだけだと肝腎なことがわからない。続く #数楽

2016-10-27 22:59:12
黒木玄 Gen Kuroki @genkuroki

#数楽 続き。だから、LOOCVの近似計算などを含む「予測誤差の大きさを比較するための情報量規準」どうしを正しく比較する方法を理解するためには、予測誤差がKL情報量で測られるということ(実質的にSanovの定理)を知っている必要があります。これが理解のための第一の関門。続く

2016-10-27 23:07:45
黒木玄 Gen Kuroki @genkuroki

#数楽 続き。一個抜き交差検証LOOCVは直観的にわかり易い考え方なので、これこそが予測誤差の計測法の決定版だと誤解してしまう危険性があると思う。サンプルから1個抜いて(その1個はサンプル全体を動かす)残りを使って予測分布を作り、抜いた1個の予測精度を見るのがLOOCV。続く

2016-10-27 23:16:46
黒木玄 Gen Kuroki @genkuroki

#数楽 続き。サンプルを生成した真の分布は未知のままなので、サンプルだけから予測分布による真の分布の予測精度を推定しなければいけない。サンプル内で予測精度を測ってみる一個抜き交差検証LOOCVは直観的に非常にわかり易いと思う。しかし、LOOCVも予測誤差の推定値でしかない。続く

2016-10-27 23:21:19
黒木玄 Gen Kuroki @genkuroki

#数楽 続き。サンプルだけからは知ることができない本当の予測誤差は予測分布と真の分布のKL情報量で測られます。数値実験するときには真の分布をカンニングできるので真の予測誤差を数値計算できます。これとの比較が重要。その辺のことは常識になっているのかなあと思いました。

2016-10-27 23:25:34
黒木玄 Gen Kuroki @genkuroki

#数楽 予測誤差を測るための各種情報量規準の正しい比較の例が watanabe-www.math.dis.titech.ac.jp/users/swatanab… の注4にあります。ソースも公開で素晴らしい。しかしMatlabには一般人は高価なので手が出ない。RStanで検証するためのコードを誰か公開すると社会貢献になると思う。

2016-10-27 23:32:08
黒木玄 Gen Kuroki @genkuroki

#数楽 用語説明。未知である真の分布Qが生成したサンプルをもとに作った予測分布Pによる真の分布Qの予測誤差D(Q||P)とQのエントロピーの和(それは-∫Q(x)log P(x) dxに等しい)を汎化誤差(generalization error)と呼ぶようです。

2016-10-27 23:45:03
黒木玄 Gen Kuroki @genkuroki

#数楽 真の分布が未知であるからこそ、それを推定したいので、自前で数値実験するとき以外には、汎化誤差を推定するときに真の分布をカンニングすることはできません。しかし、サンプルだけから汎化誤差を推定する手段が複数開発されています。最初のAICのアイデアは画期的だったと思う。

2016-10-27 23:49:04
黒木玄 Gen Kuroki @genkuroki

#数楽 LOOCVも汎化誤差の推定量です。一個抜き交差検証そのものが特権的な重要性を持っているわけではない。交差検証のアイデアはわかりやすいので、この点は誤解し易い点なのかなと思いました。

2016-10-27 23:51:59
黒木玄 Gen Kuroki @genkuroki

#数楽 過剰学習による予測精度の悪化の問題を扱う場合には、まず、予測分布による真の分布のシミュレーションの誤差を表すKL情報量について学ぶ必要があると思いました。サンプルだけから予測誤差を見積もる方法はKL情報量+定数(=汎化誤差)の推定法になっています。

2016-10-27 23:55:25
黒木玄 Gen Kuroki @genkuroki

#数楽 私が書いたKullback-Leibler情報量とSanovの定理の易しい場合の解説はこちら→ math.tohoku.ac.jp/~kuroki/LaTeX/… KL情報量は相対エントロピーの-1倍と同じものです。統計力学を学んだ人は相対エントロピーについては知っていると思う。

2016-10-27 23:58:24
黒木玄 Gen Kuroki @genkuroki

#数楽 数値実験する場合には、AIC、DIC、LOOCV(の変種)、WAICなどだけではなく、真の分布をカンニングすることによって計算できる汎化誤差=KL情報量+エントロピーも計算して比較した方がよいと思う。

2016-10-28 00:04:05
黒木玄 Gen Kuroki @genkuroki

#数楽 汎化誤差を推定する方法が複数あることは喜ばしいことだと思う。 実用的に十分な推定が得られる方法の中で計算コストが最も低いものを使うこともできるし、比較によって信頼性を増すことにも利用できる。 こういう考え方なら喧嘩せずにみんなハッピーになれる。

2016-10-28 00:09:33
黒木玄 Gen Kuroki @genkuroki

#数楽 未知の分布q(x)が生成したサンプルX_1,…,X_nからある一定の手続きで作られた予測分布P_n(x)=p(x|X_1,…,X_n)の汎化誤差(generalization error)の定義はG_n=-∫q(x) log P_n(x) dx.続く

2016-10-28 16:51:01
黒木玄 Gen Kuroki @genkuroki

#数楽 続き。汎化誤差からq(x)のエントロピーS(q)=-∫q(x)log q(x) dxを引いた結果は予測分布P_nで未知の分布qをシミュレートしたときの誤差の大きさ(予測誤差)を意味するKL情報量D(q||P_n)≧0になる。汎化誤差の大小と予測誤差の大小は同値。続く

2016-10-28 16:54:39
黒木玄 Gen Kuroki @genkuroki

#数楽 続き。だから、もしも汎化誤差を、未知の分布を知ることなく、サンプルだけから推定する方法があれば、予測誤差の大小を比較推定できるようになります。推定の方法として(一個抜き)交差検証誤差((LOO)CV)CV_nはよく出て来ます。その定義は次の通り。続く

2016-10-28 17:09:03
黒木玄 Gen Kuroki @genkuroki

#数楽 続き。確率分布Pによる確率分布Qの予測誤差(シミュレーションの誤差)の大きさをKullback-Leibler情報量D(Q||P)=∫Q(x)log(Q(x)/P(x))dxで測るという考え方はSanovの定理(←決定的に重要)を知っていれば非常に納得できることです。続く

2016-10-27 23:03:43
黒木玄 Gen Kuroki @genkuroki

#数楽 続き。その証明には広中の特異点解定理を本質的に使っています。さらな渡辺澄夫さんのウェブサイトには数値計算の証拠も掲載されています。 添付画像は watanabe-www.math.dis.titech.ac.jp/users/swatanab… より。実際にGEの揺らぎとCVなどの揺らぎの方向が正反対になっている。 pic.twitter.com/xFVg9Gmt5x

2016-10-28 17:43:34
拡大
黒木玄 Gen Kuroki @genkuroki

#数楽 続き。CV_n=-(1/n)Σ_{k=1}^n log p(X_k|X_1,…,X_{k-1},X_{k+1},…,X_n).CV_nが小さいほど、サンプルからX_kを除いた残りから作った予測分布でX_kが平均的によく予測できていることになる。これは結構わかり易い。続く

2016-10-28 17:18:06
黒木玄 Gen Kuroki @genkuroki

#数楽 続き。-log p(X_n|X_1,…,X_{n-1})のX_nを動かす平均は汎化誤差G_{n-1}の定義そのものであり、さらにそのX_1,…,X_{n-1}を動かす平均は汎化誤差のサンプルを動かす平均(E[G_{n-1}]と書く)の定義そのものである。続く

2016-10-28 17:23:14
黒木玄 Gen Kuroki @genkuroki

#数楽 続き。ゆえに交差検証誤差CV_nのサンプルを動かす平均は汎化誤差G_{n-1}のサンプルを動かす平均に等しい:E[CV_n]=E[G_{n-1}].このことから、交差検証誤差CV_nは平均汎化誤差E[G_{n-1}]の推定量として使えそうなことがわかる。続く

2016-10-28 17:29:41
黒木玄 Gen Kuroki @genkuroki

#数楽 続き。交差検証誤差CV_nのサンプルを動かす平均は平均汎化誤差E[G_{n-1}]に等しいので、次に知りたくなるのはCV_nの分散である。ベイズ統計の場合の分散の漸近挙動については渡辺澄夫著『ベイズ統計の理論と方法』のp.179-180の注意65(3)が重要。続く

2016-10-28 17:34:15
黒木玄 Gen Kuroki @genkuroki

#数楽 続き。その注意では、ベイズ統計の場合には、交差検証誤差と汎化誤差のサンプルを動かしたときの分散のn→∞での漸近挙動は等しく、平均からの揺らぎの方向が逆になることが示されています!汎化誤差がその平均より大きくなると、交差検証誤差はその平均より小さくなる!続く

2016-10-28 17:38:13