確率的勾配降下法(しばしばSGDと略される)は、微分可能性や劣微分可能性などの適切な平滑性を持つ目的関数を最適化するための反復法である。これは、データセット全体から計算される実際の勾配を、ランダムに選択されたデータの部分集合から計算される推定値に置き換えるため、勾配降下最適化の確率的近似とみなすことができる。特に高次元の最適化問題では、これにより非常に高い計算負荷が軽減され、収束率の低下と引き換えに、より高速な反復が達成される。
確率近似の背後にある基本的な考え方は、1950年代のRobbins–Monroアルゴリズムに遡ることができる。今日、確率的勾配降下法は、特に機械学習におけるニューラルネットワークやその他の深層学習モデルの訓練において、重要な最適化手法となっている。
背景
統計的推定と機械学習の両方において、Q(w) = (1/n) Σᵢ Qᵢ(w) という和の形を持つ目的関数の最小化問題が考えられ、Q(w)を最小化するパラメータwが推定される。各加数関数Qᵢは通常、訓練データセット内のi番目の観測値に関連付けられる。
古典的な統計学では、和の最小化問題は、独立した観測値に対する最小二乗法や最尤推定において生じる。和の最小化子として生じる推定値の一般的なクラスは、M推定値と呼ばれる。しかし、いくつかの最尤問題では、局所的最小化を要求することさえも制限が強すぎることが長年認識されており、現代の統計理論家は、尤度関数の停留点や、その導関数であるスコア関数の零点を考慮することが多い。
和の最小化問題は、経験リスク最小化でも生じる。そこでは、Qᵢ(w)はi番目の例における損失関数の値であり、Q(w)は経験リスクである。
上記の関数を最小化するために使用される場合、標準的な(または「バッチ」)勾配降下法は、w := w - η ∇Q(w) = w - (η/n) Σᵢ ∇Qᵢ(w) という形式の反復を実行する。ステップサイズηは、機械学習では学習率と呼ばれることもある。多くの場合、加数関数は、1パラメータ指数族など、和関数と和勾配の評価を安価に可能にする単純な形式を持つ。しかし、訓練セットが膨大で単純な公式が存在しない場合、すべての加数関数の勾配を評価する必要があるため、勾配の和の評価は非常に高価になる。計算コストを節約するために、確率的勾配降下法は各ステップで加数関数の部分集合をサンプリングするが、これは大規模な機械学習問題で非常に効果的である。
反復法
確率的(または「オンライン」)勾配降下法では、Q(w)の真の勾配は、単一のサンプルでの勾配によって近似される:w := w - η ∇Qᵢ(w)。アルゴリズムが訓練セットを一巡する際、各訓練サンプルに対して上記の更新を実行する。アルゴリズムが収束するまで、訓練セットに対して複数のパスを行うことができる。これを行う場合、サイクルを防ぐために、各パスでデータをシャッフルすることができる。典型的な実装では、アルゴリズムが収束するように適応学習率を使用する場合がある。
擬似コードでは、確率的勾配降下法は次のように表すことができる:
- パラメータwと学習率ηを初期化する。
- 収束するまで繰り返す:
- 訓練データをシャッフルする。
- 各訓練例iについて:
- 勾配∇Qᵢ(w)を計算する。
- w := w - η ∇Qᵢ(w) と更新する。
真の勾配と単一サンプルでの勾配を計算することの間の妥協点は、各ステップで複数の訓練サンプル(「ミニバッチ」と呼ばれる)に対する勾配を計算することである。これは、各ステップを個別に計算するのではなく、ベクトル化ライブラリを利用できるため、真の確率的勾配降下法よりも大幅に優れた性能を発揮する可能性があり、これはバックプロパゲーションの文脈で最初に示された。また、各ステップで計算される勾配がより多くの訓練サンプルで平均化されるため、より滑らかな収束をもたらす可能性もある。
確率的勾配降下法の収束は、凸最小化と確率近似の理論を用いて分析されている。簡単に言えば、学習率が適切な速度で減少し、比較的緩やかな仮定の下で、目的関数が凸または擬凸である場合、確率的勾配降下法は大域的最小値にほぼ確実に収束し、そうでない場合は局所的最小値にほぼ確実に収束する。これはRobbins–Siegmundの定理の結果である。
線形回帰
一組の訓練例 (xᵢ, yᵢ) に直線 ŷ = w·x を当てはめたいとする。一般的な目的は、平均二乗誤差 Q(w) = (1/n) Σᵢ (ŷᵢ - yᵢ)² を最小化することである。単一の例に対する勾配は ∇Qᵢ(w) = 2(ŷᵢ - yᵢ)xᵢ である。確率的勾配降下法では、更新は w := w - η(ŷᵢ - yᵢ)xᵢ となる。この単純な例は、SGDが一度に1つのサンプルを使用し、大規模なデータセットに対して計算効率が高いことを示している。
機械学習における応用
確率的勾配降下法は、深層学習モデル、例えばトランスフォーマーや大規模言語モデルなど、多くの機械学習モデルの訓練における中核的な最適化アルゴリズムである。これは、画像認識、自然言語処理、生成AIなどのタスクのためのニューラルネットワークの訓練に使用される。Adamやその他のSGD変種のような変種は、収束と安定性を改善するために開発されてきた。学習率スケジュールの選択は、効果的な訓練にとって重要である。
課題と拡張
SGDは、適切な学習率の選択、ノイズの多い勾配への対応、不良な局所的最小値の回避などの課題に直面する。拡張には、モメンタム、適応学習率(例:Adam)、および爆発的な勾配を防ぐための勾配クリッピングなどの技術が含まれる。深層学習では、バッチ正規化やドロップアウトなどの手法が、SGDと併用して訓練を改善するためによく使用される。
歴史的背景
1950年代のRobbins–Monroアルゴリズムは、確率近似の基礎を築いた。1980年代から1990年代にかけて、SGDは特にバックプロパゲーションを用いたニューラルネットワーク訓練で普及した。今日、それは人工知能の研究と産業における基本的なツールであり続け、主要なAI研究所や企業によって使用されている。