梯度,到底是什么?很容易混淆。
站在山底,哪个方向爬坡最快,这个容易想象,但问题是,如果所在的高度是我们优化的目标的话,这个爬坡的方向并不是梯度的方向,这个是我们的目标值(函数值)的变化趋势。
先看一下定义:
![295ec9e33f5c720d53e56e2a3235ab7e.png](https://i-blog.csdnimg.cn/blog_migrate/6c9fd74a48f70c07e54c1fd29c480e86.jpeg)
即:梯度是一个向量,而向量就有方向,该方向是方向导数取得最大值的方向,那方向导数是什么?
![26f0b00226da4b1f4dbb4e135454cb40.png](https://i-blog.csdnimg.cn/blog_migrate/270ce4f4632b102d56d538749ee5bd88.jpeg)
可见:
- 方向导数是一个数。
- 方向指的是函数定义域的内点变化的方向
综上,自变量沿着该方向变化,使函数值变化最大,机器学习中,函数值就是我们的优化目标。
当函数值是损失函数值的时候,我们期望的是最小值,这个时候取梯度的反方向,即梯度下降即可。
这就是为什么我们经常看到,理解梯度,先画等高线示意图的原因,投影到地面的等高线,其实就是自变量的定义域,也就是机器学习中的参数空间,我们需要知道,怎么更新参数,才能让损失函数值最快地减小。
![5488b78827a7d97b12e843d975cf027f.png](https://i-blog.csdnimg.cn/blog_migrate/136fadc16cc967405f5dc3d77e89fe7d.jpeg)
好,那现在的问题是梯度到底是哪个方向?也就是,自变量到底沿哪个方向变化,函数值变化最快。
注意看右边的等高线,假设有一个点A,无限放大等高线:
![5f940d3f27b5544db42688624edc77eb.png](https://i-blog.csdnimg.cn/blog_migrate/1c67416737d6ad91e7806c144ea8580b.jpeg)
如上图,也就是说,垂直于切线即法向量的方向,就是变化最快的方向,也就是梯度的方向。
法向量的定义如下:
![e2d2182e0d4dd737cc04e6bbc91d057f.png](https://i-blog.csdnimg.cn/blog_migrate/f0f088522cf90d496f4453e6a1ee5e2d.jpeg)
总结一下,梯度是个向量,自变量沿着该向量的方向变化,函数值变化最快。
在机器学习中,为使损失函数下降最快,我们需要让模型参数沿着梯度的负方向更新,即梯度下降。