1 基本概念

1.1 定義

確率的勾配法(stochastic gradient method)は、目的関数の最小化を目指して、反復ごとにパラメータを勾配情報にもとづいて更新する最適化手法の総称である。勾配を計算する際に、データ全体を用いず、標本サンプル)や小規模な集合(ミニバッチ)などの一部だけから得られる近似勾配を利用する点に特徴がある。これにより、計算量メモリ使用量を抑えながら、大規模問題でも反復的に改善を続けることが可能になる。

また、確率的な近似勾配にはランダム性が含まれるため、更新は完全に滑らかな軌道をたどらない。その一方で、適切な学習率設計や更新の安定化策を組み合わせることで、実用上の収束汎化性能の改善が得られやすい。

1.2 勾配降下法との違い

勾配降下法(gradient descent)は、目的関数の全データにもとづく勾配を計算し、それを用いて更新する。これに対し確率的勾配法は、一部データから得た勾配の近似を使うため、各反復の計算コストが小さくなる。ただし近似勾配には誤差が含まれるため、パラメータの軌道には揺らぎが生じやすい。

さらに、両者の性質は学習率と結びついている。勾配降下法では全体勾配の精度が高いぶん、学習率調整が相対的に単純になりやすい。一方、確率的勾配法ではノイズ前提にした収束条件や安定性の議論が重要となる。

1.3 確率的近似としての位置づけ

確率的勾配法は、理想的には「真の勾配」を使いたいところを、「利用可能なデータの一部から推定した勾配」に置き換える近似として理解できる。ここで、推定勾配が真の勾配に対してどの程度の一致度を持つか、またその誤差が反復中にどう蓄積するかが性能に影響する。

この観点から、サンプル抽出方式、損失関数の形状、勾配推定の分散、そして学習率(更新量)を組み合わせた設計が、実装上の要点になる。

2 数学的基礎

2.1 目的関数と勾配

2.1.1 損失関数

学習や推定の文脈では、データ点ごとに損失(誤差)を定義し、それらを合成して目的関数とすることが多い。データを \( (x_i, y_i) \) とし、モデルパラメータを \( \theta \) とすると、個々の損失を \( \ell_i(\theta) \) のように表す。目的関数は典型的には損失平均(あるいは和)として構成される。

損失関数の微分可能性は、勾配法の適用可能性を左右する。一般に、勾配が計算できる設計が好まれ、学習率や正則化と組み合わせて最適化の挙動が決まる。

2.1.2 期待値最適化

確率的勾配法は、目的関数を確率的な期待値として捉える枠組みと相性がよい。データが母集団から独立に得られると仮定すると、損失の期待値 \[ F(\theta)=\mathbb{E}_{(x,y)}[\ell(\theta; x, y)] \] を最小化する問題として定式化できる。勾配は \[ \nabla F(\theta)=\mathbb{E}[\nabla \ell(\theta; x,y)] \] に対応し、これを有限標本から推定することで確率的勾配が生まれる。

現実の学習では有限データしかないため、経験平均(サンプル平均)に基づく最適化と、期待値最適化の関係が考慮される。適切な仮定のもとでは、サンプル平均で得た更新が期待値の方向にも整合する。

2.2 更新式

2.2.1 標本ごとの更新

最も単純な形として、反復 \(t\) でパラメータ \(\theta_t\) を持つとき、1つの標本 \(i_t\) を選び、その標本における勾配 \(\nabla \ell_{i_t}(\theta_t)\) を使って更新する。典型的には \[ \theta_{t+1}=\theta_t-\eta_t \nabla \ell_{i_t}(\theta_t) \] となる。ここで \(\eta_t\) は学習率であり、時間に依存して変化させることもある。

この方式では各反復の計算が軽く、データ点数が多い状況でもテンポよく更新を進められる。ただし同じ標本を連続して引くなどの偏りが起こりうるため、揺らぎはより強く現れやすい。

2.2.2 ミニバッチ更新

実装では、複数標本をまとめて集合 \(B_t\) を作り、その平均勾配で更新することが多い。ミニバッチ \(B_t\) に対して \[

\theta_{t+1}=\theta_t-\eta_t \frac{1}{B_t}\sum_{i\in B_t}\nabla \ell_i(\theta_t)

\] のように更新する。標本ごとの方式より推定誤差の分散が小さくなりやすく、並列計算にも向く。

ミニバッチサイズは計算効率とノイズ抑制のトレードオフを表す。小さすぎると揺らぎが目立ち、大きすぎると全体勾配に近づくため反復あたりのコストが増える。

2.3 確率性の導入

2.3.1 標本抽出

確率的要素は主に標本抽出から生じる。抽出方式としては、各反復で一様にランダムに選ぶ、データをシャッフルして順次に使う、あるいはクラス分布を考慮したサンプリングなどがある。抽出が独立同分布を満たすか、順序依存があるかで理論的性質が変わる場合がある。

また、エポック単位でシャッフルする実務では、統計的独立性の厳密さよりも平均的な挙動が重要視されることが多い。

2.3.2 推定誤差

