AI資格ドリル
資格を選ぶ↓

用語比較

バッチ・ミニバッチ・確率的勾配降下法の違い|1回の更新に使うデータ数で見分ける(G検定)

3つの違いは、勾配を計算して重みを1回更新するときに、訓練データを何件使うかです。全件を使うのがバッチ勾配降下法、1件だけ使うのが確率的勾配降下法(SGD)、その中間の数件ずつ使うのがミニバッチ勾配降下法です。

G検定では、勾配降下法の仲間を区別する設問や、「SGD」の語が実際には何件ずつ使う方法を指すのかを問う設問が出ます。使う件数が、全件・数件・1件の順と覚えると、選択肢を整理できます。

このページは、教科書『Deep Learning』(Goodfellow・Bengio・Courville)第8章の用語の説明をもとに、使うデータ数・更新の回数・勾配の正確さの3点で比べます。数値の例は、説明用の架空のデータです。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。G検定の一次情報確認日: 2026-10-02。

結論

バッチ勾配降下法

訓練データ全件で勾配を計算してから1回更新する。決定的(deterministic)な勾配法とも呼ばれる。

確率的勾配降下法(SGD)

1件ずつ(または少数)のデータで勾配を見積もって更新する。1件だけを使う方法は、確率的・オンライン法とも呼ばれる。

ミニバッチ勾配降下法

全件より少なく1件より多い、数十から数百件ほどのまとまり(ミニバッチ)で更新する。深層学習で最も使われる中間の方法。

違いを表で確認

比較軸バッチ勾配降下法確率的勾配降下法(SGD)
1回の更新に使う件数バッチ勾配降下法:訓練データ全件SGD(1件ずつ):1件。ミニバッチ:1件より多く全件より少ない数
1エポックの更新回数バッチ勾配降下法:1回(全件で1回更新)SGD(1件ずつ):データ件数と同じ回数。ミニバッチ:データ件数÷バッチサイズの回数
勾配の正確さバッチ勾配降下法:全件を使うので、勾配の見積もりが最も正確SGD・ミニバッチ:一部のデータの見積もりなので誤差がある。件数が多いほど正確になる
計算の効率バッチ勾配降下法:1回の更新に全件の計算が必要で、重いSGD・ミニバッチ:近似の勾配をすばやく計算でき、総計算量ではより速く収束しやすい
件数を増やす効果バッチ勾配降下法:正確さは最大だが、計算も最大ミニバッチ:件数を増やしても正確さは計算量に比例しては上がらない。標準誤差は件数の平方根に反比例する
「バッチ」の語の使われ方バッチ勾配降下法:全件を使う方法を指すミニバッチ:「バッチサイズ」と言うときのバッチは、ミニバッチの件数を指すことが多い

どこで迷っているかを切り分ける

01

「バッチ」の語が2つの意味で出て混乱する人

「バッチ勾配降下法」は全件を使う方法です。一方、「バッチサイズ」と言うときのバッチは、教科書でもミニバッチの件数を指すと説明されています。語の前後で、全件の話かどうかを確かめます。

02

SGDは1件ずつの方法だと覚えていた人

教科書は、1件だけを使う方法を確率的法・オンライン法と呼ぶ一方、深層学習で使うアルゴリズムの多くは1件より多く全件より少ない件数を使い、今では単に確率的な方法と呼ぶと説明します。現在のSGDはミニバッチで動くことが多いと押さえます。

03

データを増やしても精度の伸びが小さい理由を聞かれる人

勾配の見積もりの標準誤差は、件数の平方根に反比例して小さくなります。件数を100倍にしても、誤差は10分の1にしか減りません。計算量だけが100倍になるため、見返りが比例しません。

04

エポックやイテレーションとの関係を知りたい人

1エポックは訓練データを1周する単位で、1イテレーションは更新1回の単位です。使う件数が変わると、1エポックに含まれるイテレーションの数が変わります。

具体例で使い分ける

例 1

訓練データ1000件で1エポック学習する(架空のデータ)

更新の方法を変えたとき、1エポックでパラメータを何回更新するかを数えます。

  • バッチ勾配降下法は全件の1000件で1回更新するので、1エポックの更新は1回です。
  • 1件ずつのSGDは1件ごとに更新するので1000回、バッチサイズ100のミニバッチは1000÷100=10回です。

結論: 使う件数が少ないほど、1エポックの更新回数は増えます。1回あたりの勾配は、件数が少ないほど粗い見積もりになります。

