最終更新日:2026年8月21日
gk neural_network training
G検定トップ
> バッチ・ミニバッチ・エポックの違い【G検定対策】
まず結論
バッチ・ミニバッチ・エポックは、「1回の更新で何件使うか」と「データ全体を何周したか」で切り分けます。
| 用語 | 判断基準 |
|---|---|
| バッチ勾配降下 | 全学習データで1回更新 |
| ミニバッチ学習 | 一部のまとまりで更新 |
| 狭義のSGD | 1サンプルで更新 |
| 1エポック | 学習データ全体を1周 |
| 1イテレーション | 1回の更新 |
G検定では、エポック=更新回数ではないことが重要です。
直感的な説明
1000件の学習データを、100件ずつに分けて学習するとします。
100件で更新 × 10回
= 1000件を1周
= 1エポック
この場合、1エポックの中に10イテレーションあります。
定義・仕組み
バッチ勾配降下
全学習データを使って勾配を計算し、1回更新します。
- 勾配は比較的安定
- データが大きいと計算・メモリ負荷が大きい
ミニバッチ学習
学習データを小さなまとまりに分け、まとまりごとに更新します。
- GPUなどで並列計算しやすい
- 全件更新より頻繁に重みを更新できる
- 深層学習で一般的
SGD
狭義のStochastic Gradient Descentは、1サンプルを使って更新する方法です。
ただし深層学習では、ミニバッチで更新する方法まで含めて「SGD」と呼ぶことがあります。
したがって、問題文では「1件か」「小さなまとまりか」という説明を優先します。
エポック
学習データ全体を1回使い切ることです。
イテレーション
パラメータ更新を1回行うことです。
ミニバッチサイズを B、データ数を N とすると、単純化すれば1エポックあたりの更新回数はおおよそ N / B です。
いつ使う?(得意・不得意)
- 「全データで勾配」→ バッチ勾配降下
- 「小分けして更新」→ ミニバッチ
- 「データ全体を何周」→ エポック
- 「何回重みを更新」→ イテレーション
バッチサイズは、計算効率・メモリ使用量・勾配のばらつきなどに影響します。
G検定ひっかけポイント
- ❌「1エポック=1回更新」
- ミニバッチ学習では通常、1エポックに複数回更新します。
- ❌「ミニバッチは学習データを捨てる方法」
- 全体を小分けして順番に使います。
- ❌「SGDという語は必ず1サンプル更新だけを意味する」
- 文脈によってミニバッチSGDまで含めて呼ぶ場合があります。
- ⭕「全体を1周」→ エポック
- ⭕「1回の重み更新」→ イテレーション
まとめ(試験直前用)
- バッチ=全データで更新
- ミニバッチ=一部のまとまりで更新
- 狭義のSGD=1サンプルで更新
- エポック=データ全体の周回数
- イテレーション=更新回数
「何件で更新?」と「何周した?」を分ければ迷いません。