機械学習で過剰適合が悪いのはなぜですか?


49

ロジックは、モデルを過剰適合させると、一般化する能力が制限されることをしばしば述べていますが、これは、過剰適合は、特定の複雑さの後にモデルの改善を止めることを意味するにすぎません。過剰適合は、データの複雑さに関係なく、モデルを悪化させますか?もしそうなら、なぜそうなのですか?


関連:上記の質問「モデルはいつ適合しませんか?」のフォローアップ


1
実際、過剰適合が不可能な場合があるかどうかという質問はありますか?
ショーンオーウェン

@SeanOwen:いいえ、どうやってオーバーフィットするのは不可能でしょうか?
失敗

かかわらず、データの悪化させたモデルを過剰適合どうかは尋ねたとしてだけでチェックし、同意
ショーンオーウェン

1
過適合は定義上悪いです。そうでない場合はフィッティングが過剰になりません。
ガラ14年

1
「モデルの複雑さを追加する」という言葉を引用するつもりはありませんでした。フレーズを強調しただけです。とにかく、私の問題は基本的に@GaLaと同じだと思います。つまり、過剰適合は過剰適合を意味します。トートロジーを確認するように求めているようです。ですから、実際には別の質問をするつもりだったと思いがちです。たとえば、モデルの複雑さが増すと、モデルが悪化しますか?または、データの複雑さは、モデルがオーバーフィットする傾向とどのように関連していますか?
ネイサングールド14年

回答:


44

過剰適合は経験的に悪いです。テストとトレーニングの2つに分割したデータセットがあるとします。オーバーフィットモデルとは、トレーニングデータセットよりもテストデータセットでのパフォーマンスがはるかに悪いモデルです。一般に、そのようなモデルは、追加の(新しい)テストデータセットでは、オーバーフィットされていないモデルよりもパフォーマンスが悪いことがよく見られます。

直感的に理解する1つの方法は、モデルがデータの関連部分(信号)と無関係な部分(ノイズ)を使用する可能性があることです。オーバーフィットモデルは、より多くのノイズを使用するため、既知のノイズ(トレーニングデータ)の場合はパフォーマンスが向上し、新規ノイズ(テストデータ)の場合はパフォーマンスが低下します。トレーニングデータとテストデータのパフォーマンスの違いは、モデルが拾うノイズの量を示しています。ノイズを拾うと、テストデータ(将来のデータを含む)のパフォーマンスが低下します。

要約:定義上、過剰適合は悪いことです。これは、複雑さや一般化の能力とは関係がなく、ノイズを信号と間違えることに関係しています。

PS質問の「一般化する能力」の部分では、モデルの構造(たとえば、線形SVMなど)のために一般化する能力が本質的に制限されているが、それでもまだ傾向があるモデルを持つことは非常に可能です。オーバーフィット。ある意味では、過剰適合は汎化が失敗する可能性がある1つの方法にすぎません。


17

簡単に言えば、過剰適合とは、データや事前知識からの情報を考慮しすぎて、モデルで使用することを意味します。もっとわかりやすくするために、次の例を考えてみましょう。ある種の植物の成長を予測するモデルを提供する科学者に雇われています。科学者は一年を通してそのような植物を使った研究から収集した情報をあなたに提供し、彼らは彼らのプランテーションの将来の発展に関する情報を絶えずあなたに提供しなければならない。

そのため、受け取ったデータを調べて、そこからモデルを構築します。モデルで、できるだけ多くの特性を考慮して、最初のデータセットで見た植物の正確な挙動を常に見つけたとします。生産が継続するにつれて、これらの特性を常に考慮し、非常にきめの細かい結果を生成します。ただし、プランテーションが最終的に季節的な変化に苦しむ場合、受け取る結果は、予測が失敗し始めるようにモデルに適合する可能性があります(成長が遅くなると言っているか、実際にスピードが上がるか、反対)。

そのような小さな変動を検出できず、通常はエントリを誤って分類することはできませんが、モデルの細粒度、つまり大量の変数は、処理にコストがかかりすぎる可能性があります。ここで、データがすでに複雑であると想像してください。モデルをデータに過剰適合させると、分類/評価が非常に複雑になるだけでなく、入力で発生する可能性のあるわずかな変動の予測に誤りが生じる可能性が高くなります。

編集これは、おそらく上記の説明に動的性を追加して、何らかの有用性があるかもしれません:D


14

大まかに言えば、過剰適合は通常、比率が

ここに画像の説明を入力してください

高すぎます。

過剰適合は、モデルがテストデータに一般化できない大きな画像を学習するのではなく、モデルがトレーニングデータを暗記する状況と考えてください。これは、モデルがサイズに関して複雑すぎる場合に発生しますトレーニングデータ、つまり、トレーニングデータのサイズがモデルの複雑さに比べて小さすぎる場合。

例:

  • データが2次元の場合、トレーニングセットに10000ポイントがあり、モデルは直線である場合、過小適合になる可能性があります。
  • データが2次元の場合、トレーニングセットに10個のポイントがあり、モデルは100次多項式であるため、過剰適合する可能性があります。

