小批量(Mini-batch)
每次训练只喂一小份数据给网络。全喂太慢(full batch),一条一条太不稳(SGD),小批量(通常 32/64/128 条)兼顾速度和稳定性,是现代训练的标准做法。
一句话版本
把训练数据分成小份,每次只用一份来更新参数——兼顾速度和稳定性。
三种方案对比
| 方案 | 每次用多少数据 | 优点 | 缺点 |
|---|---|---|---|
| Full Batch | 全部数据 | 方向最准 | 太慢,内存装不下 |
| SGD(逐个样本) | 1 条 | 更新最快 | 方向不稳,来回抖动 |
| Mini-batch | 一小批(32/64/128) | 速度和稳定性的折中 | 需要选 batch_size |
为什么 Mini-batch 赢了
用字帖类比:字帖有 1000 个字。
- 全练完再调整(full batch):每次调整都很准,但一轮要练完 1000 个字才能改一次——太慢
- 练一个字就调整(SGD):改得快,但可能被某个特别难的字带偏
- 每次练 100 个字再调整(mini-batch):不太慢,也不太抖——刚刚好
典型 batch_size
实践中常用 32、64、128。选择取决于 GPU 内存大小和数据特点。batch_size 太大接近 full batch(慢),太小接近 SGD(抖)。
引用本术语的文章