1行定義
確率的勾配降下法とは、訓練データからランダムに選んだ一部のデータで勾配を計算し、重みを少しずつ更新していく最適化手法のことです。
くわしく
確率的勾配降下法(SGD)は、ニューラルネットワークの重みを調整する最も基本的な最適化手法です。
勾配降下法の考え方
学習とは、誤差関数の値が小さくなる重みを探すことです。勾配降下法では、誤差関数の勾配(傾き)を計算し、坂を下る向きに重みを少しだけ動かします。式で書くとw ← w − η × 勾配です。η(イータ)は学習率で、1回にどれだけ動かすかを決めます。霧の中で、足元の傾きだけを頼りに山を下りる様子にたとえられます。
「確率的」とは
訓練データ全体で勾配を計算してから1回更新する方法を、バッチ学習(最急降下法)といいます。正確ですが、データが多いと1回の更新に時間がかかります。
確率的勾配降下法では、ランダムに選んだ1件のデータだけで勾配を計算し、すぐに更新します。どのデータを使うかがランダムなので「確率的」と呼びます。実際のディープラーニングでは、数十〜数百件のまとまり(ミニバッチ)ごとに更新するミニバッチ学習が主流で、これも広い意味でSGDと呼ばれます。
長所と短所
1回の更新が軽いので、大量のデータや、データが届くたびに学習するオンライン学習に向いています。また、勾配にばらつきがあるため、進む方向が少しずつ揺れます。この揺れのおかげで、浅い局所最適解から抜け出せることがあります。
一方、揺れのために、最適解の近くで行ったり来たりしやすくなります。そこで、学習が進むにつれて学習率を下げる工夫や、過去の更新の勢いを使うモーメンタム、学習率を自動で調整するAdaGrad・RMSprop・Adamなどの改良手法が考えられてきました。
考え方の起源は、1951年のロビンスとモンローによる確率近似法の研究です。
覚え方
「全員に聞かずに数人に聞き、すぐに一歩動く」と覚えます。
G検定での出題
出題のされ方
全データを使う最急降下法(バッチ学習)との違い、ミニバッチ学習やオンライン学習との関係、更新のばらつきが局所最適解からの脱出に役立つ点、モーメンタムやAdamなどの改良手法が問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| 確率的勾配降下法このページの用語 | 訓練データからランダムに選んだ一部のデータで勾配を計算し、重みを少しずつ更新していく最適化手法 |
| ミニバッチ学習 | 訓練データを数十〜数百件ずつの小さなまとまり(ミニバッチ)に分け、まとまりごとに勾配を計算して重みを更新する学習方法 |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
確率的勾配降下法では、ランダムに選んだ一部のデータ(1件またはミニバッチ)から勾配を求めて、重みを更新する。
答えを見る
答え ◯ 正しい
全データで勾配を求めるバッチ学習より1回の更新が軽く、同じ時間で多くの回数を更新できます。
-
確率的勾配降下法は、勾配のばらつきのおかげで、浅い局所最適解から抜け出せることがある。
答えを見る
答え ◯ 正しい
一部のデータから求めた勾配は、本来の勾配から少しずれます。このずれが、浅いくぼみから押し出す揺れとして働くことがあります。
-
確率的勾配降下法は、毎回すべての訓練データを使って勾配を正確に求めるため、1回の更新にかかる計算量が大きい。
答えを見る
答え × 誤り
毎回すべてのデータを使うのはバッチ学習(最急降下法)です。確率的勾配降下法は一部のデータだけを使います。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目16 最適化手法)
- Herbert Robbins, Sutton Monro, A Stochastic Approximation Method, The Annals of Mathematical Statistics 22(3), 400–407 (1951)
- Sebastian Ruder, An overview of gradient descent optimization algorithms (2016)
- Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press (2016) (5.9 Stochastic Gradient Descent, 8.3 Basic Algorithms)