ミニバッチのサイズを選択するためのルールはありますか?


21

ニューラルネットワークをトレーニングする場合、1つのハイパーパラメーターはミニバッチのサイズです。一般的な選択肢は、ミニバッチあたり32、64、128個の要素です。

ミニバッチの大きさのルール/ガイドラインはありますか?トレーニングへの影響を調査する出版物はありますか?


メモリに収める以外に?
エーサンM.ケルマーニ

はい。たとえば、「バッチサイズが大きいほど良い」と書かれている出版物はありますか(メモリに収まる限り)。
マーティントーマ

@ EhsanM.Kermaniそれは重要だと思う。CIFAR-100で数回実行しましたが、バッチサイズに応じて異なる結果が得られます(オーバーフィットが問題にならないように早期に停止します)
Martin Thoma

3
より大きな計算はより速く(効率的)、より小さな収束はより速く、より一般化されます。cf. 確率的最適化このRNN研究のための効率的なミニバッチトレーニング。問題に対して経験的に見つけたスイートスポットがあります。
エムレ

2
BLEIらのこの最も洞察に満ちた論文は、ちょうど出てきた:確率的勾配降下を近似ベイズ推論として
エムレ

回答:


22

深い学習のために大きな-バッチトレーニング:汎化ギャップとシャープミニマのintersting文のカップルがあります:

実際には、より大きなバッチを使用すると、一般化する能力によって測定されるように、モデルの品質が低下することが観察されています[...]

大規模バッチ方式は、トレーニングおよびテスト機能の鋭い最小化に収束する傾向があります。よく知られているように、鋭い最小は一般化の低下につながります。n。対照的に、小バッチ法は一貫してフラットミニマイザーに収束し、我々の実験は、これが勾配推定に固有のノイズによるものであるという一般的な見解を支持しています。

私の修士論文から:したがって、ミニバッチのサイズの選択は影響します:

  • 収束までのトレーニング時間:スイートスポットがあるようです。バッチサイズが非常に小さい場合(8など)、この時間は長くなります。バッチサイズが大きい場合、最小サイズよりも大きくなります。
  • エポックごとのトレーニング時間:計算が大きいほど高速(効率的)
  • 結果として得られるモデルの品質:一般化が優れているため(?)

ハイパーパラメーターの相互作用に注意することが重要です。バッチサイズは他のハイパーパラメーター、特に学習率と相互作用する可能性があります。一部の実験では、この相互作用により、モデルの品質に対するバッチサイズのみの影響を分離することが困難になる場合があります。別の強力な相互作用は、正規化の早期停止です。

こちらもご覧ください


@NeilSlaterコメント(私のコミュニティwiki)にコメントを追加しますか?
マーティントーマ

私は答えが一般的なものとして好きです。さらに、特定の例で、非常に小さく巨大でミニバッチであるものについての番号を持っていることを感謝します。
だからS

@SoSミニバッチは単なる用語です。「ミニ」は特定のサイズを指すものではありませんが、1つ以上の例があり、トレーニングセット全体よりも少ないことを意味します。「非常に小さい」と考えられるのは8以下です(答えを編集したところです)。また、このために壁時計のトレーニング時間の極端な(5倍以上)増加を測定しました。通常は64または128のようなものです。「巨大」とは何なのかよくわかりません。これはハードウェアに依存する可能性があると思います。
マーティントーマ

この答えは、答えよりも多くの質問をします。このスイートスポットはどこにありますか(グラフが役立つかもしれません)。学習率や早期停止とどのように相互作用しますか
xjcl

答えは、ネットワークとデータセットによって異なります。したがって、特定の数値を指定しても意味がありません。したがって、グラフは役に立ちません。他のハイパーパラメーターとの相互作用について:確かにわかりません。試して結果を公開してください:-)
Martin Thoma
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.