1. 序章

機械学習では、特定の入力データの結果を予測する予測モデルを構築することを目指しています。 これを実現するために、トレーニング済みモデルを調整するための追加の手順を実行します。 そこで、いくつかの候補モデルのパフォーマンスを評価して、最もパフォーマンスの高いモデルを選択します。

ただし、最高のパフォーマンスのモデルを決定することは簡単な作業ではありません。最高の精度でモデルを選択しても、将来エラーのない結果が生成されるとは限らないためです。 したがって、トレインテスト分割と交差検定を適用して、見えないデータに対するモデルのパフォーマンスを推定します。

このチュートリアルでは、機械学習の2つの用語である過剰適合と過適合に焦点を当てます。 これらの用語は、入力データと出力データの間の関係をキャプチャするモデルの機能を定義します。 どちらも、モデルのパフォーマンスが低下する原因として考えられます。

2. 過適合と過剰適合とは

過剰適合は、トレーニングセットに合わせて調整された機械学習モデルをトレーニングすると発生します。 その結果、モデルはトレーニングデータを十分に学習しますが、見えないデータの適切な予測を生成することはできません。 過剰適合モデルは、トレーニングでは見えないデータポイントに対して低精度の結果を生成するため、最適でない決定につながります。

新しいデータで適切な結果を生成できないモデルは、「一般化できない」とも呼ばれます。 この場合、モデルが複雑すぎて、データセットに存在するパターンが適切に表現されていません。 分散が大きいこのようなモデルはオーバーフィットします。

過剰適合モデルは、トレーニングセット内のデータポイントに対して適切な予測を生成しますが、新しいサンプルではパフォーマンスが低下します。

Underfitting は、機械学習モデルがトレーニングセットに適切に調整されていない場合に発生します。 結果として得られるモデルは、入力と出力の関係を十分に捉えていません。 したがって、トレーニングデータセットであっても、正確な予測は生成されません。 その結果、モデルの適合が不十分な場合、結果が不十分になり、過剰適合のモデルのように、エラーの多い決定につながります。[X01X]

適合不足のモデルは、データセット内のパターンを認識するほど複雑ではありません。 通常、1つの出力値に対して高いバイアスがあります。 これは、入力データの変動をノイズと見なし、与えられた入力に関係なく同様の出力を生成するためです。

モデルをトレーニングするときは、モデルをトレーニングデータにうまく適合させる必要があります。 それでも、目に見えないデータの正確な予測も一般化して生成する必要があります。 結果として、結果のモデルが極端になることは望ましくありません。

対数曲線などのS字型曲線上にデータセットがあるとします。 既知の点を通過する高次放物線を誤差なしでフィッティングすることは常に可能です。 一方、エラー率の高い直線を当てはめることができます。

最初のソリューションは、過度に複雑なモデルを生成し、データセットだけでなく暗黙的なノイズもモデル化します。 その結果、元のS字曲線上の新しいデータポイントで高いエラーが予想されます。

逆に、2番目のモデルは単純すぎて、入力と出力の関係を把握できません。 したがって、新しいデータでもパフォーマンスが低下します。

過剰適合または過適合によるエラーを減らすことは、偏りと分散のトレードオフと呼ばれます。 その間にぴったりのモデルを見つけることを目指しています。

3. 過適合と過剰適合を検出する方法は? 

過剰適合の原因は、トレーニングデータの誤った解釈です。したがって、モデルは、見えないデータに対して精度の低い結果を生成します。 ただし、過剰適合モデルは、トレーニングフェーズ中に非常に高い精度スコアを生成します。

同様に、アンダーフィットモデルは単純すぎるため、入力データと出力データの関係を効果的にキャプチャできません。その結果、アンダーフィットモデルは、トレーニングデータを使用してもパフォーマンスが低下します。

データサイエンティストが注意を怠ると、彼らは簡単に誤解され、過剰適合モデルを本番環境に導入する可能性があります。 ただし、過剰適合モデルの予測の決定を適用すると、エラーが発生します。 たとえば、ビジネスは価値を失ったり、不満のある顧客と向き合う可能性があります。

不十分なモデルを本番環境にデプロイすると、不正確な結果が生成されるため、ビジネスに悪影響を与える可能性があります。 したがって、誤った出力に基づいて決定を形成すると、信頼性の低いビジネス上の決定にもつながります。

モデルがデータセットにどのように適合しているかを判断するには、モデルの損失と精度を注意深く監視する必要があります。

3.1. 過剰適合の検出