ここに画像の説明を入力してください

理論的な観点からは、モデルを適切にトレーニングするために必要なデータ量は、機械学習において非常に重要ですが、まだ答えが出ていない質問です。この質問に答えるそのようなアプローチの1つはVC次元です。もう1つは、バイアスと分散のトレードオフです。

経験的な観点から、通常、人々はトレーニングエラーとテストエラーを同じプロットにプロットし、テストエラーを犠牲にしてトレーニングエラーを削減しないようにします。

ここに画像の説明を入力してください

私は見て助言するコーセラ」機械学習コースを、セクション『:機械学習を適用するためのアドバイス10』。

(PS:このSEでTeXのサポートを依頼するには、こちらにアクセスてください。)



5

これは、バイアス分散ディレマと呼ばれるものがあるためです。オーバーフィットモデルとは、モデルにより多くの分散を与えると、より複雑な決定境界を持つことを意味します。問題は、単純すぎるモデルだけでなく、複雑なモデルでも目に見えないデータの結果が分類されない可能性が高いことです。したがって、オーバーフィットモデルはアンダーフィットモデルとしては適切ではありません。それがオーバーフィットが悪い理由であり、モデルを中央のどこかにフィットさせる必要があります。


+1ありがとう、あなたの答えの結果として、私は上記の質問へのフォローアップを投稿しました、「いつモデルが不十分ですか?
失策

4

オーバーフィットに関する問題を理解するようになったのは、可能な限り最もオーバーフィットなモデルが何であるかを想像することでした。基本的に、それは単純なルックアップテーブルです。

各データの属性をモデルに伝え、それを単に記憶し、それ以上は何もしません。以前に見たデータを渡すと、それを検索し、以前に伝えた内容を単純に逆流します。以前に見たことのないデータを提供した場合、結果は予測不能またはランダムです。しかし、機械学習のポイントは、何が起こったかを伝えることではなく、パターンを理解し、それらのパターンを使用して何が起こっているかを予測することです。

決定木を考えてください。意思決定ツリーをどんどん大きくしていくと、最終的にはすべてのリーフノードが正確に1つのデータポイントに基づいたツリーになります。ルックアップテーブルを作成するバックドアの方法を見つけました。

結果を一般化して将来何が起こるかを把握するには、トレーニングセットで行われていることを一般化するモデルを作成する必要があります。オーバーフィットモデルは、既に持っているデータを説明するのに非常に役立ちますが、記述モデルは必ずしも予測モデルではありません。

フリーランチの定理は、すべての可能なインスタンスのセットで他のどのモデルよりも優れたモデルはない、と述べています。一連の数字「2、4、16、32」で次に来るものを予測したい場合、基礎となるパターンがあると仮定しないと、他のどのモデルよりも正確なモデルを構築できません。過剰適合のモデルは、実際にパターンを評価するのではなく、単にそれが可能であるとわかっているものをモデリングし、観察を与えるだけです。基礎となる機能があり、その機能が何かを判断できれば、イベントの結果を予測できると想定することで、予測力を得ることができます。しかし、実際にパターンがない場合は、運が悪くなります。期待できるのは、可能なことを示すルックアップテーブルだけです。


1

(1)バイアス分散と(2)モデルの複雑さの2つの異なるエンティティを誤って統合しています。

ϕ^ϕn

|ϕϕ^|eϕ なので neϕ

ϕϕ^ϕϕ={mc}

E[|yMϕ^|]eM なので neM

要約:はい、サンプルのバイアスとモデルの複雑さの両方が、学習したモデルの「品質」に寄与しますが、互いに直接影響することはありません。データにバイアスをかけている場合、正しい数のパラメーターと無限のトレーニングがあるにもかかわらず、最終的な学習モデルにエラーが発生します。同様に、パラメーターの数が必要な数より少ない場合、完全に偏りのないサンプリングと無限のトレーニングに関係なく、最終的に学習したモデルにエラーが発生します。


0

過剰適合について多くの良い説明がありました。ここに私の考えがあります。オーバーフィットは、分散が高すぎ、バイアスが低すぎる場合に発生します。

N個の部分に分割したトレーニングデータがあるとします。ここで、各データセットでモデルをトレーニングすると、N個のモデルが作成されます。ここで、平均モデルを見つけてから、分散式を使用して、各モデルが平均からどれだけ変化するかを計算します。オーバーフィットモデルの場合、この分散は非常に大きくなります。これは、各モデルに、提供した小さなデータセットに非常に固有の推定パラメーターがあるためです。同様に、平均モデルを取得し、それが最高の精度を与えた元のモデルとどの程度異なるかを見つけた場合、まったく大きな違いはありません。これは低バイアスを意味します。

モデルがオーバーフィットしているかどうかを確認するには、前の投稿で言及したプロットを作成できます。

最後に、過剰適合を避けるために、モデルを正則化するか、相互検証を使用できます。

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