エポックEpoch
学習データ全体を一回すべて見終える単位
- エポックは、用意した学習データを最初から最後まで一回すべて見終えたことを数える単位です。
- 一周だけでは足りません。同じデータを何周もするあいだに、値が少しずつ落ち着いていきます。
- 一周のあいだにも値は何度も直されます。データをまとまりに分け、まとまりごとに一歩ずつ動かすからです。
- 周回数が少なすぎると学びが足りず、多すぎるとデータをまるごと覚えてしまいます。ちょうどよい地点が別にあります。
- 一周を始めるたびにデータの順番を混ぜます。順番まで覚えてしまうのを防ぐためです。
目次
1たとえで理解する
プールで25メートルのレーンを端から端まで一回泳ぐと一周です。この一周が練習の基本単位です。最初の一周だけでフォームが固まることはありません。水をつかむ感覚も、息継ぎのリズムも、何周もしてはじめて少しずつ身につきます。
一周のあいだ、ただ流されているわけでもありません。腕をかくたびに手首の角度を少し直し、キックの幅も変えてみます。一周の中に、こうした手直しが何十回も入っています。
エポックはこの一周です。用意したデータを最初から最後まで一回すべて見終えたら一周が終わり、また最初のデータに戻って二周目を始めます。何周するかは、水に入る前に決めておきます。
2くわしく
一周の中に一歩が何度も入っている
データを一件見るたびに値を直すと揺れすぎ、データ全体を見終えてから一回だけ直すと遅すぎます。そこでデータをちょうどよい大きさのバッチに分け、バッチを一つ見るたびに値を一歩ずつ動かします。
データが一万件でバッチが百件ずつなら、一周に百歩入ります。十周すれば千歩になります。だから学習がどれだけ進んだかを話すときは、周回数と歩数を一緒に見ます。同じ周回数でもバッチを小さく取っていれば、歩数はずっと多く踏んだことになります。
一周が終わるたびに学習をいったん止めて成績を測るのも、この仕組みのおかげです。取り分けておいたデータを取り出してこれまで学んだことで解かせ、その点数を周回番号と一緒に書き留めます。この記録が積み重なると、学習がうまく進んでいるかどうかが一目で分かります。一周の途中で成績を測らないのは、値がまだ動いている最中でその瞬間の点数があまり意味を持たないからです。
何周するか
決まった答えはありません。データが少なくモデルが大きければ何十周もすることがあり、データがとても多ければ一周だけで終える場合もあります。とても大きな言語モデルでは、データがあまりに多くて一周を通しきれないこともよくあります。
周回数が足りないと、モデルはまだ学ぶべきことを学び終えていません。逆に多く回しすぎると、データにあるものをまるごと覚えてしまい、初めて見るデータの前でかえって成績が落ちます。そのため実際には周回数を余裕を持って決めておき、成績が悪くなり始めた地点で止める方法を一緒に使います。何周が最適かは、始める前に計算だけで求めることはできず、実際に回してみて成績の動きを見ながら判断するのが普通です。
一周ごとに順番を混ぜる
毎周データを同じ順番で入れると、モデルは順番に付いた癖まで身につけてしまいます。前の方にまとまっていた種類を先に学び、後ろの種類はいつも後回しになる、という偏りが起きることもあります。
そこで一周を始めるたびにデータを混ぜ、バッチを組み直します。同じデータでも毎周少し違う組み合わせで出会うことになるので、足元の勾配が毎回わずかに変わり、中途半端な場所に居座る危険も減ります。
データをためておいた順番に意味がある場合が多いことも理由です。種類ごとに整理したデータをそのまま入れると、しばらく同じ種類ばかり見続けることになり、その区間では値が一方に偏ります。混ぜること一つで、こうした偏りがなくなります。混ぜる作業そのものは値を直すわけではありませんが、値の直り方を安定させる裏方の役目を果たしています。
周回数をなぜわざわざ数えるのか
学習がどれだけ進んだかを時間で測ると、機械の性能によって値が変わります。周回数で測れば、データを何回見たかがそのまま表れるので、違う環境で回した学習どうしも比べられます。
周回数は成績グラフの横軸にも使われます。学習データについての成績と取り分けたデータについての成績を周ごとに打ってみると、二本の線がいつから開き始めるかが見えてきます。いつ止めるかを決める根拠は、ここから出てきます。同じ理由で、他の人が発表した学習の様子と自分の学習の様子を見比べるときも、周回数をそろえて見るのが基本です。
3もう少し正確に
一エポックは、学習データ全体がモデルを一回通過した状態を指します。歩数で数えると、データ件数をバッチサイズで割った値の分だけが一エポックに入ります。逆に歩数だけを決めておき、エポックを数えない方式もあります。データが絶えず新しく入ってくる状況では「全体」というものがなく、周という概念が成り立たないためです。学習設定に書く周回数は最大値である場合も多く、その数を使い切る前に止める仕組みがあわせて掛けられていることがよくあります。
たとえがずれる点もあります。プールのレーンは長さが決まっていますが、学習データは途中で増えたり選別されたりします。また人は何周もすると疲れますが、モデルは疲れない代わりに同じデータを見続けるとそのデータだけに合う答えを固めてしまいます。何周もすることが必ずしも良いとは限らない点で、人の練習とは性質が違います。
4やってみる
5よくある誤解
エポックを多く回すほどモデルが良くなると思われがちですが、実際にはある地点を超えると初めて見るデータへの成績がかえって落ちます。
エポック一回で値が一回だけ直ると考えられがちですが、実際には一周の中でバッチの数だけ何度も直ります。
エポック数だけ見れば学習量が分かると思われがちですが、実際にはバッチサイズとデータ量まで一緒に見てはじめて実際の歩数が分かります。
7ひとこと要約
つまりエポックは用意したデータを最初から最後まで一回見終えたことを数える単位で、何周するかが学習の成否を分けます。
誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02