モデル・技術

SGDとは?全データを待たず一歩進む——確率的勾配降下の更新リズム

読み:えすじーでぃー / 英:SGD(Stochastic Gradient Descent)

更新日: 読了目安:約7分

SGD(Stochastic Gradient Descent/確率的勾配降下法)は、訓練データの一部だけで勾配を求め、損失が小さくなる方向へパラメータを更新する最適化手法です。全データの勾配を毎回計算する勾配降下法の「バッチ版」に対し、SGDは待たずに一歩進む更新リズム——本記事は式の暗記より、ミニバッチ・ノイズ・後継手法(Adam等)との位置づけに焦点を当てます。

試験で問われる見方

SGDの定義は「訓練データの一部を使って勾配を計算または近似し、パラメータを更新する」G-141)。全データを毎回使うバッチ勾配降下法より1回の更新が軽いこと、ミニバッチ学習と関連して使われることが多いこと(TF-078)が頻出です。

誤答では、損失や勾配を一切使わない(G-141の不適切肢)、SGD=学習率が自動学習されるTF-052)などのすり替えに注意します。

SGDとは

ニューラルネットの学習では、誤差逆伝播法などで損失関数の勾配を求め、重みを更新します。その更新のルールの基本形が勾配降下法であり、SGDはそのデータの切り方が特徴的な方式です。

毎ステップで全訓練データ(数万〜数十億サンプル)の勾配を計算するのは現実的ではありません。SGDはランダムに選んだ一部——典型的にはミニバッチ——の勾配で「本当の全体勾配」を近似し、更新を繰り返します。

「確率的」とは何が違うか

勾配をどのデータで計算するかで、名前と性質が変わります。

方式1回の更新で使うデータ試験向け
バッチ勾配降下法全訓練データ勾配は正確だが1回が重い
SGD(厳密には1サンプル版も含む)一部(1件〜ミニバッチ)近似勾配で軽く更新
ミニバッチ学習小さなまとまり(例:32件)実務・深層学習の標準(TF-078)

「Stochastic(確率的)」は、どのサンプル/ミニバッチが当たるかにランダム性がある——という意味合いで整理します。試験では、SGD=訓練データを使わない、とは答えません(G-141)。

ミニバッチという実務形

現代の深層学習で「SGD」と言ったとき、多くはミニバッチ勾配降下を指します。1件ずつ更新する純粋なオンラインSGDと、全データのバッチ勾配降下の中間——計算効率と安定性のバランスがよい——と理解すると実務と試験の両方に繋がります(TF-078)。

  • エポック — 訓練データ全体を1周する単位(G-179
  • イテレーション — ミニバッチ1回分の更新(パラメータ更新1回)
  • バッチサイズ — ミニバッチの件数。大きいほど勾配は安定、1回の計算は重い

バッチ正規化はミニバッチ内の統計を使いますが、SGDそのものではありません——最適化と正規化は別レイヤーの話です(G-017)。

ノイズのメリットとデメリット

一部データだけの勾配は、全体勾配に対してノイズ(揺らぎ)を含みます。この揺らぎが、非凸な損失地形で局所最適や鞍点から抜け出しやすくする——という説明がよくされます(G-188)。

観点一部データの勾配試験向け
計算コスト1回の更新が軽い大規模データで必須に近い
安定性勾配がぶれる学習率設計が重要(G-190
探索ノイズが探索経路に影響初期値・手法とセット(G-188)

ノイズが大きすぎると収束が不安定になるため、AdamRMSpropなど、SGDを土台に歩幅を工夫した手法が発展しました(G-197TF-079)。

他の最適化手法との対比

手法SGDとの関係試験向け
勾配降下法SGDはその一部の実装方式総称 vs データの切り方
MomentumSGDに慣性を足す過去の勾配方向を記憶
RMSprop勾配の振れで歩幅を調整適応的学習率
AdamMomentum+RMSprop的要素深層学習で広く使われる
AdaBound後半でSGDに近い挙動を狙う適応+上限下限(G-182

Adamが便利でも、SGD+適切な学習率スケジュールが最終性能で勝つ場面もあります。試験では「SGDは古くて使われない」ではなく、最適化手法の原点とミニバッチ学習の基盤として押さえます。

すり替えに注意

誤った説明正しい理解
SGD=損失・勾配を使わない最適化手法として勾配が必須(G-141)
SGD=訓練データを使わない一部を使って更新する
SGD=誤差逆伝播法勾配の求め方 vs 使い方
SGD=Adam基本形 vs 適応的拡張
学習率はSGDで自動学習ハイパーパラメータ(TF-052)
SGD=ミニバッチ正規化最適化 vs 中間層の正規化(G-017)

よくある質問

SGDは何の略ですか?

Stochastic Gradient Descent(確率的勾配降下法)の略です。全訓練データではなく一部のデータで勾配を求め、パラメータを更新します。深層学習ではミニバッチ学習として広く使われ、1回の更新計算をバッチ勾配降下法より軽くできます。

SGDと勾配降下法は同じですか?

勾配降下法は損失の勾配でパラメータを更新する最適化の総称です。SGDはその中で、データの一部を使って勾配を近似する方式の一つです。全データを使うバッチ勾配降下法と対比して整理します。

SGDは損失関数を使いませんか?

いいえ。SGDは損失関数の勾配を用いてパラメータを更新する最適化手法です。損失や勾配を一切使わない説明は誤りです。勾配の計算には誤差逆伝播法などが使われることが多いです。