機械学習におけるエポックについて学びましょう。エポックがモデルのトレーニングにどのような影響を与え、オーバーフィッティングを防ぎ、Ultralytics YOLOパフォーマンスを最適化するのか。
人工知能(AI)モデルのトレーニング 人工知能(AI)モデルの学習において エポックとは、学習アルゴリズムを通して学習データセット全体を1回完全に通過させることを指す。これは の学習における基本的な時間単位である。 ニューラルネットワーク(NN)の学習における基本的な時間単位であり、モデル モデルは、提供されたデータのすべてのサンプルから学習する機会を1回だけ得たことになる。ディープラーニング モデルは、データを1回見ただけでは最適な性能に達することはほとんどないため、通常、学習には次のようなプロセスが含まれる。 エラーを最小化し、内部パラメータを洗練させるために、何度もエポックにわたってこのプロセスを繰り返す。
エポック中の主な目的は、入力を正しい出力に対応させるためにモデルの重みを調整することである。 モデルの重みを調整することである。 に正確に対応させることである。この過程で 最適化アルゴリズム、例えば確率的 勾配降下SGD)などの最適化アルゴリズムが、特定の損失関数を用いて誤差を計算し、モデルの内部状態を更新します。 を用いて誤差を計算し、モデルの内部状態を更新する。
データセットには複雑なバリエーションやノイズが含まれているため、シングルパス学習では不十分なことが多い。複数の エポックを複数回実行することで、モデルは画像分類やセグメンテーションのようなタスクを実行する能力を反復的に向上させる。 画像の分類やセグメンテーションのようなタスクを実行する能力を向上させる。この 反復的な改良により、ネットワークは学習データからパターンを一般化することができる。 単に特定の例を記憶するのではなく を一般化することができる。ディープラーニングフレームワーク PyTorchや TensorFlowは組み込みの これらのサイクルで学習ループを制御するメカニズムが組み込まれている。
トレーニング・ループの効率的な機能を理解するためには、初心者が混同しがちな3つの密接に関連した用語を区別することが重要である。 初心者が混同しがちな用語である:
例えば、10,000画像のデータセットがあり、バッチサイズを100に設定した場合、1エポックを完了するのに100回の繰り返しが必要です。 を要します。
適切なエポック数を選択することは、ハイパーパラメータチューニングの重要な側面である。 である。訓練サイクル数が少なすぎたり または多すぎるサイクルのトレーニングは、最適なパフォーマンスを発揮できない可能性がある。
このような問題を軽減するために、エンジニアはしばしば を使うことが多い。 このテクニックは、指定された総エポック数に関係なく、検証損失が改善しなくなった時点でトレーニングを停止する。のような可視化ツールは TensorBoardのような可視化ツールは、これらのメトリクスをリアルタイムで監視するために頻繁に使用される。 リアルタイムで
エポックという概念は、様々な機械学習(ML)領域において普遍的なものである。 機械学習(ML)ドメインに普遍的である。
を使用する場合 ultralytics ライブラリを使えば、エポック数の指定は簡単だ。エポック数は
train() メソッドは epochs 引数を指定する。
引数を指定します。
from ultralytics import YOLO
# Load the YOLO11 model (recommended for latest performance)
model = YOLO("yolo11n.pt")
# Train the model for 50 epochs on the COCO8 dataset
# The 'epochs' argument defines the total passes through the data
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
このスニペットは、モデルが "coco8 "データセットの理解を50回洗練させるトレーニング実行を開始する方法を示している。 "coco8 "データセットの理解を50回精緻化します。将来の進歩のために、Ultralytics 現在 YOLO26を開発中である。 2025年後半を予定している。