確率的勾配は真の勾配の近似であり、誤差は分散や偏りとして表される。一般に、推定勾配 \(g_t\) と真の勾配 \(\nabla F(\theta_t)\) の差を考えると、誤差がゼロ平均で抑えられている場合と、偏りが残る場合がある。

偏りが小さいほど更新は期待値の勾配方向に沿いやすい。一方、分散が大きいと最適解近傍で揺れてしまい、厳密な意味での停止判定が難しくなる。これらは後述する収束性やノイズの議論に直結する。

3 アルゴリズムの構成

3.1 初期値の設定

確率的勾配法では初期値が性能に影響しやすい。凸性が成り立つ場合は理論的に最適解へ到達しやすいが、非凸な学習問題では局所的な性質に左右される。初期化の方法としては、ランダム初期化に加え、層ごとのスケールを調整する設計(例:分散を一定に保つ考え方)などが用いられる。

初期値が大きすぎると勾配が不安定になりやすく、小さすぎると有効な更新が起こりにくい。損失のスケールとパラメータの表現に応じた初期化が実務上重要になる。

3.2 学習率の設計

3.2.1 固定学習率

学習率を固定すると、実装は簡潔になる。ただし確率的更新のノイズにより、最適解近傍では誤差が学習率に比例する振動状態に入る可能性がある。したがって固定学習率では、望ましい誤差の大きさと計算効率のバランス調整が必要になる。

また、固定学習率のもとでは損失の曲率に対して学習率が大きすぎると発散しうるため、事前のスケーリングやウォームアップなどと組み合わせることが多い。

3.2.2 減衰学習率

学習率を反復とともに小さくする設計は、ノイズの蓄積による停留誤差を抑える目的で用いられる。例えば \(\eta_t\) を徐々に減少させると、更新の揺らぎは次第に小さくなり、より安定した収束が期待できる。

減衰の速さは重要で、減りすぎると十分に探索できないまま早期に停滞する。逆に減り方が緩すぎると振動が残る。したがって減衰スケジュールは問題依存となる。

3.3 停止条件

3.3.1 反復回数

最も単純な停止条件は反復回数(あるいはエポック数)の上限である。大規模学習では、訓練に許される計算予算が明確であることが多く、実務上はこの条件が強く用いられる。

ただし目的が精度最大化の場合、単純な上限だけでは過学習や無駄な計算が発生しうるため、他の指標と組み合わせることが多い。

3.3.2 収束判定

収束判定では、勾配の大きさ、パラメータ変化量、あるいは検証データ上の指標の変化量を監視する。確率的更新では勾配が偶然大きくなる場合もあるため、移動平均や平滑化を併用することが多い。

また、学習率スケジュールや正則化の効果と絡むため、早期停止の閾値設定は実験的に行われることが一般的である。

4 収束性

4.1 収束の直感

確率的勾配法の直感は、「平均的には降下方向に進むが、各歩みにはランダムな揺れがある」という点にある。目的関数が十分な滑らかさと構造を持ち、学習率が適切なら、揺れは次第に相対的重要度が下がり、損失の減少傾向が維持される。

一方で、学習率が大きい、分散が極端に高い、あるいは推定が偏っている場合には、損失の改善が停滞したり、軌道が最適解近傍で往復したりする。

4.2 収束速度

収束速度は、目的関数の性質(凸性、強凸性、滑らかさ)と、勾配推定の統計的条件(分散の制御など)に依存する。一般に、凸問題ではより高い収束率が得られることが多いが、非凸では局所的な停留点(勾配が小さい領域)への到達を議論する形になる。

実務で重要なのは理論上の漸近率だけでなく、学習率スケジュールやミニバッチサイズによって、有限時間での損失低下がどう改善するかである。

4.3 ノイズの影響

4.3.1 分散

推定勾配の分散が大きいほど、更新方向のばらつきが増える。これにより、同じ反復回数での損失減少が小さくなる場合がある。ミニバッチにより分散が下がることが多いが、バッチを大きくすると反復あたりの計算量が増えるため、総計算量の観点で最適点を探す必要がある。

分散の大きさはモデルやデータ分布だけでなく、損失のスケールにも影響を受ける。

4.3.2 揺らぎの平滑化

揺らぎを抑える方策は複数ある。ミニバッチ化はその代表であり、平均により推定誤差が薄まる。さらに、学習率減衰は更新量を小さくして揺れを制限する。

実務では、モーメンタムや正則化、勾配の正規化、クリッピングなども組み合わせて、ノイズによる不安定化を抑えることが多い。

4.4 理論的保証

理論的保証は、どの条件のもとで、どの意味での収束が保証されるかを整理する作業である。たとえば凸問題では最適値への収束や平均勾配の収束を、非凸では停留点に関連する性質を議論することが多い。

さらに、勾配推定が無偏であるか、分散が有界であるか、学習率の減衰が適切かといった前提により、保証の強さや適用範囲が変わる。したがって「保証の存在」は手法の設計だけでなくデータとモデルの仮定にも依存する。

5 実装上の工夫

5.1 正則化

