今天一位考研的同学问及我梯度的概念,以及为什么在二元函数z=f(x,y),明明表示一个三维空间曲面,为何其梯度是二维的。说实在话,至于为什么是二维的,当时我真的不清楚
一、梯度的概念
在向量微积分中,标量场的梯度是一个向量场。标量场中某一点上的梯度指向标量场增长最快的方向,梯度的长度是这个最大的变化率。也就是说我们按照某一点的梯度走,那么我们可以最快的速度得到其最值。
二、形式化定义
一个标量函数的梯度记为:
-
或
其中(nabla)表示向量微分算子。
在三维情况,该表达式在直角坐标中扩展为
虽然使用坐标表达,但结果是在正交变换下不变,从几何的观点来看,这是应该的。
三、范例
函数的梯度为:
四、为什么对于一个三维空间曲面,其梯度为2维(求数学院的人指导)
对于这个问题经查阅同济大学的高等数学,上面的解释是。我们在求一个二元函数在求其梯度的时候,是将其投影在一个二维平面上去求解的,在二维平面上市一个个等值线,然后求值变化的方向故而就是二维的了。我感觉从三维的角度来理解,对于一个函数z=f(x,y)来说,其切线的竖坐标总可以化为-1或者+1,故而我们没有必要去考虑其竖坐标。在三维中其切线法向量就是表示变化率最大的方向。确实梯度表示一个方向,其在二维等值线的表示意义和其在三维坐标系中表示的意义完全相同,故而我们就采用了一个二维等值线上的对于x,y的偏导数了。
五、梯度在机器学习中的应用
梯度在机器学习中的应用就是梯度下降法。梯度下降法是一个一阶最优化算法,通常也称为最速下降法。最近,听斯坦福大学Andrew Ng的机器学习课程时,碰到了用梯度下降算法求解线性回归问题。也就是求cost function最小值,时候采用的一步步迭代的方法。其思想如下:
迭代算法描述:
我们知道,函数的曲线如下:
当梯度的数值为0是即为我们所求的最小值点了。
问题:
迭代步长alpha为什么要选择0.5??选择其他的值可以吗?它的取值与迭代的次数、收敛性及结果的准确性有何关系?如果选择alpha的值?
首先:alpha可以选择任何步长,不一定是0.5,选取其它数值也是可以得。它的取值会影响结果的迭代的次数、收敛性及结果的准确性。因为如果alpha太小就会形成baby step,就是每一步迭代很小,故而不一定能够到达最小值。如果alpha太大,那么迭代过程可能会在最值附近徘徊。至于如何选择alpha,具体问题具体分析吧,个人感觉就是在迭代过程中不断更改alpha,这样结果可能会好一点。