Yolo 深圳
深セン
今すぐ参加
用語集

エポック

機械学習におけるエポックの概念とモデル訓練への影響を学びましょう。最適化手法を探求し、過学習を回避しながら、Ultralytics 簡単に訓練できます。

エポックとは、機械学習アルゴリズムが学習データセット全体を一巡する完全なサイクルを表す。 この過程において、モデルはデータ内の各サンプルに基づいて内部パラメータを更新する機会を 正確に一度だけ持つ。深層学習の文脈では、 ニューラルネットワークが複雑なパターンを効果的に学習するには 単一のパスではほとんど不十分である。したがって、トレーニングは通常複数のエポックを含み、学習アルゴリズムが反復的に 理解を洗練させ、予測と実際の真値との誤差を最小化するよう促す。

最適化における時代の役割

トレーニングの主な目的は、特定の損失関数を最小化するためにモデル重みを調整することである。確率的勾配降下法(SGD) Adam 最適化アルゴリズムは、各エポック中に計算された誤差を用いてこれらの調整を導く。エポック数が増加するにつれ、モデルは一般的に高い誤差状態(ランダムな推測)から低い誤差状態(学習されたパターン)へと移行する。

ただし、適切なエポック数の選択は、 ハイパーパラメータ調整において極めて重要な側面である。

  • エポック数が少なすぎる:これにより 過学習が生じ、モデルがデータの 根本的な傾向をまだ捉えられていない状態になる可能性があります。
  • エポック数が多すぎる:これはしばしば 過学習を引き起こし、モデルが新しいデータへの 汎化を行う代わりに、訓練ノイズを記憶してしまう。 これを防ぐため、開発者は検証データでの性能を 監視し、汎化が改善しなくなった時点で 訓練を停止する早期停止などの手法を 採用することが多い。

エポック vs バッチ vs 反復

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

  • エポック:データセット全体を1回完全に処理すること。
  • バッチ:同時に処理されるデータセットのサブセット。データセットは通常、GPU に一度に収めるには大きすぎるため、 バッチサイズによって定義されるより小さなグループに分割される。
  • 反復処理:モデルの重みに対する単一の更新。データセットが1,000枚の画像を含み、バッチサイズが100の場合、1エポックを完了するには10回の反復処理が必要となる。

実際のアプリケーション

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

  • 医療画像解析: MRIスキャンにおける腫瘍検出などの医療画像解析では、精度が最も重要である。 これらのタスク向けに訓練されたモデルは、しばしば数百エポックにわたって実行される。 この長時間の訓練により、 畳み込みニューラルネットワーク(CNN)が 悪性組織と正常組織を区別する微妙な異常を識別できるようになり、命を救う可能性を秘めている。
  • 自動運転: 自律走行車両においては、物体検出モデルが 歩行者、標識、その他の車両を確実に識別できなければならない。こうした堅牢なシステムの訓練には通常、 大規模なデータセットが必要となる。 COCO Objects365のような大規模データセットが必要となる。データセットの規模は膨大だが、 多様な天候や照明条件に汎化できる解に収束させるには、モデルは依然として複数エポックを要する。

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

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回独立して処理する。各サイクルにおいて、モデルは 前方伝播 そして バックプロパゲーション その検出能力を向上させるため。

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

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加