梯度下降法极速复习笔记
2018-07-29 本文已影响62人
吴金君
1.动机
在机器学习或者深度学习中,我们经常会遇到一些最优化问题,往往是最大化或者最小化一个函数。我们一般把需要优化的函数称为目标函数、准则、代价函数、损失函数或者误差函数。这些术语都可以表示待优化函数,可能在不同的书里,他们的称呼都不一样。
我们通常会怎么做呢?通常会解决这样一个问题:
意思是我们需要找到一个值,使得函数能够最小化。梯度下降法要解决的事情就是一步一步地找到合适的,使得函数最终能够达到最小。
2.梯度下降的思想
回忆高数里的导数和微分的知识。导数就是函数在点处的斜率。如果函数在的定义域内处处可导,那么就对于任何一个点都存在一个使得:
假设为正,那么相比于就多出来了大小的值。对于函数而言,.
我们利用这个规律继续迭代呢?
假设达到了最小值或者达到了收敛条件,那么我们的梯度下降法就完成了它的任务。
3.梯度下降法中的学习率和梯度向量
通过上面的例子应该能大概理解梯度下降的思想,但实际应用中,不会有如此简单的情况。为了彻底搞清楚梯度下降法,还需要明白两个概念,那就是梯度下降的学习率和梯度向量。我们用一个新的式子来描述梯度下降中的参数更新:
其中,表示每次更新后的参数,表示更新前的参数,表示学习率,表示梯度方向。
学习率:确定了参数更新过程中的步长大小,是一个正标量。
梯度方向:确定了函数下降最快的方向,如在二次函数中在某个点处的梯度,就是使得该点处函数值变化最大。在梯度下降法中,为了使得目标函数值更小,我们常沿着负梯度方向更新参数。(前面举的例子中,为了简洁明了地说明梯度下降法的思想,没有提到负梯度这回事)