梯度(Gradient)

梯度是机器学习领域中一个非常常用且重要的一个数学概念,但是一直不是特别理解深层含义,于是查阅资料,对梯度进行一个总结说明。

我们在高数中都学过梯度的定义:

设函数f(x,y)在平面区域D内具有一阶连续偏导数,则对每一点P(x_{0},y_{0})\in D都可以定出一个向量f_{x}(x_{0},y_{0}) \vec{i} + f_{y}(x_{0},y_{0}) \vec{j}称为f(x,y)在P点处的梯度,记作\vec \triangledown f(x_{0},y_{0})

从定义中我们可以得到以下信息:1、梯度是矢量     2、梯度的模与函数f(x,y)在点P(x_{0},y_{0})处的偏导数f_{x}(x_{0},y_{0}),f_{y}(x_{0},y_{0})有关。

不难想象,函数f(x,y)在几何空间中实际上对应的是三维空间(或者是三维平面或者是三维曲面)。那么我们就以三维曲面为例,对梯度进行说明总结。

首先我们看一幅图片

preview

假如我们在山顶,需要走到山谷的湖泊中,我们应该怎么走最快。这里,其实就涉及到了梯度的概念。

在高数课本中还有这么一个定理是这么说的:梯度的方向与取得最大方向导数的方向一致,模为方向导数的最大值。

那么,我们先来看看方向导数是什么样的存在。

什么是方向导数,方向导数就是函数f(x,y)(当然不一定是二元函数)在某点沿特定方向的变化率

xoy平面上的紫色箭头表示的是特定方向,这个方向是任意的,那么函数f(x,y)在这个方向上的图像如下图所示

                                     preview

函数f(x,y)在点A处特定方向上存在切线,此时这条红色的切线斜率就是点A处的方向导数

                                      preview

曲面上的A点投影到xoy面上的点有无数个方向,同样的A点也有无数个方向。

                                            preview

每个方向上都存在方向导数,而方向导数最大的方向就是梯度的方向,方向导数的最大值就是梯度的值。

preview

那么问题来了,方向导数有无数个,那么它一定会存在最大值吗,而且这个最大值是唯一的。我们回到梯度的定义,定义中说到函数f(x,y)在D内有一阶连续偏导数,高数中的知识:偏导连续必可微我们知道,函数f(x,y)是可微的,那么函数f(x,y)各个方向的切线是共面的,即这些方向上的切向组成了在点A处的切平面。                    preview

此处我们可以想象一下在一块平滑直立的玻璃上流下一滴水,这滴水的轨迹是唯一的,而且这滴水流下的方向就是玻璃上各点处的梯度的方向。所以最大方向导数是唯一的,梯度也是唯一的。

最后用吴恩达老师在Coursera上的一张图片

        

回到在山顶走到山谷湖泊的图片,沿着梯度的反方向(因为梯度表达的是增加最快的方向)就是最快到达山谷的方向。

梯度是机器学习深度学习中求解参数中非常关键的一个概念

                                                   

这是TensorFlow中的一张流图,可以看到,它就是根据梯度来训练模型的。此图来源于TensorFlow中文社区。

补充:

实际上对于一元函数也是存在梯度的,只不过梯度的方向只有沿x轴的正方向和反方向之分,其大小某点处的导数值。

参考文献:

1、如何直观形象的理解方向导数与梯度以及它们之间的关系?  https://www.zhihu.com/question/36301367

2、吴恩达coursera  https://www.coursera.org/lecture/machine-learning/welcome-to-machine-learning-zcAuT

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值