SGD(Stochastic Gradient Descent/確率的勾配降下法)は、訓練データの一部だけで勾配を求め、損失が小さくなる方向へパラメータを更新する最適化手法です。全データの勾配を毎回計算する勾配降下法の「バッチ版」に対し、SGDは待たずに一歩進む更新リズム——本記事は式の暗記より、ミニバッチ・ノイズ・後継手法(Adam等)との位置づけに焦点を当てます。
試験で問われる見方
SGDの定義は「訓練データの一部を使って勾配を計算または近似し、パラメータを更新する」(G-141)。全データを毎回使うバッチ勾配降下法より1回の更新が軽いこと、ミニバッチ学習と関連して使われることが多いこと(TF-078)が頻出です。
誤答では、損失や勾配を一切使わない(G-141の不適切肢)、SGD=学習率が自動学習される(TF-052)などのすり替えに注意します。
演習で確認する
G検定:G-141(SGDの不適切説明)、TF-078(ミニバッチ)、G-138(勾配降下法)、G-197(最適化手法一覧)
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) |
ノイズが大きすぎると収束が不安定になるため、AdamやRMSpropなど、SGDを土台に歩幅を工夫した手法が発展しました(G-197、TF-079)。
他の最適化手法との対比
| 手法 | SGDとの関係 | 試験向け |
|---|---|---|
| 勾配降下法 | SGDはその一部の実装方式 | 総称 vs データの切り方 |
| Momentum | SGDに慣性を足す | 過去の勾配方向を記憶 |
| RMSprop | 勾配の振れで歩幅を調整 | 適応的学習率 |
| Adam | Momentum+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は損失関数の勾配を用いてパラメータを更新する最適化手法です。損失や勾配を一切使わない説明は誤りです。勾配の計算には誤差逆伝播法などが使われることが多いです。