【えぽっく】
エポック とは?
最終更新:
💡 訓練データを一巡する、学習の区切り
機械学習で訓練データを一巡する学習の区切り。バッチ・ステップとの違い、エポック数と検証、設定で区切りが変わる場合を解説します。
📌 このページのポイント
エポックは、学習を1回すること?
通常は、訓練データ全体を一通り使う区切りだよ。教科書を一巡するようなイメージ。1個のデータだけを処理することや、モデルを1回更新することとは区別しよう。
バッチとは、何が違うの?
バッチは一度に扱うデータのまとまり。図では12件を4件ずつの3バッチに分けている。各バッチを処理する学習ステップを3つ進めると、12件を一巡して1エポックが終わる例だよ。
次のエポックでは、また同じデータを使う?
エポック数を増やすほど、良いモデルになる?
いつ止めればよいの?
もっと詳しく知りたい人へ
1エポックは、いつも全データを使う?
通常の説明では一巡ですが、Kerasのsteps_per_epochのように、指定したステップ数で区切る設定もあります。無限に繰り返すデータを渡す場合等は、この設定が必要になります。エポック数だけでなく、実際に扱ったデータとステップ数を確認します。
早期終了なら、必ず最良のモデルが残る?
監視した指標と条件に基づく終了であり、未知のデータでの性能を保証するものではありません。Kerasのrestore_best_weightsは既定でfalseです。良かった時点の重みに戻したい場合はその設定や保存方法を確認し、最終評価用のデータでも確かめます。
まとめ:ざっくりこれだけ覚えればOK!
「エポック」って出てきたら「訓練データを一巡する、学習の区切り」と思えばだいたいOK!
📖 おまけ:英語の意味
「Epoch」 = 期間や時期の区切り
💬 ここでは機械学習での意味を扱います。学習を何巡したかを表す単位ですが、使うデータの供給方法や設定によって区切り方が変わる場合があります。