
勾配降下法(Gradient Descent)は、損失関数の値を最小化するためにパラメータを少しずつ更新していく最適化アルゴリズムです。損失の勾配(傾き)を計算し、その逆方向へ進むことで谷底に近づきます。ニューラルネットワークの学習はもちろん、線形回帰やロジスティック回帰など幅広い機械学習モデルの基礎となっており、SGDやAdamといった派生手法が現代の深層学習を支えています。本稿では基本原理、主要な変種、学習率設定、収束の課題までを体系的に整理します。
この記事の目次
- 勾配降下法の基本原理と数式表現
- バッチ・ミニバッチ・確率的の三方式比較
- Adam・Momentumなど主要な派生手法
- 学習率設定と収束を妨げる落とし穴
- まとめ
勾配降下法の基本原理と数式表現

勾配降下法は、現在のパラメータ位置における損失関数の勾配を計算し、その符号を反転させた方向にパラメータを少しずつ動かす反復的な最適化手法です。更新式は「新しいパラメータ=古いパラメータ-学習率×勾配」というシンプルな形で表現され、損失関数が凸であれば大域最適解に、非凸であれば局所最適解に収束します。学習率は更新量を決める重要なハイパーパラメータで、大きすぎれば発散し、小さすぎれば収束が極端に遅くなります。
理論的には微分可能な関数であればどこへでも適用できますが、機械学習の文脈では平均二乗誤差や交差エントロピーといった微分可能な損失関数を対象に、モデルの重みやバイアスを最適化します。鞍点や平坦領域では勾配がほぼゼロになり停滞しやすいため、現代の実装ではモーメンタムや適応的学習率といった工夫が組み合わされています。地形を下る登山者にたとえると、足元の傾きだけを頼りに谷底へ向かう様子に近いとよく説明されます。
バッチ・ミニバッチ・確率的の三方式比較

勾配降下法はデータの使い方によってバッチ・ミニバッチ・確率的(SGD)の三種類に大別されます。バッチ勾配降下法は全訓練データを使って一回の更新を行うため計算が安定しますが、データ量が増えると一回の更新に膨大なメモリと時間を要します。確率的勾配降下法(SGD)はデータを一件ずつ使って更新するため計算は軽い反面、勾配のノイズが大きく更新方向が振動しやすいという特徴があります。
実務で最も一般的なのは両者の中間にあたるミニバッチ法で、数十から数百件単位のサンプルで勾配を平均してから更新します。GPUの並列演算と相性が良く、ノイズによる局所解からの脱出効果と計算効率を両立できるため、深層学習フレームワークの標準となっています。バッチサイズは32や64、128などが定番ですが、データ規模やモデルの性質、メモリ容量に応じて調整するのが基本です。
Adam・Momentumなど主要な派生手法

素のSGDは振動や停滞に弱いため、これを改良した派生手法が数多く提案されてきました。Momentumは過去の勾配を慣性として積み重ねることで谷を一気に滑り降りる効果を生み、Nesterov加速勾配法はさらに先読みして更新方向を補正します。AdaGradは各パラメータごとに学習率を自動調整し、稀にしか出現しない特徴量にも適切な歩幅を与えますが、学習が進むと学習率が小さくなりすぎる弱点があります。
この弱点を解消したRMSPropと、それにMomentumを組み合わせたAdamが2014年に登場すると、深層学習の事実上の標準オプティマイザとなりました。Adamは一次モーメントと二次モーメントの両方を指数移動平均で追跡し、初期段階のバイアス補正も行うため、多くのタスクで「とりあえずAdamを使えば動く」状態を実現しています。近年はAdamWやLion、Sophiaといった改良版も提案され、最適化アルゴリズムは今も進化を続けています。
学習率設定と収束を妨げる落とし穴

勾配降下法を実務で成功させる鍵は、学習率を含むハイパーパラメータの設計にあります。学習率が大きすぎると損失が振動して収束しないどころか発散することもあり、小さすぎれば膨大なエポックを回しても進歩がほとんど見えません。一般的にはコサインアニーリングやステップ減衰、線形ウォームアップといったスケジューラを組み合わせ、序盤は穏やかに、中盤は積極的に、終盤は丁寧に更新するのが定石です。
また、勾配が極端に大きくなる勾配爆発や、層を遡るほど勾配が小さくなる勾配消失も実務上の大きな課題です。前者には勾配クリッピング、後者には残差接続や適切な重み初期化、活性化関数の選択といった対策が取られます。バッチ正規化や層正規化を併用すると損失曲面が滑らかになり、勾配降下法の収束も安定するため、現代の深層モデルにはほぼ標準で組み込まれています。
まとめ
勾配降下法は、損失関数の勾配を頼りにパラメータを更新するシンプルな仕組みでありながら、現代のAIを支える土台となっています。バッチサイズと学習率、オプティマイザの選択は性能を大きく左右する要素であり、AdamやAdamWといった派生手法、スケジューラ、勾配クリッピングを適切に組み合わせることで、安定した学習と高い汎化性能を両立できます。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント