機械学習におけるエポックの概念とモデル訓練への影響を学びましょう。最適化手法を探求し、過学習を回避しながら、Ultralytics 簡単に訓練できます。
エポックとは、機械学習アルゴリズムが学習データセット全体を一巡する完全なサイクルを表す。 この過程において、モデルはデータ内の各サンプルに基づいて内部パラメータを更新する機会を 正確に一度だけ持つ。深層学習の文脈では、 ニューラルネットワークが複雑なパターンを効果的に学習するには 単一のパスではほとんど不十分である。したがって、トレーニングは通常複数のエポックを含み、学習アルゴリズムが反復的に 理解を洗練させ、予測と実際の真値との誤差を最小化するよう促す。
トレーニングの主な目的は、特定の損失関数を最小化するためにモデル重みを調整することである。確率的勾配降下法(SGD) Adam 最適化アルゴリズムは、各エポック中に計算された誤差を用いてこれらの調整を導く。エポック数が増加するにつれ、モデルは一般的に高い誤差状態(ランダムな推測)から低い誤差状態(学習されたパターン)へと移行する。
ただし、適切なエポック数の選択は、 ハイパーパラメータ調整において極めて重要な側面である。
初心者が「エポック」と関連用語を混同することはよくある。これらの概念の階層構造を理解することは、 トレーニングループを正しく設定するために不可欠である:
必要なエポック数は、タスクの複雑さとデータのサイズによって大きく異なります。
Ultralyticsのような現代的なフレームワークを使用する場合 Ultralytics YOLOを使用する場合、 エポック数の定義はトレーニングコマンド内の単純な引数です。 Ultralytics のようなツールは、各エポックにおける損失曲線を可視化し、 最適な停止点を特定するのに役立ちます。
以下の例は、YOLO26モデルのトレーニング時にエポック数を設定する方法を示しています:
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train the model for 50 epochs
# The 'epochs' argument determines how many times the model sees the entire dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
このスニペットでは epochs=50 引数はトレーニングエンジンに以下を順に実行するよう指示します
coco8.yaml データセットを50回独立して処理する。各サイクルにおいて、モデルは
前方伝播 そして
バックプロパゲーション その検出能力を向上させるため。