李宏毅深度学习——机器学习训练(三)批次batch和动量momentum

一.batch size

李宏毅深度学习——机器学习训练(三)批次batch和动量momentum_第1张图片

 当采用较小的梯度进行梯度下降时可能会出现:

1.梯度在损失函数较为平缓段,下降速度十分缓慢

2.梯度下降停在鞍点

3.梯度下降停在局部最小值

当使用批量优化处理梯度时

李宏毅深度学习——机器学习训练(三)批次batch和动量momentum_第2张图片然而,不同batch对于梯度处理有较大影响。虽然在使用gpu处理不同大小batch的时间并没有太大差距(下左图),但当一个epoch含有的batch越多,处理一个epoch所需输入的batch数越多,时间也越长(下右图)。

李宏毅深度学习——机器学习训练(三)批次batch和动量momentum_第3张图片

 然而,batch并非越大越好。李宏毅深度学习——机器学习训练(三)批次batch和动量momentum_第4张图片

 当batch较小时,在L1可能停在了局部最小值,但在L2能继续进行梯度下降。李宏毅深度学习——机器学习训练(三)批次batch和动量momentum_第5张图片

 且small batch在sharp minima时的表现好于big batch

总结如下表:

李宏毅深度学习——机器学习训练(三)批次batch和动量momentum_第6张图片

 二.动量momentum

李宏毅深度学习——机器学习训练(三)批次batch和动量momentum_第7张图片

当前动量=   λ   *  上一步的动量-当前梯度

(λ为自定义参数,动量是一个与所有历史梯度有关的值)

每一步的动量方向,取当前动量方向与上一步梯度反方向中间的方向。

当加入动量进行运算后,就不会使梯度在损失函数梯度较小处变化较慢,或卡在局部最小值,或在局部最小值附近震荡。

李宏毅深度学习——机器学习训练(三)批次batch和动量momentum_第8张图片

你可能感兴趣的:(李宏毅深度学习,机器学习)