1 最急降下法の基本
1.1 目的関数と最小化の概念
最急降下法は、目的関数と呼ばれるスカラー量を最小にする入力(パラメータ)を探すための反復的手法である。目的関数は、モデルの誤差、エネルギー、コストなど、最適性の指標として設計されることが多い。最小化では、目的関数の値が小さいほど望ましい解とみなし、繰り返し計算によってその値を下げていく。
同様に、目的関数を最大化したい場合には、符号を反転させて最小化問題に書き換えるのが一般的である。したがって最急降下法は、基本的には「目的関数を下げる」方向に進む枠組みを持つ。
1.2 勾配の意味と更新方向
勾配は、目的関数が各変数に対してどの向き・どの程度変化するかをまとめたベクトルである。点を固定したとき、勾配は最も増加する方向を示し、その大きさは変化の急さに対応する。
最急降下法では「最も下る方向」に移動したいので、勾配の反対方向へ更新する。直感的には、目的関数を地形の高度とみなしたとき、現在地から最も傾斜が急な下り坂へ進むことで、より低い地点へ到達しやすいと考える。なお、最急降下における“下り”は局所的な近似に基づくため、非線形な地形では必ずしも単調に改善が続くとは限らない。
1.3 最急降下法の反復更新式
最急降下法は、現在の推定値を \(x_t\) とし、目的関数を \(f(x)\) とするとき、次の更新で表される。
\[ x_{t+1} = x_t - \eta \nabla f(x_t) \]
ここで \(\nabla f(x_t)\) は \(x_t\) における勾配、\(\eta\) は学習率またはステップサイズと呼ばれる正の定数である。更新量は勾配の大きさに比例し、勾配が大きい領域ではより大きく移動する。
同じ枠組みで、目的関数が線形・二次などの特定構造を持つ場合は解析的な挙動が得られることがあるが、一般には繰り返しにより改善の見込みを得る。実運用では、目的関数のスケール、勾配の計算方法、数値誤差の影響を踏まえて \(\eta\) を制御することが重要になる。
2 理論的性質
2.1 勾配降下法との関係
2.1.1 勾配ベクトルと方向微分
勾配は方向微分の観点からも理解できる。ある単位方向 \(u\) に沿って微小に移動したときの目的関数の変化率は、\(\nabla f(x)\) と \(u\) の内積で与えられる。つまり、変化が正になるか負になるか、どの程度の速度で変化するかは勾配との角度や成分に依存する。
最急降下法は、この内積が最も負になる方向を選ぶことで、局所的に目的関数を減らす効果が最大になるように移動する。したがって、更新方向は「勾配に反対する方向」という最適化問題としての選択になっている。
2.1.2 局所解・停留点の考え方
多くの最適化問題では、解は必ずしも大域的最小点として存在するとは限らない。目的関数の勾配がゼロになる点は停留点と呼ばれ、極小・極大・鞍点を含む概念である。最急降下法が収束すると、極小点だけでなく鞍点や局所最大の手前付近に到達する可能性も理論上は残る。
ただし、実際の挙動は目的関数の形状(曲率や滑らかさ)と学習率に依存する。鞍点では勾配が小さいため進みにくくなる一方、極小周辺では目的関数の減少が緩やかになり、停止条件により計算が終了することが多い。
2.2 収束条件の代表的観点
2.2.1 学習率と収束の関係
学習率 \(\eta\) は反復の安定性を左右する。一般に、\(\eta\) が小さすぎれば改善は進むが収束が遅くなる。逆に大きすぎると、目的関数が増加する方向へ飛び、発散や激しい振動が起こり得る。
収束を保証する代表的な条件として、目的関数の滑らかさ(勾配が急激に変わらない性質)や、曲率を上回らない適切な範囲の \(\eta\) が挙げられる。特に、二次近似が妥当な範囲では、更新の挙動は線形変換に近くなり、固有値に関連する安定条件として学習率上限が現れることがある。一般の非線形では、局所的性質のもとでの十分条件として整理される。
2.3 最適解への到達性と限界
最急降下法は、停留点への到達を目指すが、その到達先が必ずしも大域最小とは限らない。目的関数が非凸である場合、局所最小に捕捉されたり、停留点近傍で速度が鈍化したりする。
また、実装上は有限回の反復で打ち切るため、理論上の到達可能性と実際の得られる解の精度には差が生じる。さらに、勾配計算に数値誤差が混入したり、目的関数のスケールが極端である場合には、学習率調整が難しくなる。これらは“最適化できない”というより、“同じ手法でも条件次第で性能が大きく変わる”という限界として理解される。
3 実装と運用
3.1 学習率(ステップサイズ)の選び方
学習率の選び方は最急降下法の性能を決める中心要素である。単純な手法としては、過去の改善量を観察しながら小さな値から試す、あるいは勾配ノルムの大きさに応じて調整する方針がある。より系統的には、目的関数の曲率に関係する情報を推定し、安定な範囲に収めるよう設計する。
ただし、汎用的には勾配降下法の前提となる滑らかさや曲率の推定が難しい場合がある。そのため実務では、固定の学習率で開始し、損失の低下が頭打ちになったり振動が増えたりしたときに微調整を行う手順が採られることが多い。ログを取りながら、学習率と進捗の関係を把握する運用が有効である。
3.2 停止条件の設定
停止条件は、いつ計算を打ち切るかを決める要件である。代表的には、(1) 勾配ノルムが十分小さい、(2) 目的関数の変化が小さい、(3) 反復回数が上限に達した、などが用いられる。勾配ノルムが小さい場合は停留点近傍にいる可能性が高い。一方、目的関数の変化が小さい場合は更新が微小になっていることを示す。
実装では複数条件を併用するのが一般的である。例えば勾配が小さくても数値誤差で止まる場合があるため、目的関数の停滞や更新量の閾値も組み合わせて判断する。過度に厳しい条件は計算コスト増につながり、緩すぎると精度不足になるため、目的に応じてバランスを取る必要がある。
3.3 初期値の影響
初期値 \(x_0\) は最急降下法の到達先に影響する。非凸問題では、異なる初期点から開始すると別々の局所最小や停留点へ収束する可能性がある。したがって、初期化の戦略は実用上の重要論点となる。
また、初期値により勾配の大きさや方向が大きく変わるため、学習率との相性も変化する。勾配が極端に大きい領域で開始すると、更新が過大になりやすい。逆に平坦な領域で開始すると進みが遅くなる。このように初期値は、収束速度と最終品質の両方に関わる。
3.4 数値計算上の注意(スケーリング等)
数値計算では、変数のスケーリングが極端だと勾配の成分に偏りが生じ、更新が意図した形で進まないことがある。たとえば、ある座標では微小な変化でも目的関数が大きく変わる一方で、別の座標では変化がほとんど効かないといった状況では、単一の学習率で全方向を同時に適切に進めるのが難しくなる。
この問題への対処としては、入力やパラメータの正規化、目的関数のスケール調整、勾配の正規化に近い工夫などが考えられる。ただし、正規化はモデル解釈の変更につながる場合があるため、後処理で整合を取る設計が必要になる。さらに、浮動小数点の丸め誤差や勾配のオーバーフロー・アンダーフローにも注意が要る。
4 応用と発展
4.1 機械学習での利用(回帰・分類の損失最小化)
機械学習では、モデルの予測誤差を表す損失関数を設計し、その最小化を通じてパラメータを求める。回帰では、予測値と観測値の差を二乗誤差などで測ることが多く、分類では、確率的出力と正解ラベルの不一致を表す損失(例:対数尤度に基づく損失)が用いられる。
最急降下法は、これらの損失に対する勾配を計算できる場合、最小化手続きとして適用可能である。特に損失が微分可能であり、データが限定されている状況では実装が簡単である。ただし、一般に学習データが大規模になると計算量の制約が出るため、次節のような確率的手法へ拡張されることが多い。
4.2 変種:確率的勾配降下法
確率的勾配降下法(SGD)は、全データに対する勾配ではなく、データの一部(ミニバッチ)に基づく勾配を用いて更新する方法である。これにより、1回の更新に必要な計算量が削減され、更新回数を増やしやすくなる。
確率性により勾配にはばらつきが生じるが、長期的には損失の低下方向へ平均的に進むことが期待される。学習率のスケジュール(時間とともに減衰させるなど)はこの手法の安定性に直結し、過剰な揺らぎを抑えながら改善を続ける設計が行われる。
4.3 変種:加速法や準ニュートン法との位置づけ
最急降下法は一次情報(勾配)に基づく手法である。加速法や準ニュートン法は、同じく反復による最適化を行うものの、勾配だけでなく“地形の曲がり具合”に関連する情報を取り込んで収束を速めることを狙う。
準ニュートン法では、ヘッセ行列(第二次微分)そのものを直接求めずに近似を更新し、より適切な方向へ進むことを目指す。加速手法では、過去の更新情報を利用して単純な勾配降下よりも効率よく進むよう調整する。これらは、計算コストやメモリ使用量とのトレードオフを伴いながら、実用上の収束性を改善する位置づけにある。
4.4 例題による理解(単純な二次関数の最小化)
二次関数の最小化は、最急降下法の挙動を理解するのに適している。たとえば、目的関数を \[ f(x)= (x-a)^2 \] とすると、勾配は \(\nabla f(x)=2(x-a)\) である。更新式は \[ x_{t+1} = x_t - \eta \cdot 2(x_t-a) \] となり、誤差 \(e_t=x_t-a\) に対して \[ e_{t+1}=(1-2\eta)e_t \] のような関係が得られる。
この式から、\(\eta\) の値が大きすぎると誤差が符号反転しつつ増幅し、発散に近い挙動となることが分かる。適切な範囲では誤差が指数的に減少し、最小点 \(x=a\) に近づく。より一般の二次形式でも同様に、曲率の異方性により学習率の最適範囲が変化し、更新が直線的に収束するか、回り込むように収束するかが決まる。このような例は、学習率調整の重要性を直観的に示す。