エポック
読み: えぽっく
訓練データセット全体を 1 回通して学習する単位。モデルの学習進捗や収束状況を測る基本的な指標として使用される。
エポック (Epoch) は、ニューラルネットワークの学習において訓練データセット全体を 1 巡する単位である。例えば ImageNet の訓練セット約 128 万枚をバッチサイズ 256 で学習する場合、1 エポックは約 5,000 イテレーション (128 万 / 256) に相当する。一般的な画像分類モデルは 90-300 エポックの学習を必要とする。
エポック数は学習の十分さを制御するハイパーパラメータである。少なすぎると未学習 (Underfitting) でモデルがデータのパターンを捉えきれず、多すぎると過学習 (Overfitting) で訓練データに過度に適合し汎化性能が著しく低下する。適切なエポック数の決定は実験的に行う。
- 学習曲線: エポックごとの訓練損失と検証損失をプロットしたグラフ。訓練損失が下がり続ける一方で検証損失が上昇し始めた時点が過学習の兆候であり、学習を停止すべきタイミングを示す
- 早期終了: 検証損失が一定エポック数 (patience、例えば 10 エポック) 改善しない場合に学習を自動停止する手法。不要な計算を省き過学習を防止する
- 学習率スケジューリング: エポックの進行に応じて学習率を減衰させる。ResNet の学習では 30 エポックごとに学習率を 1/10 にするステップ減衰が一般的である
転移学習ではファインチューニングに必要なエポック数が大幅に減少し、事前学習済みモデルを 10-30 エポック程度で新しいタスクに適応させられる。データ拡張を併用すると実質的なデータ量が増えるため、1 エポックあたりの学習効果が高まり、必要な総エポック数を抑制できる。