例 2

勾配を100件で見積もるか、10,000件で見積もるか

同じ勾配の見積もりに、100件を使う場合と10,000件を使う場合を比べます。

  • 10,000件は100件の100倍の計算が必要です。
  • 標準誤差は σ÷√n なので、√100=10、√10,000=100から、誤差は100件のときの10分の1になります。

結論: 計算量は100倍でも、誤差の減り方は10倍です。教科書も、同じ計算量なら粗い見積もりで多く更新するほうが速く収束しやすいと説明します。

問題文から答えを選ぶ手順

  1. 1

    使う件数を読む

    「訓練データ全体」「全件」ならバッチ勾配降下法、「1つのサンプル」ならSGD(オンライン)、「一部のまとまり」ならミニバッチです。

  2. 2

    更新回数を確かめる

    1エポックで更新が1回だけならバッチ、件数と同じ回数なら1件ずつのSGD、その中間ならミニバッチです。

  3. 3

    精度と速さの記述を読む

    「勾配が正確だが重い」はバッチ側、「ばらつくが軽い」はSGD側の特徴です。

  4. 4

    「SGD」の語の範囲を確かめる

    深層学習の文脈で「SGDで学習」とあれば、ミニバッチを使う場合も含めて読みます。

試験での見分け方

  • 1訓練データ全件で1回更新するのがバッチ勾配降下法。
  • 21件で更新するのが確率的(オンライン)法。
  • 31件より多く全件より少ない件数で更新するのがミニバッチ。
  • 4件数を増やしても、勾配の誤差は件数の平方根にしか反比例しない。

誤答しやすい選択肢

バッチサイズのバッチも、全件のことだと考える

修正: バッチサイズのバッチは、ミニバッチの件数を指します。全件を使うのは「バッチ勾配降下法」と呼ぶときです。

ミニバッチはSGDとは別のものだと考える

修正: 教科書では、ミニバッチ法は今では単に確率的な方法と呼ばれます。ミニバッチで更新するのも、確率的勾配降下法の仲間です。

件数を増やせば、精度が件数に比例して上がると考える

修正: 標準誤差は件数の平方根に反比例するので、件数を100倍にしても誤差は10分の1です。計算量の増え方に見合いません。

確認問題

Q1訓練データ1000件で、バッチサイズ100のミニバッチ学習をする。1エポックの更新回数は?

答え: 10回

1000÷100=10回です。バッチ勾配降下法なら1回、1件ずつのSGDなら1000回になります。

Q2訓練データ全件を使って勾配を計算してから更新する方法は?

答え: バッチ勾配降下法

教科書『Deep Learning』は、訓練データ全体を使う最適化アルゴリズムをバッチ法または決定的な勾配法と呼ぶと説明しています。

Q3勾配の見積もりに使う件数を100倍にしたとき、標準誤差はどれだけ小さくなる?

答え: 10分の1

標準誤差は σ÷√n で、√100=10です。計算量は100倍になるのに、誤差は10分の1にしかなりません。

到達チェック

  • 全件・数件・1件の順に、バッチ・ミニバッチ・SGDと言える
  • 1エポックの更新回数を、件数とバッチサイズから計算できる
  • 件数を増やしても、誤差は平方根でしか減らないと言える

同じ資格で次に知りたいこと

よくある質問

Qミニバッチのサイズは、どう決めればいい?

A

教科書『Deep Learning』は、大きいほど勾配は正確になるが見返りは比例しないこと、小さすぎるとマルチコアの計算資源を使い切れないこと、並列処理ではメモリがバッチサイズに比例して増えることを理由に挙げています。GPUでは2のべき乗のサイズが実行時間の面で良いことが多いとも述べています。

Qオンライン学習とミニバッチ学習は同じ?

A

同じではありません。教科書は、オンラインという語は、固定の訓練データを何周もするのではなく、絶え間なく生まれるデータの流れから例を取るときに使うのが普通だと説明しています。

Qなぜ全件で計算せず、一部のデータで勾配を見積もってよいの?

A

全件の期待値を正確に求めるのは非常に高コストなうえ、似たデータが多いと全件を使っても勾配への寄与が重複するためです。教科書は、近似の勾配をすばやく求めたほうが、総計算量では速く収束することが多いと説明しています。

次に見る比較

執筆: ミナト編集部(運営者情報を見る)