確率的勾配降下法(SGD)に適したミニバッチサイズの選択


13

確率的勾配降下法を実行するときにミニバッチサイズの選択を調べる文献はありますか?私の経験では、これは経験的な選択であるように思われ、通常、相互検証またはさまざまな経験則を使用して見つかります。

検証エラーが減少するにつれて、ミニバッチのサイズを徐々に大きくすることは良い考えですか?これは汎化エラーにどのような影響を及ぼしますか?非常に小さなミニバッチを使用して、モデルを数十万回更新する方がよいですか?非常に小さい値とバッチの間のどこかでバランスの取れた数値を使用した方がよいでしょうか?
ミニバッチのサイズをデータセットのサイズ、またはデータセット内の予想されるフィーチャ数に合わせてスケーリングする必要がありますか?

私は明らかにミニバッチ学習スキームの実装について多くの質問をしています。残念ながら、私が読んだほとんどの論文は、このハイパーパラメータをどのように選択したかを具体的に示していません。私はYann LeCunのような著者から、特に論文のTricks of the Tradeコレクションから、いくつかの成功を収めてきました。しかし、私はこれらの質問が完全に対処されているのを見ていません。誰かが論文の推奨事項、または機能を学習するときに適切なミニバッチサイズを決定するために使用できる基準に関するアドバイスを持っていますか?


私はこのトピックについて多くのヒットを得ていないようです。このような機械学習やディープラーニングの質問をするのに最適なスタック交換サイトはありますか?
Jason_L_Bens 2013

回答:


6

SGDの有効性に関する理論は、1つの例の更新(つまり、ミニバッチサイズ1)で作成されたため、より大きなミニバッチを使用する必要は理論的に必要ありません。2つの実用的な利点があります。

1つは、計算をベクトル化できる場合、1以上の小さなミニバッチの勾配をほぼ同じくらい迅速に計算でき、トレーニングの速度が大幅に向上する可能性があることです。

この場合、最適なミニバッチサイズは、使用している特定のハードウェアと実装の関数なので、スイートスポットを見つけるために実験するのが最善でしょう。

2つ目は、ミニバッチサイズ> 1で勾配を計算すると、より正確な勾配とより最適なステップになります。ただし、このメリットは、ミニバッチのサイズが1を超えるとすぐに到達し、横ばいになるため、主に最初の目的に集中できます。

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