【深度学习 理论】Gradient Descent_1-1

首先简单介绍一下【梯度】和【梯度下降】的概念。

梯度:对于可微的数量场f(x,y,z),以(\frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f}{\partial z})为分量的向量场称为f的梯度或斜量。简单的说,梯度就是导数(对于多维就是偏导数)。

梯度下降法(gradient descent) 是一个最优化算法,常用于机器学习和人工智能当中用来递归性地逼近最小偏差模型。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。梯度下降包含两个意思:一是根据梯度的符号来判断最小值点在哪;二是让函数值变小。

梯度下降作用是找到函数的最小值所对应的自变量的值(曲线最低点对应x的值)。【注】我们是为了找到x。

梯度下降是怎么做的?

原理其实很简单,就是【猜】。

我们先取定一个初始参数\Theta ^{0},然后根据梯度的负方向来更新参数。(梯度的方向是上升最快的方向,其负方向就是先将最快的方向)

梯度的方向就是等高线的法线方向(如下图)。

如何更好的做好“梯度下降”?

Tip1:Turning Your learning rates.

 调整learning rate的时候要非常小心。如果learning rate太小的话,走的速度会非常慢,耗时太长,我们无法接受(如下图左蓝线);如果learning rate太大的话,走的步伐很大,函数有可能永远无法收敛(如下图左绿色线);并且如果learning rate特别大的话,刚开始下降会很快,而后变平,最后可能直接“飞”了(如下图右橘色线)。

但是调learning rate很麻烦,有没有方法可以自动调learning rate呢?

通常,learning rate随着参数的update会越来越小。为什么会这样呢?因为,刚开始的时候,它通常是离最低点较远的,不妨开始让learning rate大一点,让它走的快一点。经过还几次参数的update之后呢,就比较靠近你的目标了,这个时候呢,你就应该减小learning rate, 能够让它收敛在最低点的地方。

例如下面的公式,随着训练次数的增加,learning rate逐渐变小。但这还不够。对于不同的参数,我们也应该给予不同的learning rate,这样才能“因材施教”。

第一个技巧是【Adagrad】。

这个方法是让每一个learning rate都除以”之前算的微分值的均方根“,这样,每一个参数的learning rate就不同了。

下面举一个例子,可以发现,每次学习的learning rate都和前面的gradient相关。

计算,抵消分母得到以下式子。

通常说,gradient越大,参数更新的就越快。但是在Adagrad中,观察分母,gradient越大,步伐却越小。这和我们原来的认知冲突。(如下图)。怎么解释这个呢?

有些论文是如下解释的:Adagrad想考虑的是gradient有多"surprise"(也就是反差——现在的g和前边的相比,突然变得很大/或很小)。因此,Adagrad强调造成反差的效果。

我们来考虑一个二次函数,那我们踏出去的步伐为多大是最好的呢?从二次函数可看出,步伐和微分成正比是最好的。但是这只是一个参数的时候成立。

如果有多个参数的时候是不一定成立的。下面例子继续讲这个问题。图中的颜色是它的loss值。那如果我们考虑W1的变化,我们就在蓝色这里切一刀(图中水平线);如果我们考虑W2的变化,就在绿色这里切一刀(图中竖直线)。分开考虑的时候,参数的变化趋势是比较容易观察的,而跨参数的时候,上述结论就不对了。

【注】跨参数:首先a、b比较,a点的微分值大于b点的,所以a点距离最低点比b远。c、d同理。但是a对w1的微分值 小于 c对w2的微分值,但是c距离最低点的却更近一点。

如果有好几个参数的话,我们应该怎么想呢?

我们看看最好的这个step的话,分母有个2a,其实是来自于二次微分。所以,最好的step应该要把二次微分考虑进来

所以刚才那个例子,如果我们把二次微分考虑进来的话,w1的方向上二次微分是比较小的,w2方向上是比较大的。因此,比较两个a和c的一次微分值是不够的,需要把它们分别除上各自的二次微分值,然后再比较。

那这个事情和Adagrad有什么关系呢?

我们列出式子,可以看到,分母想代表是于二次微分。那会产生一个疑问,这里为什么不直接用二次微分呢?当然这里是可以直接用二次微分的,但有时候参数量较大的时候,计算二次微分太耗费时间。而Adagrad不增加大量运算就可以估算出二次微分的值。

猜你喜欢

转载自blog.csdn.net/Aibiabcheng/article/details/107430209