神经网络——调参

1、更多的优化算法

2、**函数

3、网络初始化

4、批归一化

5、数据增强

 

 

1、更多的优化算法:

回顾:

1、随机梯度下降

      局部极值

      Saddle point问题

2、动量梯度下降

这两个方法的问题:

1、都受初始学习率的影响很大

2、每一个维度的学习率都一样(稀疏数据得不到更新,因为导数为0)

3、AdaGrad算法

      调整学习率

神经网络——调参

 

神经网络——调参

Adagrad特点:

前期,regularizer较小,放大梯度。

后期,regularizer较大,缩小梯度。

梯度随训练次数降低。

每个分量有不同的学习率。

Adagrad算法缺点:

 学习率设置较大,导致regularizer影响过于敏感。

后期,regularizer累积值太大,导致梯度更新太小,提前结束训练。

RMSPROP算法

使得分母由平方和变成了均值,这样就不会一直增大。

Adagrad的变种

由累计平方梯度变成了平均平方梯度

解决了后期提前结束的问题

神经网络——调参

 

Adam(结合了RM和Adagrad)

神经网络——调参

first_moment 是动量梯度下降法

second_moment 是Adagrad 平均平方梯度

神经网络——调参

校准的意思是使得一开始的学习率较大,后期较小。

beta1的t次一开始大,则1-它越小,所以first_unbias一开始很大。

 

 

Adam

所有上述算法都会用learning_ratel来做初值参数。

Adam比较有效

Beta1 = 0.9

Beta2 = 0.999

Learning_rate = 1e-3 or 5e-4

 

对于稀疏数据,使用学习率可自适应方法。

SGD通常训练时间更长,最终效果比较好,但需要好的初始化和learning rate

需要训练较深较复杂的网络且需要快速收敛时,推荐使用Adam

Adagrad、RMSprop、Adam是比较相近的算法,在相似的情况下表现差不多.Adam可以快速收敛。