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-李宏毅深度学习/神经网络训练方法_第1张图片

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

Datawhale-李宏毅深度学习/神经网络训练方法_第2张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第3张图片

举例:

Datawhale-李宏毅深度学习/神经网络训练方法_第4张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第5张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第6张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第7张图片

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

Datawhale-李宏毅深度学习/神经网络训练方法_第8张图片

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

Datawhale-李宏毅深度学习/神经网络训练方法_第9张图片

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

Datawhale-李宏毅深度学习/神经网络训练方法_第10张图片

批次与动量

Review: Optimization with batch

Datawhale-李宏毅深度学习/神经网络训练方法_第11张图片

Small Batch v.s. Large Batch

Datawhale-李宏毅深度学习/神经网络训练方法_第12张图片

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

Datawhale-李宏毅深度学习/神经网络训练方法_第13张图片

考虑到平行计算后,左边的方式,可能运算时间和右边的差不多。

如上图,Batchsize增加到10000以上时,gpu运算时间会逐渐上涨。

Datawhale-李宏毅深度学习/神经网络训练方法_第14张图片

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

Datawhale-李宏毅深度学习/神经网络训练方法_第15张图片

上图,用不同batch训练模型上,会得到不同的结果

大的batchsize会带来较差的结果

Datawhale-李宏毅深度学习/神经网络训练方法_第16张图片

为什么小的batchsize有更好的结果

可能1:Noisy update对于训练模型而言更好

可能2:在L1卡住时,在L2不一定会被卡住

Datawhale-李宏毅深度学习/神经网络训练方法_第17张图片

小的Batch对testing而言,会更好。

即使Training时差不多,Testing时,小的batch表现较差。此现象也证明出现了过拟合(overfitting)的状态

Datawhale-李宏毅深度学习/神经网络训练方法_第18张图片

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

Datawhale-李宏毅深度学习/神经网络训练方法_第19张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第20张图片

Momentum 动量

Datawhale-李宏毅深度学习/神经网络训练方法_第21张图片

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

Datawhale-李宏毅深度学习/神经网络训练方法_第22张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第23张图片

加上Momentum之后,

Movement: movement of last step minus gradient at present

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

Datawhale-李宏毅深度学习/神经网络训练方法_第24张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第25张图片

总结

Datawhale-李宏毅深度学习/神经网络训练方法_第26张图片

Learning rate 自动调整学习速率

Datawhale-李宏毅深度学习/神经网络训练方法_第27张图片

loss不再下降变化,gradient依然在震动,是因为图左的原因

Datawhale-李宏毅深度学习/神经网络训练方法_第28张图片

Critical point并不是导致上述现象的原因。

单纯调整learning rate的情况下,并不能改善。在右下的表中可以看出不再震荡。但是永远不能走到终点。

Gradient descent 并不能解决error surface 这个问题

Learning rate应该为每一个参数 特质化

Datawhale-李宏毅深度学习/神经网络训练方法_第29张图片

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

Datawhale-李宏毅深度学习/神经网络训练方法_第30张图片

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

Datawhale-李宏毅深度学习/神经网络训练方法_第31张图片

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

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

Datawhale-李宏毅深度学习/神经网络训练方法_第32张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第33张图片

同个参数同个函数,learning rate可以动态调整。

通过RMSprop实现

Datawhale-李宏毅深度学习/神经网络训练方法_第34张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第35张图片

最常见的算法如上

Datawhale-李宏毅深度学习/神经网络训练方法_第36张图片

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

Learning Rate Scheduling

Learning Rate Decay

Datawhale-李宏毅深度学习/神经网络训练方法_第37张图片

Learning Rate Warm Up

Datawhale-李宏毅深度学习/神经网络训练方法_第38张图片

Warm Up In Transformer

Datawhale-李宏毅深度学习/神经网络训练方法_第39张图片

Summary of Optimization

Datawhale-李宏毅深度学习/神经网络训练方法_第40张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第41张图片

解决error surface带来的影响

Datawhale-李宏毅深度学习/神经网络训练方法_第42张图片

How about directly move the mountain

损失函数Loss带来的影响

回归方式思考分类

Datawhale-李宏毅深度学习/神经网络训练方法_第43张图片

Class as one-hot vector

Datawhale-李宏毅深度学习/神经网络训练方法_第44张图片

Regression

Datawhale-李宏毅深度学习/神经网络训练方法_第45张图片

Soft-max

Datawhale-李宏毅深度学习/神经网络训练方法_第46张图片

MSE and Cross-entropy

Datawhale-李宏毅深度学习/神经网络训练方法_第47张图片

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

Datawhale-李宏毅深度学习/神经网络训练方法_第48张图片

Changing the loss function can change the difficulty of optimization.

批次标准化

Changing Landscape

Datawhale-李宏毅深度学习/神经网络训练方法_第49张图片

Feature Normalization

Datawhale-李宏毅深度学习/神经网络训练方法_第50张图片

Feature normalization让梯度下降收敛更快

Datawhale-李宏毅深度学习/神经网络训练方法_第51张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第52张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第53张图片

如何对Z Feature Normalization

Datawhale-李宏毅深度学习/神经网络训练方法_第54张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第55张图片

Feature Normalization之后 系统中的所有值由独立变成相互关联 z1的改变之后 整个系统中所有其他数据都会变化

Consider a batch, 也可以称为 Batch Normalization

Datawhale-李宏毅深度学习/神经网络训练方法_第56张图片

Batch normalization - Testing

Datawhale-李宏毅深度学习/神经网络训练方法_第57张图片

Batch normalization on CNN

Datawhale-李宏毅深度学习/神经网络训练方法_第58张图片

原文章:https://arxiv.org/abs/1502.03167

红色的虚线可以在比较短的时间内跑到一定的accuracy

Internal Covariate Shift

Datawhale-李宏毅深度学习/神经网络训练方法_第59张图片

Datawhale-李宏毅深度学习/神经网络训练方法_第60张图片

你可能感兴趣的:(神经网络,深度学习,回归,人工智能)