勾配降下法がなぜ確率的(Stochastic)になったか
機械学習のアルゴリズム、特に線形回帰における最適化手法の進化について解説する記事が公開された。まず、線形回帰モデルの勾配降下法と確率的勾配降下法(SGD)の必要性を理解するため、数学的な基礎から解説されている。通常の線形回帰では、最小二乗法を用いてスロープと切片の公式を直接導出できるが、これは特徴量が一つの場合に限られ、複雑な計算を経る必要がある。 特徴量が増加すると計算はさらに複雑化し、行列を用いた正规方程式(Normal Equation)が提案される。これはすべての特徴量の最適パラメータを一度に計算する手法であるが、逆行列の計算が必要となるため、データ数が数百万に達する大規模データセットでは計算コストが高くなり、実用的でなくなるという欠点がある。この課題を解決するため、勾配降下法が導入された。 勾配降下法は、パラメータを初期値から始め、損失関数の勾配(傾き)を計算して少しずつ最小値へ向けて更新する反復的手法である。これにより、逆行列計算の必要がなくなり、大規模データでも処理が可能となる。しかし、全データセットを用いて勾配を計算するバッチ勾配降下法は、データ量が多いと更新に時間がかかる。 そこで、全データを一度に処理せず、ランダムに選択した一つのデータポイントごとに勾配を計算して即座にパラメータを更新する確率的勾配降下法(SGD)が採用される。SGD は計算が極めて迅速であり、大規模データや深層学習において広く利用されている。ただし、更新の経路が振動しやすくなるという特徴もある。さらに、バッチ勾配と SGD の中間として、少量のデータをまとめて処理するミニバッチ勾配降下法も存在する。結論として、データサイズが大きい場合や、閉形式の解が存在しない深層学習の場面では、勾配降下法とその派生手法が不可欠な最適化アルゴリズムとなっている。
