勾配降下法(Gradient Descent)は、損失(誤差)が小さくなる方向へパラメータを少しずつ動かす機械学習の基本最適化手法です。本記事は誤差逆伝播法の層構造の話ではなく、「山を下りる」たとえと学習率・バッチの選び方——更新の設計——に焦点を当てます。
試験で問われる見方
○:勾配降下法は損失が小さくなる方向にパラメータを更新する(TF-075、TF-239)。重みは学習で更新されるモデルパラメータ(G-152)。
○:学習率は更新の幅を決めるハイパーパラメータ(G-190)。大きすぎると発散、小さすぎると収束が遅い(TF-239)。
×:学習率やバッチサイズも、重みと同様に誤差逆伝播で自動的に学習される(TF-052)。
演習で確認する
山登りのたとえ
損失関数を谷の深い地形と想像します。いまのパラメータは山の上の一点。勾配は「いちばん急に下る方向」を示すコンパスです。勾配降下法は、その方向に一歩ずつ下ることで谷底(損失が小さい状態)に近づきます。
実際のニューラルネットでは地形が複雑で、局所最適(小さな谷)に止まることもあります。試験では「勾配の向きに更新する」という基本原則が問われることが多いです。
1回の更新で何をするか
深層学習では、次の流れがセットで回ります(勾配降下法が担うのは最後の一手です)。
- 予測 — 入力をモデルに通す(順伝播)
- 損失の計算 — 正解との差を数値化
- 勾配の計算 — 誤差逆伝播法などで各重みへの勾配を求める
- パラメータ更新 — 勾配降下法:新しい重み = いまの重み − 学習率 × 勾配(概念式)
更新されるのは主に重み・バイアスなどのモデルパラメータです。学習率は人が(または別の探索手法で)設定します。
バッチの三兄弟
勾配をどのデータで計算するかで名前が変わります。試験では違いのイメージが重要です。
| 方式 | 勾配の計算 | 特徴 |
|---|---|---|
| バッチ勾配降下法 | 全訓練データ | 正確だが1回の更新が重い |
| 確率的勾配降下法(SGD) | 1サンプル(またはごく少数) | 更新は速いがノイズが大きい(G-141) |
| ミニバッチ | 小さなまとまり(例:32件) | 実務・深層学習で最も一般的 |
「SGD=訓練データを一切使わない」など、最適化として成立しない説明は×(G-141)。
学習率の効き方
| 学習率 | 起きやすいこと |
|---|---|
| 大きすぎる | 谷底を飛び越え、損失が増える・発散(不安定) |
| 適切 | 着実に損失が減る |
| 小さすぎる | 安全だが学習が遅い・局所に長く留まる |
Adamなどの適応的な最適化手法は、学習率を層やパラメータごとに調整する発展形です。G検定では名前の暗記より、「学習率はハイパーパラメータ」が頻出です。
誤差逆伝播法との役割分担
| 用語 | 役割 |
|---|---|
| 勾配降下法 | 勾配の向きにパラメータを動かす最適化の考え方 |
| 誤差逆伝播法 | 多層ネットで勾配を効率よく計算する手法 |
| 損失関数 | 最適化の目的(何を小さくするか) |
| ハイパーパラメータ | 学習率、バッチサイズなど。通常は勾配降下で直接は更新しない |
LLMの学習でも、損失に対する勾配で重みを更新する点は同じです。規模が大きいため分散学習などの技術が加わります。