エポックとは

えぽっくepoch別名 Epoch

1行定義

エポックとは、機械学習の訓練で、訓練データ全体をひと通り1回使って学習することを1と数える単位のことです。

くわしく

エポックは、学習がどこまで進んだかを数える単位です。訓練データのすべてを1回ずつ使い切ると「1エポック」と数えます。「30エポック学習した」は、訓練データ全体を30周したという意味です。

イテレーションとの違い

ニューラルネットワークの学習では、データをいくつかずつまとめて勾配を計算し、重みを更新します。重みを1回更新する単位をイテレーションと呼びます。ミニバッチ学習では、1エポックあたりのイテレーション数は次の式で決まります。

  • 1エポックのイテレーション数 = 訓練データ数 ÷ バッチサイズ

1万件のデータをバッチサイズ100で学習すると、1エポックは100イテレーションです。バッチサイズを大きくすると、1エポックあたりの更新回数は減ります。割り切れない場合の端数の扱いは、実装によって異なります。

学習方法による違いも押さえておきます。データ全体で1回だけ勾配を計算するバッチ学習では、1エポックの更新は1回です。1件ずつ更新するオンライン学習では、1エポックでデータ数と同じ回数だけ更新します。

なぜ何周もするのか

勾配降下法は、1回の更新で重みを少しずつしか動かしません。1周だけでは誤差が十分に下がらないため、同じデータを何周も使います。エポックごとにデータの順番を並べ替え(シャッフルし)、ミニバッチの組み合わせを変えることもよく行われます。

エポック数の決め方

エポック数は、設計者が決めるハイパーパラメータです。少なすぎると学習が足りません。多すぎると、訓練データに合わせすぎる過学習が起きます。そこで、エポックごとに検証データで誤差を測り、悪化し始めたところで学習を止める早期終了がよく使われます。

覚え方

「エポックは周回数、イテレーションは更新回数」と覚えます。

G検定での出題

イテレーション(重みの更新回数)との違い、データ数とバッチサイズから1エポックあたりの更新回数を求める計算、エポック数を増やしすぎたときの過学習と早期終了との関係が問われます。

混同しやすい用語

用語意味
イテレーション機械学習の訓練で、重みを1回更新することを1と数える単位

◯×チェック

  1. 訓練データ5,000件を、バッチサイズ50のミニバッチ学習で10エポック学習すると、重みは合計1,000回更新される。

    答えを見る

    答え ◯ 正しい

    1エポックの更新回数は、データ数÷バッチサイズで100回です。10エポックなら100×10で1,000回になります。

  2. 訓練データ全体で1回だけ勾配を計算するバッチ学習では、1エポックで、訓練データの件数と同じ回数だけ重みが更新される。

    答えを見る

    答え × 誤り

    バッチ学習では、全データで勾配を1回計算して1回更新するので、1エポックの更新は1回です。データの件数と同じ回数だけ更新するのは、1件ずつ更新するオンライン学習です。

  3. エポック数は多いほど汎化性能が高くなるため、計算資源が許す限り大きく設定するのがよい。

    答えを見る

    答え × 誤り

    エポックを重ねると、訓練誤差は下がり続けても、検証誤差はある時点から上がることがあります。これが過学習です。検証誤差が悪化し始めたところで止める早期終了がよく使われます。

練習問題

エポックの問題(3問)
  1. バッチサイズと更新回数
  2. ミニバッチの並び順の影響
  3. 拡張を加えるタイミング

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術16

出典

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習