1. 定義と概要
勾配降下法とは、モデルの予測値と正解の誤差を表す誤差関数(損失関数。モデルの予測値と正解のズレの大きさを数値で表したもの)について、勾配(ある地点で関数の値がどちら向きにどれくらいの傾きで増減するかを示す量)を求める最適化アルゴリズムです。求めた勾配と逆方向へ、パラメータ(重み。モデルの中で学習によって調整される数値)を少しずつ更新していくことで、誤差を最小化します。
この関係は更新式 θ_new = θ_old − η・∇L(θ)として表されます。更新前のパラメータθ_oldから更新後のパラメータθ_newを求める式で、η(学習率)が1回の更新でパラメータをどれだけ動かすかを決めます。
∇L(θ)は誤差関数の勾配を表し、その値が示す方向とは逆向きにパラメータを動かすことで、誤差関数の値を小さくできます。この更新を何度も繰り返すことで、パラメータは誤差ができるだけ小さくなる点へ少しずつ近づいていきます。
深層学習のモデルは、大量のパラメータを持つ関数として表現されます。学習とは、このパラメータを調整して誤差関数の値をできるだけ小さくする作業であり、勾配降下法はその調整を担う基本的なアルゴリズムにあたります。
よく使われる比喩が「霧の中の山下り」です。視界が悪く全体の地形が見えない状況でも、足元の傾きを頼りに一歩ずつ低い方向へ進めば、いずれ谷底、つまり誤差の小さい点に近づけるという考え方に対応します。傾きが急な場所では大きく進み、傾きが緩やかな場所では小さく進むというイメージです。
ニューラルネットワークでは、この勾配の計算に誤差逆伝播法(バックプロパゲーション。出力層の誤差を入力層側へ逆向きに伝えながら各層の勾配を効率よく求める手法)を用います。
2. 試験対策ポイント
更新式 θ_new = θ_old − η・∇L(θ)が示す意味そのものは、勾配降下法を理解するうえでの中心的な論点です。勾配と逆方向にパラメータを動かす点、そしてη(学習率)が1回の更新でパラメータをどれだけ動かすかを決める点は、あわせて押さえておきたいポイントです。この式は、勾配というベクトルの向きにマイナスの符号を掛けることで、誤差を減らす方向へパラメータを動かす仕組みを表しています。
勾配降下法は、1回の更新に使う学習データの範囲によって種類が分かれます。全ての訓練データを使って1回の勾配を計算する方法は最急降下法(バッチ勾配降下法)と呼ばれ、ランダムに選んだ1件のデータだけで勾配を計算し更新する方法は確率的勾配降下法(SGD)と呼ばれます。また、訓練データを少数ずつのまとまりに分け、そのまとまり単位で勾配を計算する方法はミニバッチ学習と呼ばれます。この3つの名称と違いは、混同しやすい組み合わせです。
勾配降下法には、誤差関数の形状によって、全体では最小ではない局所最適解(その周辺だけを見ると最小に見えてしまう点)に収束してしまう課題があります。また、ある方向には勾配が下り、別の方向には上りになっている、勾配がほぼゼロの点は鞍点と呼ばれます。この鞍点の周辺では勾配が広い範囲でほぼゼロになり、パラメータの更新がほとんど進まなくなることがあり、この停滞状態はプラトーと呼ばれます。
全ての訓練データを1回使い切る単位をエポックと呼び、パラメータを1回更新する単位をイテレーションと呼びます。この2つの数え方の違いも、取り違えやすい点です。
3. 関連概念との比較・相違点
最急降下法、確率的勾配降下法(SGD)、ミニバッチ学習は、いずれも勾配降下法という枠組みに含まれる派生手法です。最大の違いは、1回の更新に使う学習データの範囲にあります。全データを使うか、1件だけを使うか、少数のまとまりを使うかによって、計算コストと更新の安定性のバランスが変わります。
三つの手法の対応関係を並べると、次のように整理できます。
| 手法 | 1回の更新に使うデータ | 特徴 |
|---|---|---|
| 最急降下法(バッチ勾配降下法) | 全ての訓練データ | 更新の方向が安定する一方、計算に時間がかかる |
| 確率的勾配降下法(SGD) | ランダムに選んだ1件 | 計算が速い一方、更新の方向がばらつきやすい |
| ミニバッチ学習 | 少数ずつのまとまり | 学習時間とメモリ使用量のバランスを取りやすい |
扱うデータ量や求める安定性に応じて、これらの手法を使い分けることになります。
誤差逆伝播法との最大の違いは、担う役割にあります。勾配降下法はパラメータを更新する最適化の手続きそのものであるのに対し、誤差逆伝播法はニューラルネットワークにおいてその勾配を効率よく計算する手続きです。両者は対立する概念ではありません。誤差逆伝播法で求めた勾配をもとに勾配降下法がパラメータを更新するという形で、組み合わせて使われます。
4. ビジネス・実務での活用シナリオ
製造業の外観検査では、欠陥画像と正常画像を学習するモデルの構築に勾配降下法が使われます。欠陥の見逃しや正常品の誤検知が生む誤差が小さくなるよう重みを繰り返し更新することで、検知精度を高めていきます。モデルの精度が向上するほど、不良品の流出を防ぎ、検査工程の負荷を減らせます。
ECサイトのレコメンド分野では、日々増え続ける購買データの全件を使い直す最急降下法では計算コストが高くなりすぎます。そのため、ミニバッチ学習で効率よく推薦モデルを再学習し、鮮度の高いおすすめ商品を提示し続けます。モデルを常に最新の状態に保てることは、顧客の購買体験の質に直結します。
自然言語処理(人間が使う言葉をコンピュータに処理させる技術分野)の分野では、大規模言語モデル(膨大な文章データを学習し、人間に近い文章を生成できるモデル)の事前学習でも勾配降下法が土台になります。
1件ずつ更新する確率的勾配降下法では更新が不安定になりやすく、全データを一括で使う方法では計算資源が足りません。そこで、ミニバッチ単位の勾配降下法を用いることで、学習時間とメモリ使用量のバランスを取ります。限られた計算資源で大規模なモデルを現実的に訓練するうえで、このバランスが前提になります。
5. 要点まとめ
- 勾配降下法は、誤差関数の勾配を求め、その逆方向にパラメータを更新して誤差を最小化する最適化アルゴリズムで、更新式 θ_new = θ_old − η・∇L(θ)で表されます。
- 1回の更新に使うデータ範囲によって、最急降下法・確率的勾配降下法(SGD)・ミニバッチ学習に分かれ、勾配の計算自体には誤差逆伝播法を用います。
- 誤差関数の形状によっては局所最適解や、鞍点付近で学習が停滞するプラトーで学習が止まりやすいという課題があり、全データを使い切る単位をエポック、更新1回をイテレーションと呼びます。
6. 確認問題
問1勾配降下法では、誤差関数の勾配が示す方向とは逆方向にパラメータを更新することで誤差を小さくしていく。
解答・解説をみる
○ 正しい
勾配は関数の値が最も急に増加する方向を示すため、その逆方向へパラメータを動かすことで誤差関数の値を減らせます。更新式 θ_new = θ_old − η・∇L(θ)のマイナス符号が、この関係を表しています。
問2勾配降下法は、1回の更新に使う学習データの範囲によって、全データを使う最急降下法・1件のみ使う確率的勾配降下法(SGD)・少数のまとまりを使うミニバッチ学習に分けられる。
解答・解説をみる
○ 正しい
いずれも勾配降下法という枠組みは共通しており、勾配を求める際に参照するデータ範囲が異なる派生手法にあたります。
問3勾配降下法では、学習率を大きく設定するほど常に速く正確に誤差の最小値へ到達できる。
解答・解説をみる
× 誤り
正しくは、学習率が大きすぎると最小値の周辺を飛び越えて発散したり収束が不安定になったりし、小さすぎると学習に時間がかかります。学習率は大きいほどよいという記述は誤りです。

