Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Early Stopping

早期終了は、検証性能が停滞した時点で学習を終了し、最良のチェックポイントを保持しながら、無駄な計算と過学習を抑えます。

早期終了は、監視対象の性能指標が改善しなくなったときに、反復的な機械学習の実行を終了する学習手法です。検証性能に基づいて学習を継続する期間を決定することで、不要な計算を減らし、過学習を抑制します。直感的に言えば、追加の練習をしても、モデルが未使用のデータ例を扱う能力が向上しなくなった時点で学習を終了します。機械学習以外では、「早く終了する」とは、予定された完了時点より前に活動を終えることを意味します。

早期終了の仕組み#

学習中、オプティマイザーは学習データを使ってモデルを更新します。一定間隔で、モデルを別の検証データで評価します。検証性能が低下している一方で、学習損失が下がり続けることがあります。これは過学習の兆候であり、モデルが学習データの例に固有の詳細にますます適合している状態です。早期終了は、未使用データでの性能に基づいて終了時点を選ぶことで、この状態を抑制します。

一般的な実装では、最良の検証スコアを追跡し、対応するモデルの重みを保存したうえで、十分な改善が見られないチェックが連続した回数を数えます。改善があればカウンターをリセットし、設定した patience に達すると学習を終了します。最良のチェックポイントを復元することで、学習の最終ステップより前に記録された場合も含め、観測された最も良い検証結果を保持できます。

Nelson Morgan氏とHervé Bourlard氏は、汎化とパラメーター推定に関する1989年の研究で、フィードフォワードニューラルネットワークに対する検証ベースの停止手法を紹介しました。この研究には音声分類の実験が含まれており、独立したデータを監視して学習期間を選択する方法が示されました。

指標、patience、最良の重み#

停止ルールは、いくつかの設定に依存します。

  • 監視対象の指標: 検証損失は予測誤差を測定するため、最小化します。検証精度は正しい予測の割合を測定するため、最大化します。
  • patience と学習期間: patience は、学習を終了せずに許容する改善のないチェック回数を指定します。エポックとは、学習データセット全体を1回処理することです。
  • 改善しきい値: Kerasではこれをmin_deltaと呼び、進捗としてカウントする最小の絶対変化量を指定します。restore_best_weights=True設定では、監視対象の値が最良だった時点の重みを復元します。
  • 検証チェックの頻度: PyTorch Lightningでは、検証チェックの回数でpatienceを数えます。10エポックごとにチェックし、patienceを3に設定すると、最良のチェック後、30エポックの間に改善のないチェックが3回許容されます。

patienceと改善しきい値は、重みの更新プロセスとは別に設定するハイパーパラメーターです。patienceを小さくすると停滞した学習を早く終了し、大きくすると一時的な停滞が長く続く場合も学習を継続できます。ウォームアップ期間を設けると、初期学習が安定するまで監視を遅らせられます。これらの設定は、最適化による更新幅を制御する学習率と相互に影響します。

適用例と実行可能なサンプル#

早期終了は、ニューラルネットワークと勾配ブースティング木の両方に適用できます。scikit-learnによる勾配ブースティングでは、各ステージで木を追加し、検証ベースの停止によってステージ数を制御します。California Housingの例では、データの分割にvalidation_fractionを使用し、検証性能の改善が停滞した後に学習を終了するためにn_iter_no_changeを使用します。

次の例では、scikit-learnに付属する糖尿病データセットを使い、実際に学習されたブースティングステージの数を出力します。

from sklearn.datasets import load_diabetes
from sklearn.ensemble import GradientBoostingRegressor

X, y = load_diabetes(return_X_y=True)

# Reserve an internal validation split and monitor progress.
model = GradientBoostingRegressor(
    n_estimators=1000,
    validation_fraction=0.2,
    n_iter_no_change=10,
    random_state=42,
)
model.fit(X, y)

print(f"Boosting stages fitted: {model.n_estimators_}/1000")

学習済みステージ数から、1,000ステージという上限に対して、停止条件がどの時点で木の構築を終了したかが分かります。

Ultralytics YOLOは、モデルの学習中に早期終了を適用します。これにはYOLO26も含まれ、検証fitnessが改善しないエポック数を数えるpatience引数を使用します。物体検出では、fitnessにmAP50–95を使用し、トレーナーは最良のチェックポイントをbest.ptとして保存します。

早期終了は、学習期間を制御する正則化の一種です。重み減衰は大きな重みにペナルティを課し、ドロップアウトは学習中にユニットをランダムに無効化します。これらの手法は併用できます。早く終了しすぎると未学習になり、有用なパターンを学習できないままになります。

チェックポイントはモデルの状態を保存し、早期終了は最適化を終了するタイミングを決定します。交差検証では未使用の分割データを順に入れ替えてモデルの選択肢を評価し、別のテストデータは最終評価に使用します。停止の判断では検証結果に基づいてモデルを選択するため、選ばれたチェックポイントの検証スコアはモデル選択の一部です。

Kerasでは、restore_best_weightsのデフォルト値がFalseであるため、早期終了を有効にするだけでは、モデルの重みは最終ステップのものになります。

Explore solutions

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう