SGD
Stochastic Gradient Descent
SGD(確率的勾配降下法)とは
ひとことで
学習データ全体ではなく、ランダムに選んだ1件(または少数)のデータごとに勾配を計算してパラメータを更新する勾配降下法。計算が軽く、局所最適解から抜け出しやすい面もある。
たとえると
全国民にアンケートを取ってから方針を決めるのではなく、無作為に選んだ数人の意見を聞いては少しずつ方針を修正していくやり方です。1回ごとの判断は少しぶれますが、素早く何度も修正できます。
現場ではこう使う
大量の画像データを使った学習で、全データの勾配を毎回計算するとメモリが足りず、更新にも時間がかかっていました。データを小さなまとまりに分けて更新するミニバッチ方式のSGDに切り替えたところ、限られた計算資源でも学習を進められるようになりました。
試験のポイント
EXAM POINT「ランダムに選んだデータで勾配を計算」「更新ごとにばらつきがある」と出てきたらSGDです。全データを使うバッチ学習、少数ずつのミニバッチ学習、1件ずつのオンライン学習の区別が問われます。SGDを改良した最適化手法として、モーメンタム、AdaGrad、RMSprop、Adamの名前と特徴も押さえましょう。
混同しやすい用語との違い
- Gradient Descent勾配降下法全体を指す。SGDはデータをランダムに選んで更新する方式
- Backpropagation勾配を計算する方法。SGDはその勾配で重みを更新する手順