機械学習におけるエポックについて学びましょう。エポックがモデル学習に与える影響、オーバーフィッティングの防止、Ultralytics YOLO 。
機械学習(ML)、特に深層学習モデルの学習の文脈では、エポックは、学習アルゴリズムを通して学習データセット全体の1回の完全な通過を表す。モデルの学習は、データを繰り返し処理することでモデルがパターンを学習する反復プロセスである。エポックは、アルゴリズムがデータセット全体を処理する回数を定義する基本的なハイパーパラメータであり、モデルがデータ内の各例から複数回学習することを可能にする。
学習プロセスにおいて、モデルの内部パラメータ(重み)は、予測における誤差に基づいて調整される。この調整は通常、勾配降下法やその亜種(アダム・オプティマイザーなど)のような最適化アルゴリズムを用いて行われます。1回のエポックは、トレーニングデータセットのすべてのサンプルが、モデルの内部パラメータを1回更新する機会を得たことを意味する。大規模なデータセットの場合、データセット全体を一度に処理するのは計算コストがかかるため、データをバッチと呼ばれる小さな塊に分割することが多い。
エポックを関連用語と区別することは重要だ:
本全体がデータセット、1章がバッチ、1章を読むのがイテレーション、本全体を隅から隅まで読むのが1エポックだ。
エポック数は、モデルが全データセットから何回学習するかを決定するため、重要なハイパーパラメータである。
適切なバランスを見つけることが、優れたモデル性能と汎化を達成する鍵である。これには多くの場合、トレーニング中に別の検証データセットでモデルのパフォーマンスをモニターすることが含まれる。
最適なエポック数は、データの複雑さ、データセットのサイズ、モデル・アーキテクチャ、学習率によって異なる。一般的なアプローチには以下のようなものがある:
エポックは、ほとんどのディープラーニング・フレームワークで標準的なパラメーターだ:
fit
メソッドを使用する。エポックはMLにおける反復学習の基礎であり、オーバーフィッティングのリスクに対して十分なデータ露出の必要性のバランスをとる。スタンフォード大学のCS231nコースや Machine Learning Masteryブログのようなリソースで議論されているように、しばしば注意深い実験とモニタリングを通じて、適切なエポック数を選択することが、効果的なモデルを構築する鍵となる。Google Machine Learning Glossaryのようなリソースで、より多くの定義を見つけることができる。