【えぽっく】

エポック とは?

最終更新:
💡 訓練データを一巡する、学習の区切り

機械学習で訓練データを一巡する学習の区切り。バッチ・ステップとの違い、エポック数と検証、設定で区切りが変わる場合を解説します。

📌 このページのポイント
エポック:訓練データを一巡する区切り訓練データ12件を4件ずつ扱う例バッチ14件バッチ24件バッチ34件3ステップで一巡 → 1エポック終了次のエポックへ進む場合もある回数だけで決めず、検証データでも評価設定したステップ数で区切る場合もある
矢印は三つのバッチを順に処理する、この例の学習ステップです。実際のデータの順番やエポックの区切りは、供給方法と設定によって変わります。
ひよこ ひよこ
エポックは、学習を1回すること?
ペンギン先生 ペンギン先生
通常は、訓練データ全体を一通り使う区切りだよ。教科書を一巡するようなイメージ。1個のデータだけを処理することや、モデルを1回更新することとは区別しよう。
ひよこ ひよこ
バッチとは、何が違うの?
ペンギン先生 ペンギン先生
バッチは一度に扱うデータのまとまり。図では12件を4件ずつの3バッチに分けている。各バッチを処理する学習ステップを3つ進めると、12件を一巡して1エポックが終わる例だよ。
ひよこ ひよこ
次のエポックでは、また同じデータを使う?
ペンギン先生 ペンギン先生
同じ訓練データを繰り返し使うことがあるよ。重みは前の学習から引き継いで調整する。データの順番を入れ替える設定もあるので、毎回同じ順番や同じ計算結果になるという意味ではないんだ。
ひよこ ひよこ
エポック数を増やすほど、良いモデルになる?
ペンギン先生 ペンギン先生
必ず良くなるとは限らないよ。訓練データにはよく合っても、別のデータでの性能が悪くなる過学習がある。必要な回数はモデル、データ、学習率等によるので、一律に何回が正解とは決めないんだ。
ひよこ ひよこ
いつ止めればよいの?
ペンギン先生 ペンギン先生
学習に使わない検証データの指標も見よう。EarlyStoppingは、指定した指標の改善が止まったら終了する仕組み。何を監視するか、何回待つか、良かった時点の重みに戻すかは設定によるよ。
もっと詳しく知りたい人へ

1エポックは、いつも全データを使う?

通常の説明では一巡ですが、Kerasのsteps_per_epochのように、指定したステップ数で区切る設定もあります。無限に繰り返すデータを渡す場合等は、この設定が必要になります。エポック数だけでなく、実際に扱ったデータとステップ数を確認します。

早期終了なら、必ず最良のモデルが残る?

監視した指標と条件に基づく終了であり、未知のデータでの性能を保証するものではありません。Kerasのrestore_best_weightsは既定でfalseです。良かった時点の重みに戻したい場合はその設定や保存方法を確認し、最終評価用のデータでも確かめます。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「エポック」って出てきたら「訓練データを一巡する、学習の区切り」と思えばだいたいOK!
📖 おまけ:英語の意味
「Epoch」 = 期間や時期の区切り
💬 ここでは機械学習での意味を扱います。学習を何巡したかを表す単位ですが、使うデータの供給方法や設定によって区切り方が変わる場合があります。

参考資料

← 用語集にもどる