神经网络|Datawhale-李宏毅深度学习/神经网络训练方法

目录
局部最小值与鞍点
如何找到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 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

和gradient(一次微分),hessian(二次微分)有关

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

举例:
神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

上面的方式在实际应用中很少用到。

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

在二维空间中是local minima,在三维空间中是saddle point,维度越高,走的路越多。

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

如上式,minimum ration如果等于1,即正的eigen values与所有的eigen values数目一样,那么此点位于local minima,实际上,大多数时候,结果都会显示出有正有负。

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


批次与动量 Review: Optimization with batch 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


Small Batch v.s. Large Batch 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

Batch size =1 时只需要一笔资料,就可以更新参数。左边的方式,所有的资料看过一遍才能更新参数。优点在于更加稳定。右边的方式,每次看到一笔资料就可以更新一次参数。右边的缺点在于不够稳定,结果不够准确。

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

考虑到平行计算后,左边的方式,可能运算时间和右边的差不多。
如上图,Batchsize增加到10000以上时,gpu运算时间会逐渐上涨。

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

如上图,60000次update与60次update所需时间是差不多的;大的batchsize是较有效率的

【神经网络|Datawhale-李宏毅深度学习/神经网络训练方法】神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

上图,用不同batch训练模型上,会得到不同的结果
大的batchsize会带来较差的结果

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

为什么小的batchsize有更好的结果
可能1:Noisy update对于训练模型而言更好
可能2:在L1卡住时,在L2不一定会被卡住

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

小的Batch对testing而言,会更好。
即使Training时差不多,Testing时,小的batch表现较差。此现象也证明出现了过拟合(overfitting)的状态

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

左边盆地中的minima是good for testing,右边sharp minima training loss和testing loss差距过大bad for testing。其中一种解释:大的batch,会导致峡谷更加陡峭。小的batch更加的平滑

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


Momentum 动量 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

在物理世界中,小球下落时会带有动量,如何将这个method应用到gradient descent里呢

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

加上Momentum之后,
Movement: movement of last step minus gradient at present
加上动量之后,计算不再是通过gradient的方向来调整参数,如上2图所示,加入动量后,第一步照旧,从第二步开始,调参不再只看gradient的反方向,而是gradient反方向+前一步的反方向的夹角。

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

总结 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


Learning rate 自动调整学习速率 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片
loss不再下降变化,gradient依然在震动,是因为图左的原因

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

Critical point并不是导致上述现象的原因。
单纯调整learning rate的情况下,并不能改善。在右下的表中可以看出不再震荡。但是永远不能走到终点。
Gradient descent 并不能解决error surface 这个问题
Learning rate应该为每一个参数 特质化

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

简单方法,只看一个参数。

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

如何计算下面的theta 上标t 下标I

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

如果函数变化率比较小,gradient也比较小,这样计算出来的theta(step)就会比较大。
如果函数变化率比较大,gradient也比较大,这样计算出来的theta(step)就会比较小。

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

同个参数同个函数,learning rate可以动态调整。
通过RMSprop实现

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

最常见的算法如上

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

sigma变大后,步伐还是会变小,即使数据突然激增,力道会逐渐让数据重新平缓

Learning Rate Scheduling Learning Rate Decay 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

Learning Rate Warm Up 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


Warm Up In Transformer 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


Summary of Optimization 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

解决error surface带来的影响

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

How about directly move the mountain

损失函数Loss带来的影响 回归方式思考分类 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

Class as one-hot vector 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


Regression 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


Soft-max 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


MSE and Cross-entropy 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

交叉熵是更加常见的方式;在分类任务中。

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

Changing the loss function can change the difficulty of optimization.

批次标准化 Changing Landscape 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


Feature Normalization 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

Feature normalization让梯度下降收敛更快

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

如何对Z Feature Normalization

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

Feature Normalization之后 系统中的所有值由独立变成相互关联 z1的改变之后 整个系统中所有其他数据都会变化
Consider a batch, 也可以称为 Batch Normalization

神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


Batch normalization - Testing 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


Batch normalization on CNN 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片

原文章:https://arxiv.org/abs/1502.03167
红色的虚线可以在比较短的时间内跑到一定的accuracy

Internal Covariate Shift 神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片


神经网络|Datawhale-李宏毅深度学习/神经网络训练方法
文章图片




    推荐阅读