用語集

時代

機械学習におけるエポックについて学びましょう。エポックがモデル学習に与える影響、オーバーフィッティングの防止、Ultralytics YOLO 。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

機械学習(ML)、特にディープラーニング(DL)モデルの学習において、エポックは学習データセット全体を1回完全に通過することを表す。これは、モデルがすべての学習例を1回見て学習する完全なサイクルを意味する基本的な概念だ。通常、トレーニングには複数のエポックが含まれ、モデルは内部パラメーター(モデルの重み)を反復的に改良し、トレーニング対象のタスクのパフォーマンスを向上させることができる。

エポックの仕組み

モデル学習中、データセットはメモリの制約上、一度に処理するには大きすぎるのが普通だ。そのため、バッチと呼ばれる小さな塊に分割される。モデルは一度に1つのバッチを処理し、誤差(損失)を計算し、勾配降下のような最適化アルゴリズムを使って重みを更新する。エポックは、モデルが訓練データセット全体をカバーするすべてのバッチを処理した後に完了する。このプロセスを複数のエポックにわたって繰り返すことで、モデルはデータ内の複雑なパターンや関係をより効果的に学習することができる。

エポック対反復対バッチサイズ

エポックを関連用語と区別することは重要だ:

  • エポック:トレーニングデータセット全体を1サイクル。
  • バッチサイズモデルの重みが更新される前に処理されるトレーニングサンプルの数。
  • 反復:モデルの重みの1回の更新。イテレーションは、データの1バッチを処理する。

学習データセットが10,000サンプルでバッチサイズが100の場合、1エポックは100回の反復で構成される(10,000サンプル/バッチあたり100サンプル)。

トレーニングにおけるエポックの重要性

複数回のエポックにわたってモデルをトレーニングすることは、収束、つまりモデルの性能が最適または最適に近い安定した状態に達するために極めて重要である。各エポックはモデルにデータ・パターンから学習するチャンスを与える。しかし、エポック数は重要なハイパーパラメータである。

  • エポック数が少なすぎる:モデルの学習が十分でないため、アンダーフィッティングが発生し、トレーニングデータでもパフォーマンスが低下する可能性がある。
  • エポック数が多すぎる:モデルは、ノイズや特定の詳細を含め、トレーニングデータを学習しすぎる可能性があり、オーバーフィッティングにつながる。オーバーフィッティングしたモデルは、訓練データではうまく機能するが、未経験データ(検証データまたは実世界の例)ではうまく機能しない。

トレーニング中に別の検証セットでパフォーマンスメトリクスを監視することで、最適なエポック数を決定することができます。多くの場合、検証のパフォーマンスが向上しなくなったときにトレーニングを停止する早期停止などのテクニックを使用します。

実例

  1. Ultralytics YOLO物体検出:YOLOトレーニングするとき Ultralytics YOLOモデルを YOLOv8YOLO11のようなYOLOモデルを、COCOのようなデータセットで使用する場合、100エポックの学習を指定することができます。各エポックにおいて、モデルはCOCOトレーニング画像のセット全体を処理し(バッチに分割される)、オブジェクトをよりよく識別し、位置を特定するために重みを調整する。Ultralytics HUBのようなプラットフォームは、この学習プロセスを管理し、エポック間の進捗を監視するためのツールを提供します。
  2. 自然言語処理(NLP)顧客レビューのデータセットに対するセンチメント分析のためのBERT のようなモデルのトレーニングには、複数のエポックが必要です。例えば、5エポックのトレーニングは、モデルがすべてのレビューを5回読み通すことを意味します。各パス(エポック)で、Hugging Face Transformersのようなライブラリを使用し、以下のようなフレームワークを経由することがよくあります。 PyTorchまたは TensorFlowモデルは、レビューをポジティブ、ネガティブ、ニュートラルに分類する能力を向上させる。

エポックはMLにおける反復学習の要であり、オーバーフィッティングのリスクに対して、データに十分に触れる必要性のバランスをとる。多くの場合、注意深い実験とモニタリングを通じて適切なエポック数を選択することが、効果的なモデルを構築する鍵となる。Google 機械学習用語集などのリソースでより多くの定義を見つけることができます。

すべて読む