オーバーフィッティング:特効薬はありませんか?


21

私の理解では、適切な相互検証とモデル選択手順を踏んだとしても、モデルの複雑さ、期間に制限を課さない限り、モデルを十分に検索する過適合発生します。さらに、多くの場合、人々は、提供できる保護を損なうデータからモデルの複雑さに対する罰則を学ぼうとします。

私の質問は次のとおりです。上記の声明にはどれほど真実がありますか?

MLの専門家は私の会社/研究室では、利用可能なすべてのモデル(キャレットscikit-learnなどのライブラリから)を常に試して、どれが最適かを確認します」とよく耳にします。私はしばしば、このアプローチは交差検証に真剣であり、任意の方法でホールドアウトセットを保持している場合でも簡単にオーバーフィットできると主張します。さらに、検索が難しくなればなるほど、オーバーフィットする可能性が高くなります。言い換えれば、過剰な最適化は本当の問題であり、体系的にそれと戦うのに役立つ経験則はありません。このように考えるのは間違っていますか?


ML固有のモデルまたは多変量モデル全般について質問していますか?
-rumtscho

@rumtscho MLのすべて。
アメリオバスケスレイナ

1
@CagdasOzgencに感謝します。「検索スペース(検討するモデル)が大きいほど、結果は悪くなります」。ここで参照している抽象化のレベル「検索スペース」はわかりませんが、「十分に頑張って」とはもちろん、より多くのモデルを検索し、「メタモデル」の複雑さ/検索スペースを増やすことを意味します(ご希望の場合)私たちは収まることを試みています。
アメリオバスケスレイナ

回答:


8

完全な答えではありませんが、この議論で人々が見落とすことの1つは、クロスバリデーション(例えば)が何を意味するのか、なぜそれを使用するのか、そして何をカバーするのですか?

あまりにも難しい検索で見られる問題は、人々がしている履歴書がしばしば単一のモデル内にあるということです。folds=モデルフィッティング手順の引数を設定することで簡単に行えます。ただし、複数のモデルに移動するとき、さらに複数のモデルを作成するための複数の手順に移動するときは、CVでラップしていない別のレイヤーを1つまたは2つ追加します。

したがって、ネストされたCVを使用する必要があります。また、従属変数と独立変数の関係を壊した場合の手順がどれだけうまくいくかを確認するために、プロセス全体をラップした「ターゲットシャフリング」(リサンプリング/置換テスト)を使用する必要があります。プロセス全体を検討していますか?


1
+1。グリッド検索(モデル選択)を実行するCVの単一(または少なすぎる)レイヤーでモデル選択を行うと、間違いなくオーバーフィッティングにつながる可能性があります(興味のある方は、これとソースをお勧めします)。「ターゲットシャッフル」について読んだことがあります(他の読者にはこの博覧会をお勧めします)が、自分で使ったことはありません。それも悪用される可能性があるのだろうか(たとえば、最終的に誤検知につながる複数のテストを実行し、その結果再び「十分に難しい」(?)を検索する)。
アメリオバスケスレイナ

7

私の4年ほどの経験では、キャレット(またはscikit-learn)で使用可能なすべてのモデルを試しても、必ずしも過剰適合になるとは限りません。データセットが十分に大きく(10,000行以上)、クラスのバランスが多かれ少なかれ(つまり、信用リスクやマーケティングの問題のようなクラスの不均衡がない場合)、オーバーフィッティングは最小限になる傾向があることがわかりました。パラメーターのチューニングに関する私のグリッド検索は、モデルごとに30以下の順列になる傾向があることに注意してください。極端な場合、モデルごとに100または1,000の順列を使用すると、おそらく過剰適合になります。

質問の言い方をすれば、答えは非常に簡単になります。極端な場合、はい、確かではありませんが、過剰適合は可能です。特効薬はなく、他の方法で提案する人はいないと思います。ただし、過剰適合の程度が許容できるほど十分に小さい、かなり広いスペクトルがまだあります。検証ホールドアウトセットに目に見えないデータが十分にあると、間違いなく役立ちます。目に見えない検証ホールドアウトセットを複数持つことはさらに優れています。毎日新しいデータが大量に出てくる分野で働くことができて幸運です。

2,000から3,000未満の観測値の静的なデータセット(例:入手が困難な医療データ)で立ち往生している立場にいる場合、一般的に線形モデルのみを使用します。十分に小さなデータセットでのベクターマシンのブーストとサポート。一方、私はトップカグラー(トップ5%)と話をしました。彼は、各競技で数万のモデルを構築し、最終アンサンブルで数千のモデルを使用してそれらを組み立てます。彼は、これが最終的なリーダーボードでの成功の主な理由だと言いました。


1
うん。私は数百万の観測があったデータを扱ってきました。どのような検証(kfold、ブートストラップ、さらには単純なホールドアウト)を試みても、モデルにはほとんど違いがありませんでした。データが増加するにつれて、検証方法に注意を払う必要が少なくなります。
リカルドクルーズ

言い換えれば、何百万もの観測を「記憶」するのに十分な自由度を持つモデルはありません。
リカルドクルーズ

5

規模に大きく依存します。@RyanZottiが通常持っているような2,000〜3,000件を超えるケースを期待できます。私はめったにその1/10を持ちません。それは、「ビッグデータ」機械学習の人々と生物医学のような分野で働いている人々との間の見方の大きな違いです。

