ニューラルネットワーク:SGDのエポックはミニバッチのエポックと同じですか?


8

SGDでは、エポックはトレーニングデータの完全なプレゼンテーションであり、エポックごとにN個の重み更新があります(トレーニングセットにN個のデータ例がある場合)。

代わりにミニバッチを実行する場合、たとえば20のバッチで実行します。1つのエポックはN / 20の重みの更新で構成されますか、それとも同じ数の重みの更新が含まれるように20ずつ「延長」されるエポックですか?

いくつかの論文のように私はこれを尋ねます学習は述べられた時代の数に対して速すぎるようです。



質問は慣例に関するものです。つまり、誰かが20のミニバッチを使用して10エポックのネットワークをトレーニングしたと述べた場合、これは10 * Nの重みの更新、または10 * N / 20があったことを意味しますか?
ジェームズ

わかりました。混乱してしまいました。多分stats.stackexchange.com/a/164875/12359があなたの質問に答えますか?
フランクダーノンコート

回答:


6

ニューラルネットワークの用語では:

  • 1 エポック = すべてのトレーニング例の1つのフォワードパスと1つのバックワードパス
  • バッチサイズ = 1つの順方向/逆方向パスでのトレーニング例の数。バッチサイズが大きいほど、必要なメモリ領域が多くなります。
  • 多数の反復 =パス数、例の[バッチサイズ]数を用いて各パス。明確にするために、1つのパス= 1つの順方向パス+ 1つの逆方向パス(順方向パスと逆方向パスを2つの異なるパスとして数えません)。

例:1000のトレーニング例があり、バッチサイズが500の場合、1エポックを完了するには2回の反復が必要です。


1

フランクの答えは正しくありません。彼は私よりもはるかに多くの担当者がいて、多くの人々がすでにそれに投票したので、これを言うのにいくらかの直感が必要です。

エポックは、すべてのトレーニング例はなく、トレーニングセットを1回通過することを意味する単語です

あ、はい。バッチGDではなくミニバッチGDを実行する場合、たとえば20のバッチで言うと、1つのエポックはN / 20の重みの更新で構成されます。Nはサンプルの総数です。

冗長になるために、バッチ勾配降下では、トレーニングを1回パスするだけで勾配降下ステップを1つだけ実行できます。ミニバッチ(バッチサイズ= 5,000)勾配降下では、トレーニングセットを1回通過する、つまり1エポックで、5,000勾配降下ステップを実行できます。

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