【ミニバッチ】
ミニバッチ とは?
💡 食べ放題を一皿ずつ取りに行く戦略
📌 このページのポイント
ミニバッチってなに?全部のデータを一気に使って学習すればいいんじゃないの?
データが何百万件もあると、全部一度にメモリに載せるのは無理なんだよ。だからデータを小さなグループに分けて、少しずつ学習するのがミニバッチ方式だね
じゃあ1件ずつ処理するのとは何が違うの?
1件ずつだとノイズが多すぎて学習がフラフラするし、GPUの並列計算能力を活かせないんだ。ミニバッチなら適度にノイズを残しつつ効率よく計算できるよ
バッチサイズってどれくらいがいいの?
32や64が定番だけど、実はバッチサイズは奥が深いんだ。大きくすると学習が安定する反面、小さいバッチのほうが「良い谷」に落ちやすくて汎化性能が上がることが多いよ
えっ、不安定なほうがいい結果になることがあるの?
バッチサイズ選びも奥が深いんだね……!
しかもバッチサイズを学習の途中で変える「ウォームアップ」テクニックもあるよ。最初は小さいバッチで広く探索して、後半は大きいバッチで安定させる、なんて使い分けもプロはやっているんだ
まとめ:ざっくりこれだけ覚えればOK!
「ミニバッチ」って出てきたら「学習データを小分けにして効率よく学習する方法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Mini-Batch」 = 小さなひとかたまり
💬 「batch」はパンを焼くときの「一窯分」が語源だよ。データを一窯分ずつ処理するイメージだね