確率的勾配降下法とは

かくりつてきこうばいこうかほうstochastic gradient descent略語 SGD

1行定義

確率的勾配降下法とは、訓練データからランダムに選んだ一部のデータで勾配を計算し、重みを少しずつ更新していく最適化手法のことです。

くわしく

確率的勾配降下法(SGD)は、ニューラルネットワークの重みを調整する最も基本的な最適化手法です。

勾配降下法の考え方

学習とは、誤差関数の値が小さくなる重みを探すことです。勾配降下法では、誤差関数の勾配(傾き)を計算し、坂を下る向きに重みを少しだけ動かします。式で書くとw ← w − η × 勾配です。η(イータ)は学習率で、1回にどれだけ動かすかを決めます。霧の中で、足元の傾きだけを頼りに山を下りる様子にたとえられます。

「確率的」とは

訓練データ全体で勾配を計算してから1回更新する方法を、バッチ学習(最急降下法)といいます。正確ですが、データが多いと1回の更新に時間がかかります。

確率的勾配降下法では、ランダムに選んだ1件のデータだけで勾配を計算し、すぐに更新します。どのデータを使うかがランダムなので「確率的」と呼びます。実際のディープラーニングでは、数十〜数百件のまとまり(ミニバッチ)ごとに更新するミニバッチ学習が主流で、これも広い意味でSGDと呼ばれます。

長所と短所

1回の更新が軽いので、大量のデータや、データが届くたびに学習するオンライン学習に向いています。また、勾配にばらつきがあるため、進む方向が少しずつ揺れます。この揺れのおかげで、浅い局所最適解から抜け出せることがあります。

一方、揺れのために、最適解の近くで行ったり来たりしやすくなります。そこで、学習が進むにつれて学習率を下げる工夫や、過去の更新の勢いを使うモーメンタム、学習率を自動で調整するAdaGrad・RMSprop・Adamなどの改良手法が考えられてきました。

考え方の起源は、1951年のロビンスとモンローによる確率近似法の研究です。

覚え方

「全員に聞かずに数人に聞き、すぐに一歩動く」と覚えます。

G検定での出題

全データを使う最急降下法(バッチ学習)との違い、ミニバッチ学習やオンライン学習との関係、更新のばらつきが局所最適解からの脱出に役立つ点、モーメンタムやAdamなどの改良手法が問われます。

シラバスでは「確率的勾配降下法(SGD)」と表記されています。

混同しやすい用語

用語意味
ミニバッチ学習訓練データを数十〜数百件ずつの小さなまとまり(ミニバッチ)に分け、まとまりごとに勾配を計算して重みを更新する学習方法

◯×チェック

  1. 確率的勾配降下法では、ランダムに選んだ一部のデータ(1件またはミニバッチ)から勾配を求めて、重みを更新する。

    答えを見る

    答え ◯ 正しい

    全データで勾配を求めるバッチ学習より1回の更新が軽く、同じ時間で多くの回数を更新できます。

  2. 確率的勾配降下法は、勾配のばらつきのおかげで、浅い局所最適解から抜け出せることがある。

    答えを見る

    答え ◯ 正しい

    一部のデータから求めた勾配は、本来の勾配から少しずれます。このずれが、浅いくぼみから押し出す揺れとして働くことがあります。

  3. 確率的勾配降下法は、毎回すべての訓練データを使って勾配を正確に求めるため、1回の更新にかかる計算量が大きい。

    答えを見る

    答え × 誤り

    毎回すべてのデータを使うのはバッチ学習(最急降下法)です。確率的勾配降下法は一部のデータだけを使います。

練習問題

確率的勾配降下法の問題(7問)
  1. 誤差逆伝播法と最適化手法の役割
  2. 勾配降下法の改良手法の違い
  3. バッチサイズと更新回数
  4. 勾配降下法の1回の更新
  5. バッチ・オンライン学習の比較
  6. 学習率を減衰させる理由
  7. ミニバッチの並び順の影響

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術16

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習