機械学習におけるエポックについて学びましょう。エポックがモデルのトレーニングにどのような影響を与え、オーバーフィッティングを防ぎ、Ultralytics YOLOでパフォーマンスを最適化するのか。
機械学習(ML)では、エポックは学習アルゴリズムを通して学習データセット全体を1回完全に通過することを表す。これはニューラルネットワーク(NN)を学習する反復プロセスにおける基本的な概念であり、モデルはデータから繰り返し例を見て学習する。エポック数は、モデルが訓練情報の全セットから何回学習するかを決定する重要なパラメータであり、モデルの最終的な性能と品質に直接影響します。
モデル学習の主な目的は、モデルがデータからパターンを学習できるようにすることである。これは、モデルの重みとして知られるモデルの内部パラメータを調整して、損失関数を最小化することで達成される。損失関数は、モデルの予測と実際のグランドトゥルースとの誤差を定量化する。1回のエポックの間に、モデルはすべてのデータサンプルを処理し、確率的勾配降下(SGD)のような最適化アルゴリズムがこれらの重みを更新する。
モデルを複数のエポックにわたってトレーニングすることで、そのパラメータを繰り返し改良することができる。回数を重ねるごとに、理論的には、画像分類であれ物体検出であれ、モデルはそのタスクにおいてより優れたものになるはずだ。このプロセスは、PyTorchや TensorFlowなどの一般的なディープラーニングフレームワークを使用して管理される。
関連はあるが、これらの用語はトレーニングプロセスの異なる側面を表しており、しばしば混同される。
例えば、データセットに10,000枚の画像があり、バッチサイズが100の場合、1エポックは100回の反復で構成される(10,000枚の画像÷バッチあたり100枚の画像)。
適切なエポック数を選択することは、ハイパーパラメータ・チューニングの重要な部分である。これには、2つのよくある問題を避けるためのバランスを見つけることが含まれる:
オーバーフィッティングに対抗するための一般的なテクニックは早期停止であり、検証セットでのモデルのパフォーマンスが向上しなくなった時点で学習を停止する。学習の進捗は、TensorBoardのようなツールや、Ultralytics HUBのようなプラットフォームを使って監視することができます。
エポックという概念は、ディープラーニングのアプリケーションでは普遍的なものだ。
自律走行:自律走行車の 物体検出モデルは、Argoverseのような巨大なデータセットで学習される。Ultralytics YOLO11のようなモデルは、50~100エポック学習される。各エポックの後、平均平均精度(mAP)のようなメトリクスを使用して、検証セットでのパフォーマンスが測定される。エンジニアは、展開前に、速度と精度の最高のバランスを提供するエポックからモデルを選択します。
医療画像解析:脳スキャンにおける腫瘍検出モデルを、特殊な医療画像データセットで学習する。このようなデータセットは小さいため、モデルは数百エポック学習される。オーバーフィッティングを防ぐために、データ増強のような技術が使用され、各エポック後に検証損失が注意深く監視される。これにより、最終的なモデルが新しい患者からのスキャンに対して良好に一般化されることが保証される。このような重要なアプリケーションで成功するためには、確立されたモデルトレーニングのコツに従うことが重要である。