YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

エポック

機械学習におけるエポックとは何か、それがモデルトレーニングにどのように影響するかを学びます。最適化を探求し、過学習を回避し、Ultralytics YOLO26を簡単にトレーニングしてください。

エポックとは、機械学習アルゴリズムが トレーニングデータセット全体を完全に一巡することを指します。このプロセス中、モデルはデータ内の各サンプルに基づいて内部パラメータを正確に一度更新する機会を得ます。 ディープラーニングの文脈では、 ニューラルネットワークが複雑なパターンを効果的に学習するには、1回のパスではほとんど不十分です。そのため、トレーニングは通常、複数回のエポックを伴い、学習アルゴリズムが理解を反復的に洗練させ、予測と実際のグラウンドトゥルースとの間の誤差を最小限に抑えることを可能にします。

最適化におけるエポックの役割

トレーニングの主な目標は、特定のモデルの重みを調整して、特定の損失関数を最小化することです。stochastic gradient descent (SGD)Adam optimizerなどの最適化アルゴリズムは、各エポック中に計算された誤差を使用してこれらの調整をガイドします。エポック数が増加するにつれて、モデルは一般的に高い誤差の状態(ランダムな推測)から低い誤差の状態(学習されたパターン)へと移行します。

しかし、エポックの正しい数を選択することは、ハイパーパラメータチューニングの重要な側面です。

  • エポック数が少なすぎる:これはアンダーフィッティングにつながる可能性があり、モデルがデータの根本的な傾向をまだ捉えられていない状態です。
  • エポック数が多すぎる:これはしばしばオーバーフィッティングにつながり、モデルが新しいデータに汎化するのではなく、トレーニングノイズを記憶してしまう状態です。これを防ぐため、開発者はしばしば検証データでのパフォーマンスを監視し、汎化性能の向上が止まったときにトレーニングを停止する早期停止などの手法を採用します。

エポック vs バッチ vs 反復

初心者が「エポック」を関連用語と混同することはよくあります。これらの概念の階層を理解することは、トレーニングループを正しく設定するために不可欠です。

  • エポック: データセット全体を1回完全に処理すること。
  • バッチ: データセットの一部を同時に処理する単位です。データセットは一度にGPUメモリに収まらないほど大きいことが多いため、バッチサイズで定義されたより小さなグループに分割されます。
  • Iteration: モデルの重みに対する1回の更新。データセットに1,000枚の画像があり、バッチサイズが100の場合、1エポックを完了するには10回のイテレーションが必要です。

実際のアプリケーション

必要となるエポック数は、タスクの複雑さとデータのサイズによって大きく異なります。

  • 医療画像解析: MRIスキャンにおける腫瘍のdetectなど、医療画像解析では精度が最も重要です。これらのタスク用に訓練されたモデルは、しばしば数百エポックにわたって実行されます。この広範な訓練により、畳み込みニューラルネットワーク (CNN)は、悪性組織と健康な組織を区別する微妙な異常を識別できるようになり、命を救う可能性を秘めています。
  • 自動運転: 自律走行車の場合、object detectionモデルは歩行者、標識、その他の車両を確実に識別する必要があります。これらの堅牢なシステムをトレーニングするには、通常、COCOObjects365のような大規模なデータセットが関与します。データセットのサイズは膨大ですが、モデルは多様な天候や照明条件にうまく汎化するソリューションに収束するために、依然として複数のエポックを必要とします。

コードによるトレーニングサイクルの管理

Ultralytics YOLOのような最新のフレームワークを使用する場合、エポック数を定義することは、トレーニングコマンドにおける簡単な引数です。Ultralytics Platformのようなツールは、各エポックでの損失曲線を視覚化し、最適な停止点を特定するのに役立ちます。

以下の例は、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回個別に処理します。各サイクル中に、モデルは実行します。 順伝播 そして バックプロパゲーション そのdetect能力を洗練するため。

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

未来の機械学習で、新たな一歩を踏み出しましょう。