エポック

Epoch

エポック(Epoch)とは、訓練データセット全体をモデルが1回通しで学習することを指す単位です。例えば、10エポック学習するということは、全訓練データを10回繰り返し学習することを意味します。

エポック数の決め方

適切なエポック数は、モデルの複雑さやデータセットの規模によって異なります。エポック数が少なすぎると未学習、多すぎると過学習が発生します。検証データの損失を監視し、過学習の兆候が現れたら学習を止める早期終了(Early Stopping)がよく用いられます。

表:エポックの要点まとめ
ひとことで言うと訓練データ全体を1回学習し終えたことを表す単位。
どう決めるか検証データの損失が下がらなくなったところで止める(早期終了)。
注意点多すぎると過学習、少なすぎると未学習。学習曲線を見て判断する。

エポック・バッチ・イテレーションの関係

1エポックは複数のイテレーション(反復)で構成されます。例えば、10,000件のデータをバッチサイズ100で学習する場合、1エポックは100イテレーションとなります。エポック×バッチ数=総イテレーション数という関係があります。

図:エポックとバッチの関係
1訓練データ1000件全体のデータ
▶
2バッチに分ける100件ずつなら10個
▶
3バッチごとに更新10回パラメータ更新
▶
41エポック完了全データを1周
↺ 必要なエポック数だけ2〜4をくり返す