最急降下法|勾配方向に進む基本の最適化手法

最急降下法

最急降下法は、微分可能な目的関数の最小化において、現在点の負の勾配方向へ探索する古典的な反復法である。勾配(gradient)は最も増加する方向を与えるため、その反対向きが関数値を最も急速に減少させる「局所的に最も有利な」方向となる。各反復では方向だけでなくステップ幅(step size)も定め、更新式 x_{k+1}=x_k−α_k∇f(x_k) により解を改良する。凸最適化では適切な条件下で収束が保証され、二次関数に対しては正定値行列の条件数が性能を左右する。数値安定性、スケーリング、線形探索(line search)の設計が成果を大きく左右する。

位置づけと特徴

最急降下法(steepest descent, Cauchy法)は、勾配ベースの最適化手法の基礎である。実装が簡潔で計算コストが軽く、大規模問題でも一反復あたりの計算が容易である一方、等高線が細長い谷形をなすと「ジグザグ」挙動により収束が遅くなる。特に学習率を固定すると過小・過大のいずれでも性能が低下しやすく、一般には適応的な線形探索を組み合わせる。

数学的定義と更新式

滑らかな f:ℝ^n→ℝ を最小化する。k 回目の反復で勾配 g_k=∇f(x_k) を計算し、更新は x_{k+1}=x_k−α_k g_k で与える。ここで方向 d_k=−g_k はユークリッドノルムにおける最急降下方向である。内積や前処理行列を変えると「最急」の意味が変わり、後述の前処理は実質的に測度(メトリック)を変更して収束を加速する。

ステップ幅(線形探索)の設計

ステップ幅 α_k は性能の要である。代表的には、(1) 固定学習率、(2) 厳密線形探索(1 次元最適化で min_α f(x_k+α d_k) を解く)、(3) Armijo 条件や Wolfe 条件を満たすバックトラッキングがある。二次関数 f(x)=½x^T A x−b^T x(A 正定値)では厳密線形探索が閉形式で α_k=(g_k^T g_k)/(g_k^T A g_k) と書け、理論・実装ともに扱いやすい。

収束性とジグザグ現象

凸 C^1 関数で勾配が L-Lipschitz 連続なら、適切な α_k で単調減少と収束が得られる。特に二次関数では線形収束し、収束率は条件数 κ(A)=λ_max/λ_min に支配される。κ が大きいと等高線は扁平になり、勾配方向が直交的に振れるためジグザグが顕著となる。これは最急降下法固有の遅さであり、改良として共役勾配法や前処理が用いられる。

実装手順(標準フロー)

  1. 初期点 x_0 を与える(スケーリングや正規化を推奨)。
  2. 反復ごとに g_k=∇f(x_k) を計算し、停止判定(‖g_k‖≤ε など)を行う。
  3. 方向 d_k=−g_k をとり、線形探索で α_k を求める。
  4. x_{k+1}=x_k+α_k d_k で更新する。
  5. 収束するまで 2–4 を繰り返す。

二次最適化での性質

A が対称正定値のとき、連続する勾配は互いに直交(g_{k+1}^T g_k=0)となる。厳密線形探索を用いると解析が容易で、誤差の A-ノルムに関する上界や収束率を明確に評価できる。とはいえ κ(A) が大きい場合は反復が多くなり、共役勾配法に劣ることが多い。

スケーリングと前処理

入力のスケーリング(変数の無次元化や特徴量の標準化)は最急降下法の実効性能を大きく改善する。前処理行列 M≻0 を用いて d_k=−M^{−1}g_k とすると、事実上のメトリック変更となり条件数を低減できる。対角近似、BFGS 型近似、物理モデル由来の近似逆ハッセ行列などが実務で機能する。

非凸・非滑らか関数への適用

非凸では局所解や鞍点に陥る可能性がある。非滑らか関数では単純な勾配が定義できず、サブグレーディエント法や近接勾配法に置き換える。実装面では小さすぎる α_k による進みの遅さ、大きすぎる α_k による発散を避けるため、適応的な線形探索とスケーリングを併用することが有効である。

機械学習・工学での活用

最急降下法は機械学習の基礎であり、大規模データでは確率的勾配降下(SGD)やミニバッチ化と組み合わされる。工学設計では連続設計変数のコスト最小化に適用され、勾配の取得に感度解析や自動微分が活用される。制約付き問題ではペナルティ法やラグランジュ関数化により無制約化して用いられる。

関連手法と拡張

共役勾配法は最急降下法の欠点であるジグザグを抑制する。準ニュートン(BFGS, L-BFGS)は曲率近似により高速収束を実現する。確率的設定ではモーメント法(momentum)、AdaGrad, RMSProp, Adam などが学習率を適応化する。メトリックを工夫する自然勾配法も有効である。

用語メモ

Lipschitz 連続:‖∇f(x)−∇f(y)‖≤L‖x−y‖。条件数:κ=λ_max/λ_min。Armijo 条件:十分減少条件。Wolfe 条件:勾配に関する曲率条件。いずれも線形探索の停止規準として広く用いられる。

コメント(β版)