コンテンツにスキップ

勾配降下法:勾配はなぜ「最も急な坂」なのか

前提:ロジスティック回帰:シグモイドと交差エントロピーを最尤推定から導く

生 Markdown
  • 勾配 f(w)\nabla f(\boldsymbol{w}) は「ff を 1 次で最もよく近似するときの係数ベクトル」です。この 1 次近似から、長さ 1 のベクトルのうち ff を最も速く減らす向きが f(w)/f(w)-\nabla f(\boldsymbol{w})/\|\nabla f(\boldsymbol{w})\| であることが従います(定理 3.2)。証明の要はコーシー・シュワルツの不等式です。
  • 学習率 η\eta は「1 次近似をどこまで信用するか」を表す量です。勾配が LL-リプシッツ連続なら 0<η<2/L0 < \eta < 2/L のとき必ず関数値が下がり、η=1/L\eta = 1/L なら TT 回の反復で minkf(wk)22L(f(w0)f)/T\min_k \|\nabla f(\boldsymbol{w}_k)\|^2 \le 2L\bigl(f(\boldsymbol{w}_0) - f_\star\bigr)/T が保証されます(定理 4.5)。
  • 二次関数では収束の速さがヘッセ行列の条件数 κ\kappa だけで決まります。最良の学習率を選んでも 1 歩あたりの縮小率は (κ1)/(κ+1)(\kappa-1)/(\kappa+1) にしかならず、細長い谷でジグザグが起きるのはこれが理由です(命題 5.1)。
  • ロジスティック回帰の損失は f(w)=1NXT(py)\nabla f(\boldsymbol{w}) = \frac{1}{N}X^{\mathsf{T}}(\boldsymbol{p} - \boldsymbol{y}) という簡潔な勾配を持ち、ヘッセ行列は常に半正定値なので凸です(命題 6.1)。ここから L=λmax(XTX)/(4N)L = \lambda_{\max}(X^{\mathsf{T}}X)/(4N) という学習率の具体的な目安が出ます。
  • 確率的勾配降下法は、この勾配を BB 個のサンプルだけで置き換える方法です。得られる推定量は不偏で、分散はちょうど 1/B1/B に比例して小さくなります(命題 7.2)。「安いが揺れる勾配」を大量に使うという発想が、大規模学習を成り立たせています。

1. 動機:解が閉じた式で書けないとき

Section titled “1. 動機:解が閉じた式で書けないとき”

線形回帰と最小二乗法では、二乗誤差 f(w)=12Xwy2f(\boldsymbol{w}) = \frac{1}{2}\|X\boldsymbol{w} - \boldsymbol{y}\|^2 を最小にする w\boldsymbol{w} が、正規方程式(定理 3.3)[線形回帰と最小二乗法] XTXw=XTyX^{\mathsf{T}}X\boldsymbol{w} = X^{\mathsf{T}}\boldsymbol{y} を解くだけで求まりました。XTXX^{\mathsf{T}}X が正則なら w=(XTX)1XTy\boldsymbol{w}_\star = (X^{\mathsf{T}}X)^{-1}X^{\mathsf{T}}\boldsymbol{y} と、答えが一本の式で書けます。これは幸運な例外です。

ロジスティック回帰では事情が変わります。負の対数尤度を最小にする条件は

i=1N(σ(w,xi)yi)xi=0,σ(z)=11+ez\sum_{i=1}^{N}\Bigl(\sigma(\langle \boldsymbol{w}, \boldsymbol{x}_i\rangle) - y_i\Bigr)\boldsymbol{x}_i = \boldsymbol{0}, \qquad \sigma(z) = \frac{1}{1 + e^{-z}}

でした(交差エントロピー誤差の勾配(定理 5.1)[ロジスティック回帰])。左辺には未知数 w\boldsymbol{w} が指数関数の中に入っています。これは代数方程式ではなく超越方程式で、一般には w\boldsymbol{w} について解いた形に書き直せません。N=3N = 3 のような小さな例でも、根号や対数を有限回組み合わせた式にはなりません。

では諦めるのかというと、そうではありません。方針を変えます。一発で答えを当てるのをやめて、今いる点より少しだけ良い点へ動くことを繰り返すのです。この発想は 1847 年にコーシーが連立方程式の数値解法として書いた短い論文にすでに現れています。彼は「関数 uu を減らしたければ、uu の偏微分係数に比例した量だけ変数を動かせばよい」と述べました。これが勾配降下法です。

現代の深層学習でも、事情は本質的に同じです。ニューラルネットワークの損失関数は数百万個のパラメータについて非線形で、停留点の条件を解くことなど到底できません。できるのは「今の点での勾配を計算し、その逆向きに少し動く」ことだけです。したがってこの章の問いは次の二つに絞られます。

  1. なぜ勾配の逆向きなのか。他の向きではいけないのか。
  2. どれだけ動けばよいのか。動きすぎるとどうなるのか。

以下ではこの二つに、多変数関数のテイラー展開を使って正面から答えます。

ここから先は Pro プランの内容です。

この章の続き(定義・定理・証明・例・演習)をすべて読むには Pro プランにご登録ください。無料の章は最後まで読めます。

プランを見る ログイン

この記事の誤りを報告する ・運営: 夢現技研合同会社料金プラン利用条件特定商取引法に基づく表記

© 2026 夢現技研合同会社 ・本文の LLM への入力は自由です。コード例は MIT ライセンスです。