Improving Deep Neural Networks (Week2)---Optimization algorithms

一、Mini-batch gradient descent

加快神经网络训练速度的优化算法,ML需要训练很多模型才能找到一个确实好用的,所以需要能够快速训练模型

在向量化整个矩阵时,会有一个巨型矩阵,此时可以用微小的训练集,即小批量训练集(mini-batch),把上述5百万个样例分成5000000/1000=5000个小批量样例,训练时间比单纯的向量化短的多

二、Understanding mini-batch gradient descent

小批量梯度下降到底在做什么及它为什么有效

一般代价函数J随着迭代次数是单调递减的,如果发现某次函数值增加了,说明可能是设置的学习率太大了

但对于mini-batch梯度下降而言

并不是每次 都会下降,因为是求的是J[t]的值,每个T是不一样的

但整体趋势是向下的

如何选择批量进行的参数:

总样例m,如果mini-batch=1,则如果一个样例的取值不好,就容易将整个梯度下降带向不好的方向

最好取一个介于1和m之间的值,选择的原则如下 :

1.m<2000,直接批量梯度下降,即参数选定为1

2.m>2000,一般mini-batch选择64,128,256,512,1024等,(即设置为2的幂数,使得代码运行的快一些)

三、Exponentially weighted averages

指数加权平均:

在两个变量时,尝试不同的取值即对指数进行加权平均

四、Understanding exponentially weighted averages

五、Bias correction in exponentially weighted averages

更精确地计算平均值,偏差修正可以在刚开始做出更好的估计

六、Gradient descent with momentum

动量梯度下降算法,比标准的梯度下降算法更快

算法的主要思想是:计算梯度的指数加权平均,使用这个梯度来更新权重

在纵轴上希望减小震荡,学习更小

在横轴上希望学习更快,更快速地到达全局最小值

纵轴代表的是b,横轴代表的是w等其他参数

即将所计算的梯度在纵轴方向进行平均,使其在纵轴的平均值趋向于0

而在这过程中,不需要坐偏差修正

七、RMSprop(Root Mean Square prop)

均方根传递实现地点下降加速

八、Adam optimization algorithm

adam实际上是将RMSprop和动量结合起来的一种算法

一般只调整学习率α即可

Adam表示 Adaptive moment estimation即自适应矩估计 

β1表示第一阶矩估计

β2表示第二阶矩估计,指数加权平均

九、Learning rate decay

学习率衰减,即需要逐渐减小学习率α

刚开始时需要使用大步长尽快达到收敛点,但在接近收敛点时需要变小步长,以避免无法到达收敛点

十、The problem of local optima

如何解决局部最优解的问题

这实际上是在低维空间中的问题,对于在深度学习中,鞍点的问题实际上并不存在

实际上在训练大型的神经网络时,你不太 可能陷入糟糕的局部最优点,但会陷入一定的停滞区(导数会为0),让学习过程变得相当缓慢

猜你喜欢

转载自blog.csdn.net/weixin_38527856/article/details/86686057