【かくりつてきこうばいこうかほう】
確率的勾配降下法(SGD) とは?
最終更新:
💡 データを少しずつ選び、学習の一歩を繰り返す
確率的勾配降下法(SGD)は、学習データをランダムに選び、勾配を使ってパラメータを更新する方法です。全データを使う方法、ミニバッチ、学習率、更新の揺れとの関係を説明します。
📌 このページのポイント
全部のデータを見る前に、更新してよいの?
データごとの損失を平均したものを小さくしたいとき、ランダムに選んだデータの勾配を使って一歩ずつ更新できるよ。全件の勾配を毎回計算する代わりに、選んだデータから方向を推定するんだ。1回で正解を決めるのではなく、この更新を繰り返すね。
1件とミニバッチは、何が違うの?
狭い意味のSGDは1件を選ぶ方法。ミニバッチSGDは選んだ複数件の勾配を平均して更新するよ。たとえば全体が100件なら、毎回100件を見る方法、1件ずつ見る方法、10件ずつ見る方法を比較できる。これは件数の例で、10件がどのモデルでも最適という意味ではないよ。
少ししか見ないなら、方向を間違えない?
選ばれたデータによって勾配が違うので、更新は揺れることがあるよ。適切にランダムに選ぶと、平均的には全体の勾配を推定できる。でも個々の更新で全体の損失が必ず下がるわけではない。図は「選ぶ量と更新」を比べていて、必ず最短経路で最小値に着く図ではないんだ。
更新の歩幅は、どう決めるの?
SGDなら、速くて一番よい答えになる?
1回の更新の計算は小さくできるけれど、必要な更新回数や並列計算、データの読み込みで全体の時間は変わるよ。大域的な最適解や精度の向上は保証されない。ミニバッチの件数は計算効率とメモリも考えて選び、ほかの最適化手法とも条件を合わせて比べよう。
まとめ:ざっくりこれだけ覚えればOK!
「確率的勾配降下法」って出てきたら「データをランダムに少しずつ選んで、学習を更新する方法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Stochastic Gradient Descent」 = 確率的な勾配降下
💬 「Stochastic」は確率的・ランダムという意味で、データをランダムに選ぶことからこの名前がついたんだよ