目录
如何找到Local minima and saddle point
Review: Optimization with batch
局部最小值与鞍点
如何找到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是较有效率的
上图,用不同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