勾配降下法と確率勾配降下法の違いは何ですか?


回答:


26

簡単な簡単な説明:

勾配降下(GD)と確率的勾配降下(SGD)の両方で、一連のパラメーターを反復的に更新して、誤差関数を最小化します。

GDでは、トレーニングセットのすべてのサンプルを実行して特定の反復でパラメーターの更新を1回行う必要がありますが、SGDでは、トレーニングセットのトレーニングサンプルの1つまたはサブセットのみを使用します特定の反復でパラメータの更新を行うため。サブセットを使用する場合、ミニバッチ確率的勾配降下と呼ばれます。

したがって、トレーニングサンプルの数が多く、実際には非常に大きい場合、勾配降下の使用には時間がかかりすぎる可能性があります。これは、パラメーターの値を更新するたびに、トレーニングセット全体を実行するためです。一方、1つのトレーニングサンプルのみを使用し、最初のサンプルからすぐに改善し始めるため、SGDの使用は高速になります。

SGDは、多くの場合、GDと比較してはるかに速く収束しますが、エラー関数はGDの場合ほど小さくありません。多くの場合、パラメーター値のSGDで得られる近似値は、最適値に達し、そこで振動し続けるため、十分です。

実際のケースでこの例が必要な場合は、Andrew NGのメモをチェックして、両方のケースに関係する手順を明確に示してください。cs229-notes

ソース:Quoraスレッド


おかげで、簡単にこのように?Gradient Descentには、バッチ、確率的、およびミニバッチの3つのバリアントがあります。すべてのトレーニングサンプルが評価された後、バッチは重みを更新します。確率論的な重みは、各トレーニングサンプルの後に更新されます。ミニバッチは、両方の長所を兼ね備えています。完全なデータセットは使用しませんが、単一のデータポイントは使用しません。データセットからランダムに選択されたデータセットを使用します。このようにして、計算コストを削減し、確率バージョンよりも低い分散を実現します。
エンギン

5

勾配降下法またはバッチ勾配降下法では、エポックごとにトレーニングデータ全体を使用しますが、確率勾配降下法では、エポックごとに単一のトレーニング例を使用します。エポックごとのトレーニングデータのミニバッチ(小さな部分)、ミニバッチのサイズを選択するための経験則は、32、64、128などのように2の累乗です。
詳細については、cs231n講義ノート


おかげで、簡単にこのように?Gradient Descentには、バッチ、確率的、およびミニバッチの3つのバリアントがあります。すべてのトレーニングサンプルが評価された後、バッチは重みを更新します。確率論的な重みは、各トレーニングサンプルの後に更新されます。ミニバッチは、両方の長所を兼ね備えています。完全なデータセットは使用しませんが、単一のデータポイントは使用しません。データセットからランダムに選択されたデータセットを使用します。このようにして、計算コストを削減し、確率バージョンよりも低い分散を実現します。
エンギン

4

確率的という言葉を含めることは、勾配降下のフレームワーク内で、最適化中にパラメーターを更新するために、各実行でトレーニングデータからランダムサンプルが選択されることを意味します。

こうすることで、計算されたエラーを計算し、より高速な反復で重みを更新するだけでなく(一度に処理するサンプルの選択が少ないため)、最適化をより迅速に進めることもできます。持ってここに答えを見てみ申し出の利点をトレーニングするための確率的minibatchesを使用する理由についての詳細については、。

おそらく欠点の1つは、最適化へのパス(常に同じ最適化であると仮定した場合)のノイズが大きくなる可能性があることです。したがって、勾配降下の各反復でエラーがどのように減少するかを示す、なめらかな滑らかな損失曲線の代わりに、次のようなものが表示される場合があります。

ノイズの多い損失曲線

損失は​​時間とともに明らかに減少しますが、エポックからエポック(トレーニングバッチからトレーニングバッチ)に大きな変動があるため、曲線はノイズが多くなります。

これは、単純に、各反復でデータセット全体から確率的/ランダムに選択されたサブセットの平均誤差を計算するためです。一部のサンプルではエラーが大きく、一部では低くなります。したがって、勾配降下の1回の反復にランダムに使用したサンプルに応じて、平均は変化します。


おかげで、簡単にこのように?Gradient Descentには、バッチ、確率的、およびミニバッチの3つのバリアントがあります。すべてのトレーニングサンプルが評価された後、バッチは重みを更新します。確率論的な重みは、各トレーニングサンプルの後に更新されます。ミニバッチは、両方の長所を兼ね備えています。完全なデータセットは使用しませんが、単一のデータポイントは使用しません。データセットからランダムに選択されたデータセットを使用します。このようにして、計算コストを削減し、確率バージョンよりも低い分散を実現します。
エンギン

私は、バッチがトレーニングセット全体である(したがって基本的に1エポック)バッチがあり、次にサブセットが使用される(したがってセットよりも小さい任意の数)ミニバッチがあります-このサブセットはランダムに選択されるため、確率的です。単一のサンプルを使用することはオンライン学習と呼ばれ、ミニバッチのサブセットになります...または単にを使用したミニバッチです。Nn=1
n1k31t4

TKS、これは明らかです!
datdinhquoc
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.