深度学习-Batch_Size
admin
2024-03-17 10:12:56

1. 概念
Batch_Size是批量学习中才能用到的参数。统计学习可以分为在线学习、批量学习两类。也就是深度学习可以按照某种划分方式,分为在线学习和批量学习,我们平时用的比较多的是批量学习。

在线学习\color{blue}{在线学习}在线学习:每次接受一个样本,进行预测,并不断重复学习模型;
批量学习\color{blue}{批量学习}批量学习:是一种离线学习方法(需要提前获取所有样本进行训练任务),需要对所有样本或者说是部分样本进行学习。

设置batch_size的目的让模型在训练过程中每次选择批量的数据来进行处理。一般机器学习或者深度学习训练过程中的目标函数可以简单理解为:在每个训练集样本上得到的目标函数值的求和,然后根据目标函数的值进行权重值的调整,大部分时候是根据梯度下降法来进行参数更新。\color{blue}{在每个训练集样本上得到的目标函数值的求和,然后根据目标函数的值进行权重值的调整,大部分时候是根据梯度下降法来进行参数更新。}在每个训练集样本上得到的目标函数值的求和,然后根据目标函数的值进行权重值的调整,大部分时候是根据梯度下降法来进行参数更新。

Batch_Size的直观理解就是一次训练所选取的样本数。
Batch_Size的大小影响模型的优化程度和速度,同时其直接影响到GPU内存的使用情况,假如你GPU内存不大,该数值最好设置小一点。

2. 作用
如果采用在线学习,相当于Batch_Size = 1,这中情况下,梯度下降方向的随机性较大,模型难以稳定收敛(收敛速度慢),所以我们平时用的比较多的是批量学习\color{blue}{批量学习}批量学习。
如果数据集比较小,可采用全数据集的形式。由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向\color{blue}{由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向}由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。但是对于大数据集,一次性把所有数据输进网络,会引起内存的爆炸\color{blue}{会引起内存的爆炸}会引起内存的爆炸,所以就提出Batch Size的概念。另外,Batch_Normal也需要批量的数据来求均方差,如果Batch_Size为1,BN就不起做用了。

3. 设置
3.1. 增大Batch_Size优点

  • 内存利用率提高了,大矩阵乘法的并行化效率提高。
  • 跑完一次epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快。
  • 一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小。

3.2. 增大Batch_Size缺点

  • 内存利用率提高了,但是内存容量可能撑不住了。
  • 跑完一次 epoch(全数据集)所需的迭代次数减少,要想达到相同的精度,其所花费的时间大大增加了,即epoch次数增多了,从而对参数的修正也就显得更加缓慢。
  • Batch_Size 增大到一定程度,其确定的下降方向已经基本不再变化。

3.3. 减小Batch_Size缺点

  • Batch_Size太小,而类别又比较多的时候,真的可能会导致loss函数震荡而不收敛,尤其是在网络比较复杂的时候。

综上,Batch_Size 增大到某个时候,达到时间上的最优。由于最终收敛精度会陷入不同的局部极值,因此 Batch_Size 增大到某些时候,达到最终收敛精度上的最优。

参考:
https://blog.csdn.net/jiachang98/article/details/124729988
https://blog.csdn.net/MengYa_Dream/article/details/119719576

相关内容

热门资讯

甘肃定西:“薯药”产业双轮驱动... 转自:新华财经近日,甘肃省定西市举办“药都薯乡 壮美定西——收官‘十四五’ 谋篇‘十五五’”乡村振兴...
古茗在杭州拿地 新茶饮品牌“... 证券时报记者 吴家明价格大战、密集上市......新茶饮企业的热点似乎都在价格和资本市场。不过,一个...
【好评中国】秦平 | 区域协调...   在京津冀,河北、天津的居民到北京看病不用再跑手续、开证明,“刷脸结算”分秒完成;在长三角,高铁“...
西藏山南 物交会不止于展会   近日,西藏山南市第45届雅砻物资交流会(以下简称“物交会”)在雅鲁藏布江畔的乃东区举办。活动为期...
云路股份股东郭克云1天减持15... 1月12日消息,云路股份副董事长及非独立董事郭克云于2026年1月12日,通过竞价交易方式减持15....