Deep Learning Specialization课程笔记——最优化算法

Mini-batch gradient descent

假设有5000000样本,我们选取每一个小训练集有1000个样本,则:


算法如下,实际上就是分成5000份然后做循环:


代价函数对比:


当mini-batch的大小等于训练集大小m,就是批量梯度下降。梯度下降时噪声小,步长大,可以达到最小值,下图蓝色线。缺点:在每次迭代中风遍历整个训练集,花费时间长。

当mini-batch的大小为1,就是随机梯度下降,噪声大,容易指向错误的地方,下图紫色线。缺点:失去了利用向量加速运算的机会。

故选取mini-batch值位于1-m之间,下图绿色线。


常见的mini-batch size:64,128,256,512


Exponentially weighted averages

指数加权平均,概念:例如以一年的天气变化举例,做出蓝色散点图,通过指数加权平均的计算得到红色的线,这就是一个滑动平均结果。


当系数beta变大,线会变平滑(因为算了更多的平均),同时会右移(在更大的窗口内计算)

黄色为beta=0.5,绿色为beta=0.98

实际计算中,theta(t)(第t天)参数为(1-beta),theta(t-1)为(1-beta)*beta,theta(t-2)为(1-beta)*beta^2,呈现出指数衰减的态势。Vt大约取1/(1-beta)天(原因:beta^(1/(1-beta))=1/e  故为使得最后值足够小的天数大约为1/(1-beta)天。)

计算过程:


Bias correction

偏差修正,当beta=0.98时,实际上得到的并非是绿色的线,而是紫色的线:


这是因为V0=0,使得计算的V1=0.02theta1,结果自然特别小,从而继续影响V2...

为了修正偏差,使得Vt用Vt/(1-beta)来替代:如,计算V2时,如下图,成功修正了偏差。



Gradient descent with momentum

动量梯度下降算法,比标准梯度下降更快。主要思想:计算梯度的指数加权平均,然后使用这个梯度来更新权重。


故动量梯度下降算法的每一步,在垂直方向上的振荡非常小,且在水平方向上运动的更快。这也就让算法选择了更加直接的路径。取beta=0.9非常稳健。


RMSprop

Root Mean Square prop

我们用新的符号S来取代之前的V,下图中的dW^2是导数的平方。



Adam optimization algorithm



Learning rate decay


学习率a取值较大时:步长大,如蓝线,算法在最小值周围浮动;

学习率a取值逐渐减小时:最终围绕着离极小值更近的区域摆动。

常用的一个迭代公式:



Local optima

saddle points:鞍点

plateau:停滞区,导数长时间接近0的一段区域。







猜你喜欢

转载自blog.csdn.net/weixin_37805505/article/details/79950418
今日推荐