以下方法都是总结吴恩达深度学习课程的方法。
(1)梯度下降
batch-GD(size=m):速度比较慢,但每一次都是最优方向;
随机梯度下降(size=1):不能用向量加速,相对来说速度慢,而且最后只会在最优值附近徘徊;
mini-batch(size=16,32,64,128):速度较快,虽然也会在最优值之间徘徊,但是可以调整学习率使得到达最优值;
(2)动量梯度下降(Momentum)
动量法实际是利用加权指数平均将过去的梯度考虑在内,从而使的更新过程更加平滑
算法实现:
Vdw和Vdb初始化为零 ,β常用的值是0.9(上一时刻的权重)。
在我们进行动量梯度下降算法的时候,由于使用了指数加权平均的方法。原来在纵轴方向上的上下波动,经过平均以后,接近于0,纵轴上的波动变得非常的小;但在横轴方向上,所有的微分都指向横轴方向,因此其平均值仍然很大。最终实现红色线所示的梯度下降曲线。
(3)RMS-prob
除了上面所说的Momentum梯度下降法,RMSprop(root mean square prop)也是一种可以加快梯度下降的算法。同样算法的样例实现如下图所示:
这里假设参数b的梯度处于纵轴方向,参数w的梯度处于横轴方向(当然实际中是处于高维度的情况),利用RMSprop算法,可以减小某些维度梯度更新波动较大的情况(我们希望w方向,也就是水平方向快一点,b方向,也就是垂直方向慢一点),如图中蓝色线所示,使其梯度下降的速度变得更快,如图绿色线所示。
在如图所示的实现中,R