正則化は過学習抑制や最適化の安定性向上に用いられる。代表例として、パラメータの大きさを抑える \(L_2\) 正則化や、疎な解を促す \(L_1\) 正則化がある。目的関数に正則項を加えることで、勾配更新には正則化成分が追加される。

正則化の強さは学習率やミニバッチ設定と相互作用するため、同時に調整されることが多い。

5.2 モーメンタム

モーメンタムは更新に「慣性」を持たせることで、ノイズによる方向転換を抑え、安定した下降を促す考え方である。代表的には、過去の勾配(あるいは更新方向)の指数移動平均を蓄え、その蓄えを使って次の更新量を決める。

結果として、緩やかな曲面を渡る際の進みが改善される一方、学習率との組み合わせ次第では過度に蓄積して不安定になるため、係数の設定が重要になる。

5.3 逐次更新の安定化

5.3.1 勾配の正規化

勾配のスケールが大きく揺れると、更新が過剰になり不安定化する。勾配正規化では、勾配の大きさを制御することで極端な更新を抑える。代表例として、勾配のノルムで割る(あるいは比率で調整する)方法がある。

ただし正規化は学習率の意味も変えるため、他のハイパーパラメータと整合させる必要がある。

5.3.2 クリッピング

勾配クリッピングは、勾配の大きさが閾値を超えた場合に更新方向の大きさを抑える処理である。実装では、勾配ノルムが上限を超えたら上限に収まるようにスケーリングする。

特に勾配爆発が問題になる非線形モデルでは、安定化の効果が大きいことが多い。クリップ閾値が小さすぎると学習が鈍化するため、慎重な調整が求められる。

6 応用

6.1 機械学習

機械学習では、回帰や分類、表現学習など幅広いタスクで確率的勾配法が基盤的に用いられる。損失関数がデータ点単位で分解できる場合、ミニバッチ勾配による反復更新が自然に適用できる。

また、深層学習のようにパラメータ数が多い場合、全勾配計算が現実的でないため、確率的な近似が実用面で決定的になる。さらに学習率スケジュール、正則化、モーメンタムといった実装上の工夫が、精度と計算時間の両面に影響する。

6.2 統計推定

統計推定では、尤度や事後分布に関する目的関数を最適化することで推定を行う場面が多い。確率的勾配法は、大量の観測データに対して反復的にパラメータを更新できるため、オンライン推定や大規模推定に適している。

また、損失の形が差分可能であれば、期待値の最適化という見方から自然に組み込める。データが逐次到着する状況では、更新を実時間に近い形で実行できる点が利点になる。

6.3 最適制御

最適制御では、コスト積分に対応する目的関数を最小化する設計が現れる。確率的勾配法は、シミュレーションにより得られるサンプルや近似モデルにもとづいて勾配情報を推定し、方策や制御パラメータを更新する際に利用されることがある。

ただし、制御系の安定性や安全性は目的関数最小化だけでは決まらないため、制約条件や安全基準を別途扱う設計が重要になる場合がある。

6.4 逆問題

逆問題では、観測データから未知量を推定するために、順問題(生成モデル)と整合する目的関数を最小化する。確率的勾配法は、計算負荷の高い最適化を、サンプルや部分データに基づく更新で進められるため、大規模な観測や高次元推定に適用される。

観測ノイズやモデル不確かさがある場合には、正則化の設定や推定誤差の扱いが結果に大きく影響する。

7 関連手法

7.1 確率的準ニュートン法

準ニュートン法は、ヘッセ行列(2階情報)を直接計算せずに、その効果を近似して更新を行う。確率的準ニュートン法は、この枠組みに確率的勾配推定を組み合わせ、更新の方向やスケールをより賢く調整することで収束を改善しようとする。

ただし2階情報の近似はノイズの影響を受けやすく、更新の安定化や計算コストの管理が課題になる。

7.2 座標降下法

座標降下法は、変数の一部(あるいは1変数ずつ)に着目して逐次的に最適化する手法である。確率的勾配法は勾配情報を用いるが、座標降下法では更新の焦点が座標にある点で性質が異なる。

一部の問題では座標ごとの構造を利用でき、計算効率が向上することがある。確率的勾配法との比較では、どの更新が主要な計算ボトルネックを回避できるかが鍵になる。

7.3 近接勾配法

近接勾配法(proximal gradient method)は、非滑らかな正則化項を含む最適化に適した枠組みである。通常の勾配降下では扱いが難しい項を、近接作用素を通じて更新に組み込むことで、制約やスパース性を反映できる。

確率的勾配法と組み合わせることで、大規模データに対しても非滑らかな要素を含む目的関数を反復的に最小化する設計が可能になる。

7.4 自然勾配法

自然勾配法(natural gradient)は、パラメータ空間の幾何(情報行列にもとづく距離)を考慮して更新方向を調整する手法である。通常の勾配は単なる最急降下方向だが、自然勾配では「適切な計量」によって更新の意味が変わる。

確率的勾配法の枠組みに自然勾配の考え方を導入すると、学習のスケール感を改善し、より効率よく進む可能性がある。ただし情報行列の推定や計算コストが課題となることがある。