2017-07-20 13 views
1

私はいくつかのリーチと計算を行いました。私が正しく理解していれば、確率的勾配降下 - 「Adam optimiser」は基本的には通常の勾配降下です。ディンプル関数の最小値を反映する必要はないかもしれませんか?ありがとうございます確率的勾配降下は、基本的には通常の勾配降下ですか?

+0

質問はウィキペディアで扱われていませんか? 「ギャップに陥ったNNを避けたい」というのは、この利用の理由の中で最も少ない。異なるコンバージェンス特性とメモリ使用量がはるかに重要です(ギャップ*で捕捉されたビーイングは理論的にはまだ分かりませんが、一般的に収束していない損失でも同様です)。 AdamはバニラSGDでもありません。これは、いくつかの前提の下でコンバージェンスを向上させようとする変種です(古典的な勢いや共同体のように)。 – sascha

+0

サスカありがとうございます。私はメモリ使用量について考えていません。正しい。 – Makaroniiii

答えて

0

Stochastic Gradient Descentは、一般にBatch Gradient Descentと並んでいます。 http://cs229.stanford.edu/notes/cs229-notes1.pdf

Repeat until convergence 
{ 
    θj := θj + α * summation(i=1 to m) (y - h(x)) x_j --> for every j 
} 
: - モードバッチ では、各機能の共同を更新するために、入力特徴ベクトルXの効率的な、あなたはALLあなたのトレーニングデータセットのレコードを超える合計、 源を必要とします

ここで重要なのは、すべてのレコードの合計が各フィーチャで行われるため、データの5000個のフィーチャ/属性/カラムがある場合は、実行ごとに合計5000回の実行を行っていることです。これとは対照的に

、あなたが確率的を見れば、基本的に

Loop 
{ 
    for i=1 to m, { 
     θj := θj + α( y(i) − h(x(i)) x(i) j (for every j). 
    } 
} 

、各J、と考えるだけで、その特定の機能またはXの値について。 それは速くなります。 バッチと同じ最小値を持たないかもしれないし、グローバル最小値が達成されないかもしれないが、実際にはうまくいく傾向があります。

関連する問題