随机梯度下降与批量梯度下降

随机梯度下降与批量梯度下降

梯度下降(GD)是最小化风险函数、损失函数的一种常用方法。随机梯度下降和批量梯度下降是两种迭代求解的思路。

(1)批量梯度下降—最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小。

(2)随机梯度下降—最小化每条样本的损失函数,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近。

epoch、iteration和batchsize的区别

深度学习中经常看到epoch、 iteration和batchsize,下面按自己的理解说说这三个的区别:
(1)batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;

(2)iteration:1个iteration等于使用batchsize个样本训练一次;
(3)epoch:1个epoch等于使用训练集中的全部样本训练一次;
举个例子,训练集有1000个样本,batchsize=10,那么:
训练完整个样本集需要:
100次iteration,1次epoch。

训练步骤(batchsize为64,训练集有6400)
(batchsize大小一般固定为:32、64、128或256,效果相差不大)

  • 利用函数shuffle函数将6400样本随机排序
  • 按照排序后的顺序每次挑选64(batchsize)个进行训练
  • 经过100次iteration,所有的样本都被训练了一次

    SDG利用的是同样的原理

3 batchsize总结

3.1 Full Batch Learning
  • 数据量太大时无法训练
  • 不同batch之间采样性差异导致梯度消失
3.2 在线学习 batchsize = 1
  • 每次修正方向以各自样本的梯度方向修正,横冲直撞各自为阵,难以达到收敛
3.3 合适的batchsize
3.3.1 合理范围内增大batch的好处
  • 内存利用率提高了,大矩阵乘法的并行化效率提高。
  • 跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快。
  • 在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小。
3.3.2 盲目增大batch的坏处
  • 内存利用率提高了,但是内存容量可能撑不住了。
  • 跑完一次 epoch(全数据集)所需的迭代次数减少,要想达到相同的精度,其所花费的时间大大增加了,从而对参数的修正也就显得更加缓慢。
  • Batch_Size 增大到一定程度,其确定的下降方向已经基本不再变化。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值