目录
局部最小值与鞍点
如何找到Local minima and saddle point
批次与动量
Review: Optimization with batch
Small Batch v.s. Large Batch
Momentum 动量
总结
Learning rate 自动调整学习速率
?Learning Rate Scheduling
Learning Rate Decay
Learning Rate Warm Up
Warm Up In Transformer
Summary of Optimization
损失函数Loss带来的影响
回归方式思考分类
Class as one-hot vector
Regression
Soft-max
MSE and Cross-entropy
批次标准化
Changing Landscape
Feature Normalization
Batch normalization - Testing
Batch normalization on CNN
Internal Covariate Shift
局部最小值与鞍点
如何找到Local minima and saddle point
文章图片
和gradient(一次微分),hessian(二次微分)有关
文章图片
文章图片
举例:
文章图片
文章图片
文章图片
文章图片
上面的方式在实际应用中很少用到。
文章图片
在二维空间中是local minima,在三维空间中是saddle point,维度越高,走的路越多。
文章图片
如上式,minimum ration如果等于1,即正的eigen values与所有的eigen values数目一样,那么此点位于local minima,实际上,大多数时候,结果都会显示出有正有负。
文章图片
批次与动量
Review: Optimization with batch
文章图片
Small Batch v.s. Large Batch
文章图片
Batch size =1 时只需要一笔资料,就可以更新参数。左边的方式,所有的资料看过一遍才能更新参数。优点在于更加稳定。右边的方式,每次看到一笔资料就可以更新一次参数。右边的缺点在于不够稳定,结果不够准确。
文章图片
考虑到平行计算后,左边的方式,可能运算时间和右边的差不多。
如上图,Batchsize增加到10000以上时,gpu运算时间会逐渐上涨。
文章图片
如上图,60000次update与60次update所需时间是差不多的;大的batchsize是较有效率的
【神经网络|Datawhale-李宏毅深度学习/神经网络训练方法】
文章图片
上图,用不同batch训练模型上,会得到不同的结果
大的batchsize会带来较差的结果
文章图片
为什么小的batchsize有更好的结果
可能1:Noisy update对于训练模型而言更好
可能2:在L1卡住时,在L2不一定会被卡住
文章图片
小的Batch对testing而言,会更好。
即使Training时差不多,Testing时,小的batch表现较差。此现象也证明出现了过拟合(overfitting)的状态
文章图片
左边盆地中的minima是good for testing,右边sharp minima training loss和testing loss差距过大bad for testing。其中一种解释:大的batch,会导致峡谷更加陡峭。小的batch更加的平滑
文章图片
文章图片
Momentum 动量
文章图片
在物理世界中,小球下落时会带有动量,如何将这个method应用到gradient descent里呢
文章图片
文章图片
加上Momentum之后,
Movement: movement of last step minus gradient at present
加上动量之后,计算不再是通过gradient的方向来调整参数,如上2图所示,加入动量后,第一步照旧,从第二步开始,调参不再只看gradient的反方向,而是gradient反方向+前一步的反方向的夹角。
文章图片
文章图片
总结
文章图片
Learning rate 自动调整学习速率
文章图片
loss不再下降变化,gradient依然在震动,是因为图左的原因
文章图片
Critical point并不是导致上述现象的原因。
单纯调整learning rate的情况下,并不能改善。在右下的表中可以看出不再震荡。但是永远不能走到终点。
Gradient descent 并不能解决error surface 这个问题
Learning rate应该为每一个参数 特质化
文章图片
简单方法,只看一个参数。
文章图片
如何计算下面的theta 上标t 下标I
文章图片
如果函数变化率比较小,gradient也比较小,这样计算出来的theta(step)就会比较大。
如果函数变化率比较大,gradient也比较大,这样计算出来的theta(step)就会比较小。
文章图片
文章图片
同个参数同个函数,learning rate可以动态调整。
通过RMSprop实现
文章图片
文章图片
最常见的算法如上
文章图片
sigma变大后,步伐还是会变小,即使数据突然激增,力道会逐渐让数据重新平缓
Learning Rate Scheduling
Learning Rate Decay
文章图片
Learning Rate Warm Up
文章图片
Warm Up In Transformer
文章图片
Summary of Optimization
文章图片
文章图片
解决error surface带来的影响
文章图片
How about directly move the mountain
损失函数Loss带来的影响
回归方式思考分类
文章图片
Class as one-hot vector
文章图片
Regression
文章图片
Soft-max
文章图片
MSE and Cross-entropy
文章图片
交叉熵是更加常见的方式;在分类任务中。
文章图片
Changing the loss function can change the difficulty of optimization.
批次标准化
Changing Landscape
文章图片
Feature Normalization
文章图片
Feature normalization让梯度下降收敛更快
文章图片
文章图片
文章图片
如何对Z Feature Normalization
文章图片
文章图片
Feature Normalization之后 系统中的所有值由独立变成相互关联 z1的改变之后 整个系统中所有其他数据都会变化
Consider a batch, 也可以称为 Batch Normalization
文章图片
Batch normalization - Testing
文章图片
Batch normalization on CNN
文章图片
原文章:https://arxiv.org/abs/1502.03167
红色的虚线可以在比较短的时间内跑到一定的accuracy
Internal Covariate Shift
文章图片
文章图片
推荐阅读
- 深度学习|【深度学习】吴恩达深度学习-Course1神经网络与深度学习-第三周浅层神经网络作业
- 机器学习的数学基础|机器学习的数学基础(5)(最小均方误差的回归问题)
- 深度学习|神经网络和深度学习-第2周 logistic-regression-as-a-neural-network
- 深度学习|神经网络和深度学习(二)-神经网络的编程基础
- 神经网络|神经网络与深度学习(一)- Logistic Regression as a Neural Network
- [DL]神经网络与深度学习|[2022-09-05]神经网络与深度学习第0章-basic‘s basic(part 2)
- [DL]神经网络与深度学习|[2022-08-29]神经网络与深度学习第0章-basic‘s basic(part 1)
- 神经网络与深度学习|神经网络与深度学习第3章(线性模型 阅读提问)
- ROS|【无标题】URDF/COLLADA file is not a valid robot model.解决方法