統計学習理論では、テストセットに過剰適合の問題はありませんか?


16

MNISTデータセットの分類に関する問題を考えてみましょう。

Yann LeCunのMNIST Webページによると、「Ciresan et al。」畳み込みニューラルネットワークを使用したMNISTテストセットで0.23%のエラー率を得ました。

レッツとして示すMNISTトレーニングセット、としてMNISTテストセット、最終的な仮説は、彼らが使用して得られたとして、およびMNIST試験に彼らの誤り率が使用して設定のようにE t e s t(h 1)= 0.0023。DtrainDtestDtrainh1h1Etest(h1)=0.0023

彼らの観点では、Dtestはh1に関係なく入力空間からランダムにサンプリングされたテストセットであるため、最終仮説サンプル外エラーパフォーマンスはEout(h1)次のように制限されると主張できますHoeffdingの不等式 N個のT E S T = | D t e s t | 。

P[|Eout(h1)−Etest(h1)|<ϵ|]≥1−2e2ϵ2Ntest

Ntest=|Dtest|

換言すれば、少なくとも確率が、 E O U T(H 1)≤ E T E S T(H 1)+ √1−δ

Eout(h1)≤Etest(h1)+12Ntestln2δ

別の視点を考えてみましょう。MNISTテストセットを適切に分類したい人がいるとします。そこで、彼は最初にYann LeCunのMNIST Webpageを見て、8つの異なるモデルを使用している他の人々によって得られた以下の結果を見つけました。

MNIST分類結果

そして、8つのモデルの中でMNISTテストセットで最高のパフォーマンスを発揮するモデルを選びました。g

彼にとって、学習プロセスは、仮説セットH t r a i n e d = { h 1、h 2、...からテストセットD t e s tで最適に実行される仮説を選択していました。。、h 8 }。gDtestHtrained={h1,h2,..,h8}

したがって、テストセットのエラーは、この学習プロセスの「サンプル内」エラーであるため、次の不等式として有限仮説セットのVC境界を適用できます。 P [ | E O U T(G )- E I N(G )| < ε ] ≥ 1 - 2 | H t r a i n e d | e 2 ϵ 2 NEtest(g)

P[|Eout(g)−Ein(g)|<ϵ]≥1−2|Htrained|e2ϵ2Ntest

換言すれば、少なくとも確率が、 E O U T(G )≤ E T E S T(G )+ √1−δ

Eout(g)≤Etest(g)+12Ntestln2|Htrained|δ

この結果は、複数のモデルの中でモデルのパフォーマンスが最高になるように選択した場合、テストセットが過剰適合になる可能性があることを意味します。

この場合、人は選ぶかもしれません。これは最も低いエラー率E t e s t(h 1)= 0.0023です。以来、H 1は、この特定のテストセットに8つのモデルの間で最良の仮説であるDとTのE S T、といういくつかの可能性が存在し得るH 1 MNISTテストセットにoverfitted仮説です。h1Etest(h1)=0.0023h1Dtesth1

したがって、この人は次の不平等を主張できます。

Eout(h1)≤Etest(h1)+12Ntestln2|Htrained|δ

その結果、2つの不等式

P[Eout(h1)≤Etest(h1)+12Ntestln2δ]≥1−δ
P[Eout(h1)≤Etest(h1)+12Ntestln2|Htrained|δ]≥1−δ

しかし、これら2つの不等式には互換性がないことは明らかです。

どこで間違っていますか?どちらが正しいか、どちらが間違っているか?

後者が間違っている場合、この場合の有限仮説セットにVC限界を適用する正しい方法は何ですか?

回答:


1

Among those two inequalities, I think the later is wrong. In brief, what's wrong here is the identity g=h1 given that g is a function of the test data while h1 is a model that is independent of test data.

In fact, g is one of the 8 models in Htrained={h1,h2,...,h8} that best predicts test set Dtest.

Therefore, g is a function of Dtest. For a specific test set, Dtest∗ (like the one you mentioned), it could happens that g(Dtest∗)=h1, but in general, depending on the test set, g(Dtest) could take any value in Htrained. On the other hand h1 is just one value in Htrained.

For the other question:

If the latter is wrong, what is the right way to apply the VC bound for finite hypothesis sets in this case?

Just don't replace g by h1, you will get the correct bound (for g, of course) and it will have no conflict with the other bound (which is for h1).

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.