导数与向量
提问:导数与偏导数与方向导数是向量么?
向量的定义是有方向(direction)有大小(magnitude)的量。
从前面的定义可以这样看出,偏导数和方向导数表达的是函数在某一点沿某一方向的变化率,也是具有方向和大小的。因此从这个角度来理解,我们也可以把偏导数和方向导数看作是一个向量,向量的方向就是变化率的方向,向量的模,就是变化率的大小。
那么沿着这样一种思路,就可以如下理解梯度:
梯度即函数在某一点最大的方向导数,函数沿梯度方向函数有最大的变化率。
梯度下降法
既然在变量空间的某一点处,函数沿梯度方向具有最大的变化率,那么在优化目标函数的时候,自然是沿着负梯度方向去减小函数值,以此达到我们的优化目标。
如何沿着负梯度方向减小函数值呢?既然梯度是偏导数的集合,如下:
同时梯度和偏导数都是向量,那么参考向量运算法则,我们在每个变量轴上减小对应变量值即可,梯度下降法可以描述如下:
以上就是梯度下降法的由来,大部分的机器学习任务,都可以利用Gradient Descent来进行优化。
---------------------
总结:
1.导数定义: 导数代表了在自变量变化趋于无穷小的时候,函数值的变化与自变量的变化的比值。几何意义是这个点的切线。物理意义是该时刻的(瞬时)变化率。
注意:在一元函数中,只有一个自变量变动,也就是说只存在一个方向的变化率,这也就是为什么一元函数没有偏导数的原因。
(derivative)
2.偏导数: 既然谈到偏导数,那就至少涉及到两个自变量。以两个自变量为例,z=f(x,y),从导数到偏导数,也就是从曲线来到了曲面。曲线上的一点,其切线只有一条。但是曲面上的一点,切线有无数条。而偏导数就是指多元函数沿着坐标轴的变化率。
注意:直观地说,偏导数也就是函数在某一点上沿坐标轴正方向的的变化率。
(partial derivative)
3.方向导数: 在某点沿着某个向量方向上的方向导数,描绘了该点附近沿着该向量方向变动时的瞬时变化率。这个向量方向可以是任一方向。
方向导数的物理意义表示函数在某点沿着某一特定方向上的变化率。
注意:导数、偏导数和方向导数表达的是函数在某一点沿某一方向的变化率,也是具有方向和大小的。
(directional derivative)
4.梯度: 函数在给定点处沿不同的方向,其方向导数一般是不相同的。那么沿着哪一个方向其方向导数最大,其最大值为多少,这是我们所关心的,为此引进一个很重要的概念: 梯度。
5.梯度下降
在机器学习中往往是最小化一个目标函数 L(Θ),理解了上面的内容,便很容易理解在梯度下降法中常见的参数更新公式:
Θ = Θ − γ ∂ L ∂ Θ
通过算出目标函数的梯度(算出对于所有参数的偏导数)并在其反方向更新完参数 Θ ,在此过程完成后也便是达到了函数值减少最快的效果,那么在经过迭代以后目标函数即可很快地到达一个极小值。
6.In summary:
概念 物理意义
导数 函数在该点的瞬时变化率
偏导数 函数在坐标轴方向上的变化率
方向导数 函数在某点沿某个特定方向的变化率
梯度 函数在该点沿所有方向变化率最大的那个方向