1. 定義と概要
イテレーションとは、ミニバッチ学習(訓練データを少量ずつのまとまりに分けて学習する方法)において、ミニバッチ1個分のデータを使ってニューラルネットワークのパラメータ(重み。ネットワークが学習によって調整する内部の数値)を1回更新する処理の単位です。訓練データを分割したミニバッチの数だけこの更新処理が繰り返され、全ミニバッチを処理し終えると訓練データを1周したことになり、1エポック(訓練データ全体を1周学習したことを数える単位)が完了します。
具体例として、訓練データ1,000件をバッチサイズ(1回のパラメータ更新に使うデータの件数)200件で学習する場合を考えます。訓練データは200件ずつ5つのまとまりに分かれ、そのまとまりごとに1回ずつパラメータが更新されるため、1エポックあたりのイテレーション数は1,000÷200=5回になります。
従来のバッチ学習は、訓練データ全件を一度にまとめて使い1回だけパラメータを更新する方式でした。しかし、データ量が大きいとメモリ消費や計算コストが増大するという課題があります。
そこで訓練データを少量ずつのまとまりに分割し、ミニバッチごとに何度もパラメータを更新するミニバッチ学習が主流になりました。このミニバッチ1個分の更新処理を数える単位がイテレーションであり、ミニバッチ学習の反復回数を表します。
2. 試験対策ポイント
G検定では、1エポックあたりのイテレーション数=訓練データ件数÷バッチサイズという関係式を使った計算問題が重要な論点です。訓練データ数とバッチサイズから、イテレーション数やエポック数を逆算する計算パターンが柱になります。求められているのがイテレーション数なのかエポック数なのかによって、同じ数値から導く答えが変わる点にも注意が必要です。
イテレーションとエポックは、数える対象が異なります。イテレーションはパラメータが更新された回数を、エポックは訓練データを何周したかという回数を指し、この違いは取り違えやすい点です。
バッチサイズとイテレーション数は逆の関係にあり、バッチサイズを大きく設定すると1回の更新に使うデータ量が増えるため、同じ訓練データ量でも必要なイテレーション数は少なくなります。逆にバッチサイズを小さくすると、イテレーション数は増えます。
バッチサイズやエポック数は、学習を始める前に人が設定するハイパーパラメータ(学習を始める前に人が設定しておく調整用の数値)です。一方でイテレーション数は、訓練データ件数とバッチサイズから結果的に決まる値であり、こうした位置づけの違いも押さえておきたいポイントです。人が決める値と計算で決まる値という区別は、選択肢を読み解くうえでの手がかりになります。
3. 関連概念との比較・相違点
まぎらわしい3つの用語は、何を数える単位なのかと、その値がどう決まるのかを並べて置くと区別しやすくなります。
| 用語 | 何を表すか | 決まり方 |
|---|---|---|
| イテレーション | パラメータを更新した回数 | 訓練データ件数÷バッチサイズで結果的に決まる |
| エポック | 訓練データを何周したかという周回数 | 人が設定するハイパーパラメータ |
| バッチサイズ | 1回のパラメータ更新に使うデータ件数 | 人が設定するハイパーパラメータ |
エポックとの最大の違いは、数える対象にあります。1エポックは、訓練データ件数をバッチサイズで割った回数分のイテレーションに相当するという関係にあり、問題文が「何イテレーション」を聞いているのか「何エポック」を聞いているのかによって、計算の答えが変わります。
バッチサイズとの最大の違いは、役割にあります。バッチサイズを起点に、訓練データ件数との割り算からイテレーション数が導かれるという順序になります。
同じ訓練データ件数であっても、設定するバッチサイズが変われば導かれるイテレーション数も変わります。そのため両者は独立した値ではなく、バッチサイズが決まってはじめてイテレーション数が定まる従属の関係にあります。
4. ビジネス・実務での活用シナリオ
AI開発・モデル学習全般の現場では、学習ログの進捗表示を確認しながら損失値(モデルの予測と正解のズレを数値化したもの。小さいほど学習がうまく進んでいることを示す)の推移を監視します。学習が想定どおり収束(損失値が下がりきって安定すること)しているかも、あわせて把握します。フレームワークによっては、この進捗表示の単位に「イテレーション」や「ステップ」という名称が使われます。
クラウドGPU基盤やMLOps(機械学習モデルの開発から運用までを支える仕組み)の現場では、GPUメモリの上限に合わせてバッチサイズを調整します。バッチサイズを変えると、結果として1エポックあたりのイテレーション数と学習全体の所要時間が変わるため、リソースと学習時間のバランスを取る起点になります。
画像認識モデルの開発では、大量の画像データセットを学習する際、1エポックの完了を待たずイテレーションの区切りごとに途中経過の損失値を確認します。学習が発散(収束の逆で、損失値が下がらず増え続けてしまう状態)していないかを早い段階で確認できる点が、大規模データを扱う開発現場での活用につながっています。
5. 要点まとめ
- イテレーションとは、ミニバッチ1個分のデータでパラメータを1回更新する処理の単位で、ミニバッチ学習の反復回数を数えます。
- 1エポックあたりのイテレーション数=訓練データ件数÷バッチサイズという関係式で計算でき、バッチサイズが大きいほどイテレーション数は少なくなります。
- イテレーションはパラメータ更新回数、エポックはデータの周回数と、数える対象が異なる点が分かれ目です。
6. 確認問題
問1イテレーションとは、ミニバッチ1個分のデータを使ってパラメータを1回更新する処理の単位である。
解答・解説をみる
○ 正しい
イテレーションの定義そのものです。ミニバッチ学習において、パラメータ(重み)を1回更新する処理の単位を指します。
問2訓練データが1,000件、バッチサイズが250件のとき、1エポックあたりのイテレーション数は4回である。
解答・解説をみる
○ 正しい
1,000÷250=4回です。1エポックあたりのイテレーション数=訓練データ件数÷バッチサイズという関係式どおりの計算になります。
問31エポックあたりのイテレーション数を増やすには、バッチサイズを大きく設定すればよい。
解答・解説をみる
× 誤り
バッチサイズを大きくすると1回の更新に使うデータ量が増えるため、イテレーション数はむしろ少なくなります。正しくはバッチサイズを小さく設定すると、イテレーション数が増えるという逆の関係にあります。