さまざまな手法を使用して、機械学習のライフサイクルのさまざまなステップで過剰適合を検出できます。 ホールドアウト方式を採用し、テスト用にデータセットの一部を保存することが重要です。

過剰適合がいつ始まるかを判断するために、トレーニングエラーと検証エラーを一緒にプロットします。 モデルをトレーニングすると、最初は両方が減少すると予想されます。 ただし、ある時点以降、検証エラーは増加しますが、トレーニングエラーは減少し続けます。 この時点の後でさらにトレーニングすると、過剰適合につながります。

3.2. アンダーフィッティングの検出

通常、過適合の検出は、過剰適合の検出よりも簡単です。 テストセットを使用しなくても、モデルがトレーニングセットでパフォーマンスが悪いかどうかを判断できます。 トレーニングデータのモデル精度が不十分な場合、バイアスが高くなり、適合性が低下します。

機械学習の課題は、データセットの根本的な最適な複雑さがわからないため、モデルの複雑さを決定することです。 また、環境に関する情報が不完全であり、データにノイズが含まれています。

このような状況では、モデルを適合させるために偏りと分散のトレードオフを克服する必要があります。

4. 過適合と過剰適合を治す方法

機械学習における過剰適合と過適合とは何か、およびそれらを検出する方法については、すでに説明しました。 それでは、それらと戦うためのオプションを理解してみましょう。

4.1. 過剰適合の治療法

モデルが過剰適合している場合、最も賢明なアプローチはモデルの複雑さを軽減することです。このようにして、モデルをより一般化できるようにすることができます。

モデルの柔軟性を減らすために、入力特徴の数を減らすことができます。モデル内の特徴の組み合わせを少なくするために、保持する特徴を手動で選択するか、特徴選択アルゴリズムを利用できます。

または、正則化を適用してモデル内の高次の項を抑制することができます。したがって、すべての特徴を保持しますが、結果におけるそれらの特徴の重要性の大きさを制限します。 予想どおり、正則化は、わずかに役立つ情報を含む多くの機能でうまく機能します。

たとえば、ニューラルネットワークドロップアウトレイヤーを追加することは、正則化の一形態です。 さらに、正則化項を設定して、ニューラルネットワークの重みを制限することができます。

早期打ち切りは、反復モデルに利用できるもう1つのタイプの正則化です。 主なアイデアは、検証の精度が低下し始めたときなど、特定の基準が満たされたときにモデルのトレーニングを停止することです。

モデルフィッティングへの別の可能なアプローチは、より一般化するためにモデルをトレーニングするために、より多くのトレーニング例を使用することです。

4.2. アンダーフィッティングの治療法

適合不足を防ぐために、モデルの複雑さを確保する必要があります。

最初に頭に浮かぶ方法は、より多くのトレーニングデータを取得することです。ただし、これはほとんどの問題にとって簡単な作業ではありません。 このような場合、データ拡張を有効にすることができます。 したがって、手元にあるデータポイントのわずかに変更された合成コピーを作成することで、利用可能なデータの量を増やすことができます。

同様に、トレーニングデータのパス数を増やすことは、反復アルゴリズムの実行可能なアプローチです。ニューラルネットワークのエポック数を増やすことは、モデルの適合を確実にするためのよく知られた方法です。

モデルの複雑さを増すもう1つの方法は、モデルパラメーターのサイズと数を増やすことです。データセットから設計された機能を導入できます。 たとえば、数値特徴の積またはn-gramのnパラメータは、新しい特徴を生成します。

あるいは、正則化を減らすことができます。一部の実装では、過剰適合に対するデフォルトの正則化パラメーターが暗黙的に含まれています。 デフォルトのパラメータを確認することは、良い出発点です。 限られた機能セットから抜け出そうとしているので、モデルに限定的な用語を導入する必要はありません。

アプローチを置き換えることは別の解決策です。たとえば、SVMカーネル関数を選択するとモデルの複雑さが決まります。 したがって、カーネル関数の選択は、過剰適合または過適合につながる可能性があります。

5. 概要

これまでに説明したことを比較表にまとめましょう。

6. 結論

この記事では、機械学習における過剰適合と過適合について検討しました。

最初に、用語の意味とモデルの複雑さとの関係について説明しました。 次に、損失と精度の曲線をプロットするなど、過剰適合と過適合を検出するための可能な方法を検討しました。 その後、フィッティングの問題を防ぐためのさまざまな方法について学びました。 最後に、まとめで締めくくりました。