この問題に関する私の見解の発見的説明を提示します。ウィキペディアのページで説明されているように、オーバーフィットの基本的な問題は、評価するケースの数とパラメーターの数の関係です。だから、もしあなたがあなたがMモデルを選択し、モデルごとにp個のパラメータを持っているなら、あなたは合計でMpパラメータのオーダーで何かを評価しているという大まかな考えから始めてください。

過剰適合の危険性がある場合、より一般化可能なモデルに戻す一般的な方法は2つあります。パラメーターの数を減らすか、何らかの方法でペナルティーを科します。

適切に大きなデータセットを使用すると、オーバーフィットに近づくことはないでしょう。モデルあたり20,000個のケースと20個の異なるモデルがあり、モデルごとに100個のパラメーターがある場合、有効なパラメーターごとに10個のケースがあるため、ペナルティがなくても問題はないかもしれません。モデリング戦略を200ケースだけで試さないでください。

モデルの平均化は、罰則の一種と考えられます。@RyanZottiが引用したKagglerの例では、ケースの数は恐らく膨大であり、最終アンサンブルの「数千」モデルのそれぞれが最終モデルのごく一部にしか寄与していません。特定の寄与モデルに固有の過剰適合は、最終結果に大きな影響を与えません。また、Kaggler競技会の非常に多数のケースは、過剰適合の危険性をさらに減らします。

したがって、ここでの非常に多くの問題と同様に、唯一の合理的な答えは「それは依存します」です。この場合、ケース数と検査されたパラメーターの有効数との関係、および適用されるペナルティの量に依存します。


2

これは非常に良い質問だと思います。私は常に、実際のデータを使用した相互検証実験で「U」字型の曲線を観察したいと考えています。ただし、現実世界のデータ(クレジットカードトランザクションと教育データで5年以上)での私の経験で膨大な(10億行)現実世界のデータでフィッティングが簡単に発生することわかりません。

トレーニングセットは非常に大きく、多くの情報とノイズが含まれているため、トレーニングセットを最大限に試してみることはできますが、あまり多くのことはできません(たとえば、損失を0に減らす)。

同時に、データのテストで最も複雑なモデル(正則化なし)を試すことができ、正統化されたモデルよりも優れているようです。

最後に、トレーニングで数十億のデータポイントを持っているという条件の下でのみ、私の声明は真実かもしれません。直感的には、データはモデルよりもはるかに複雑であるため、過剰に適合しません。10億行のデータの場合、数千のパラメーターを持つモデルを使用していても問題ありません。同時に、100万の自由なパラメーターを持つモデルを構築するための計算を行う余裕はありません。

私の意見では、これが最近ニューラルネットワークとディープラーニングが人気を博した理由でもあります。インターネットの数十億の画像と比較すると、トレーニングに余裕があるモデルはどれも、十分にフィットするのに十分ではありません。


1

@ ryan-zottiに同意するのは、十分に検索しても過適合になるとは限らない-少なくとも、過適合と呼ばれるほどにはならないということです。これに関する私の見解を述べさせてください。

ボックスはかつて言った:

すべてのモデルが間違っていることに注意してください。実際的な問題は、役に立たないためにはどれだけ間違っている必要があるかです。

(完全であるためにはすべてのデータが必要であり、そもそもモデルが不要になります)。

モデルが間違っていることは、オーバーフィットとアンダーフィットも含みます1。しかし、私たちはそれを気にする必要も、気づくこともありません。両方がしますので-問題は、私たち)は、すべてのaとbの措置は)それを過剰発現またはunderfitting呼び出さないために許容可能な見つけることができる現実から逸脱したモデルのどの量で、常に私たちが今まで構築するすべてのモデルに少しを適用します。最後に、私たちのモデルは、当社の要件を満たす場合は例えばオーバー/ underfitだけで、最小限の、またはオーバー/ underfit我々のアプリケーションの場合には考慮されていない(可能性)データの一部に、我々はそれを受け入れるだろう-それは防止については必ずしもありませんすべてのオーバー-/アンダーフィッティング。

これは、モデルエラーを測定/検出する適切な設定に要約され、これが必要なものであるかどうかを判断します。したがって、できることは、最小限のノイズと代表的な+十分なサンプルでデータを取得し、可能な限り最良のモデル化、評価、選択を行い、これらすべてを合理的な方法(例えば、数少ないサンプル、多くの機能それほど複雑ではないモデル。パフォーマンスがまだ許容できる最小のモデルを選択するなど)。

なぜなら、最終的には常にモデルのエラー/オーバー/アンダーフィットが発生するからです- 関心のある焦点内でこのエラーを検出/測定する能力は、重要な合理的な選択をすることです。


1a)各モデルにはバイアスと分散の問題が同時にあります(通常、ニーズを満たすために適切なトレードオフを見つけようとします)。要件を満たすモデルには、依然としてバイアスと分散があります。b)過剰適合の理由として、ノイズの多いデータと代表的でないサンプルを考慮します。各モデルは必然的にノイズモデル化するだけでなく、情報の一部が欠落している関係をモデル化するため、どの間違った仮定が必然的に行われます。

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