梯度
梯度
- 梯度是矢量。
- 梯度方向就是函数值增加最快的方向。
例1
函数: z = x 2 + y 2 z=x^2+y^2 z=x2+y2,其梯度为 ( 2 x , 2 y ) (2x,2y) (2x,2y)。梯度在 x O y xOy xOy平面内的图像如下。
- 可以发现:
- 从内圈到外圈,函数值是逐渐增大的。(圈表示等高线)
- 此时,梯度方向总是指向外侧。
- 梯度方向指向函数值增大的方向。
例2
函数: z = − ( x 2 + y 2 ) z=-(x^2+y^2) z=−(x2+y2),其梯度为 ( − 2 x , − 2 y ) (-2x,-2y) (−2x,−2y)。其在 x O y xOy xOy平面内的图像如下。
- 可以发现:
- 从外圈到内圈,函数值是逐渐增大的。(圈表示等高线)
- 此时,梯度方向总是指向内侧。
- 梯度方向指向函数值增大的方向。
结论
- 在形如碗状函数(凸函数,$z=x2+y2 $),其梯度方向总是由内侧指向外侧(指向函数值增大的方向)。
- 在形如倒扣碗状( z = − ( x 2 + y 2 ) z=-(x^2+y^2) z=−(x2+y2)),其梯度方向总是有外侧指向内侧(指向函数值增大的方向)。
梯度方向与等高线切线方向垂直
- 在这里我们约定,这些等高线是某个凸函数的的等高线图(如 z = x 2 + y 2 z=x^2+y^2 z=x2+y2)。其中红色的方向就是等高线中某点出的梯度负方向。
Q&A
- 沿着梯度方向走,总会使函数值增大吗?
- 沿着梯度方向,函数值增加的最快。简言之,梯度方向就是函数值增加最快的方向。
- 为什么叫梯度下降算法?
- 因为更新梯度时,总是沿着梯度方向的负方向前进,直至到最低点。因为梯度方向是函数值增加最快的反向,所以梯度的负方向就是函数减小最快的方向。
- 因为一般情况下,我们总是求使得目标函数最小值时的参数。希望从该函数的某一个值开始,一点点下降(函数逐渐减小),要怎么减小呢?沿着梯度的负方向。
- 因为更新梯度时,总是沿着梯度方向的负方向前进,直至到最低点。因为梯度方向是函数值增加最快的反向,所以梯度的负方向就是函数减小最快的方向。
- 如何运用梯度下降呢?
- "设计好"一个凸函数(如$z=x2+y2 $,理想情况下)。
- 沿着负梯度方向一步一步走下去,直到找到一个可以“接受的很小”的函数值。
- 此时,模型中的参数就是所要训练的。