用語集

オーバーフィット

機械学習におけるオーバーフィッティングを特定、防止、対処する方法を学ぶ。モデルの汎化と実世界のパフォーマンスを向上させるテクニックを発見します。

オーバーフィッティングとは、機械学習(ML)における基本的な概念であり、モデルが学習データの詳細やノイズを学習し、それが新しい未知のデータに対するモデルの性能に悪影響を与える場合に発生する。要するに、モデルは基本的なパターンを学習する代わりに、訓練セットを記憶してしまうのだ。この結果、モデルは訓練されたデータでは高い精度を達成しますが、実世界のデータには汎化できず、実用的なアプリケーションでは信頼できないものになります。優れた汎化を達成することは、AI開発における主要な目標である。

オーバーフィッティングの見分け方

オーバーフィッティングは、通常、訓練データセットと別の検証データセットの両方でモデルのパフォーマンスを監視することによって識別される。オーバーフィッティングの一般的な兆候は、訓練セットの損失関数の値が減少し続ける一方で、検証セットの損失が増加し始める場合です。同様に、トレーニングの精度が向上し続けているにもかかわらず、検証の精度が停滞したり、その後のエポックで悪化したりする場合は、モデルがオーバーフィットしている可能性が高い。TensorBoardのようなツールは、これらのメトリクスを視覚化し、早期にそのような問題を診断するのに優れています。Ultralytics HUBのようなプラットフォームも、実験を追跡し、オーバーフィッティングを検出するモデルを評価するのに役立ちます。

オーバーフィッティングとアンダーフィッティング

オーバーフィッティングとアンダーフィッティングは、機械学習における2つの一般的な問題であり、モデルが汎化できないことを表している。これらは本質的に正反対の問題である。

  • オーバーフィット:モデルがデータに対して複雑すぎる(分散が大きい)。学習データのノイズやランダムな変動を捕捉し、学習時のパフォーマンスは優れているが、テストデータでのパフォーマンスは低い。
  • アンダーフィット:モデルが単純すぎて、データの根本的な構造を捉えることができない(バイアスが高い)。関連するパターンを学習できないため、訓練データとテストデータの両方でパフォーマンスが低い。

ディープラーニングにおける課題は、適切なバランスを見つけることであり、これはしばしばバイアスと分散のトレードオフで表現される概念である。

オーバーフィットの実例

  1. 自律走行車の物体検出:日中の晴天時の画像のみを含むデータセットを使用して、自律走行車用のUltralytics YOLOモデルをトレーニングすることを想像してみてください。そのモデルは、明るい場所では歩行者や車の検出に非常に特化するが、夜間や雨や霧の天候では劇的に失敗する可能性がある。これは、訓練データの特定の照明や天候条件に過剰に適合しているのだ。Argoverseのような多様なデータセットを使えば、これを防ぐことができる。
  2. 医療画像解析CNNモデルは、1つの病院から供給されたMRIスキャンから腫瘍を検出するように訓練される。このモデルは、その病院の特定のMRI装置から発生する特定のアーチファクトやノイズパターンを腫瘍の存在と関連付けることを不注意に学習してしまうかもしれない。異なる病院、異なる装置のスキャンでテストすると、腫瘍の実際の生物学的マーカーではなく、元のトレーニングセットのノイズにオーバーフィットしたため、その性能は著しく低下する可能性がある。これは、ヘルスケアにおけるAIのような分野では重要な問題である。

オーバーフィッティングを防ぐには

オーバーフィッティングに対抗し、よりロバストなモデルを構築するために、いくつかのテクニックを採用することができる。

  • データを増やす:トレーニングデータセットのサイズと多様性を増やすことは、オーバーフィッティングを防ぐ最も効果的な方法の一つである。データを増やすことで、モデルはノイズではなく真の基本パターンを学習することができます。Ultralyticsのさまざまなデータセットを検索して、プロジェクトを強化することができます。
  • データ拡張:これは、既存のデータを修正したコピーを作成することで、学習データセットを人為的に拡張することである。ランダムな回転、スケーリング、トリミング、カラーシフトなどの技術が適用されます。Ultralytics YOLOデータ拡張技術は、モデルの堅牢性を向上させるために組み込まれています。
  • モデル・アーキテクチャを単純化する:与えられたデータセットに対してモデルが複雑すぎることがある。より少ないパラメータでより単純なアーキテクチャを使うことで、データが記憶されるのを防ぐことができる。例えば、YOLOv8nとYOLOv8xのように、より小さなモデルバリアントを選択することは、より小さなデータセットに対して有益である。
  • 正規化:このテクニックは、モデルの複雑さに基づいて損失関数にペナルティを追加し、大きなモデルの重みを抑制します。一般的な手法にはL1正則化とL2正則化があり、詳しくはこちらをご覧ください。
  • ドロップアウト:正則化の特殊な形態で、各訓練ステップでニューロンのランダムな割合が無視される。これにより、ネットワークは冗長な表現を学習することになり、1つのニューロンの影響力が大きくなりすぎるのを防ぐことができる。ドロップアウトの概念についてはこちらで詳しく説明しています
  • 早期停止:これは、検証セットでのモデルのパフォーマンスを監視し、検証のパフォーマンスが低下し始めたら、たとえトレーニングのパフォーマンスがまだ向上していても、すぐにトレーニングプロセスを停止することです。詳しくはKerasの早期停止の説明をご覧ください。
  • クロスバリデーション:K-Foldクロスバリデーションのようなテクニックを使うことで、データを複数のフォールドに分割し、異なるサブセットでモデルのトレーニングと検証を行う。これにより、モデルの汎化能力をよりロバストに推定することができます。
  • モデル剪定:これは、学習されたネットワークから、そのパフォーマンスにほとんど影響を与えないパラメータや接続を削除し、複雑さを軽減することを含む。Neural Magicのような会社は、効率的なデプロイのためにモデルの刈り込みを専門に行うツールを提供している。

Ultralyticsコミュニティに参加する

AIの未来に参加しませんか。世界のイノベーターとつながり、協力し、成長する

今すぐ参加する
クリップボードにコピーされたリンク