一、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),让学习过程变得相当缓慢