刚接触梯度降低这个概念的时候,是在学习机器学习算法的时候,不少训练算法用的就是梯度降低,而后资料和老师们也说朝着梯度的反方向变更,函数值降低最快,可是究其缘由的时候,不少人都表达不清楚。因此我整理出本身的理解,从方向导数这个角度把这个结论证实出来,让咱们知其然也知其因此然~html
下面我一开始不提梯度的概念,彻底根据本身的理解进行下文的梳理,一步一步推出梯度的来历:算法
导数的几何意义可能不少人都比较熟悉: 当函数定义域和取值都在实数域中的时候,导数能够表示函数曲线上的切线斜率。 除了切线的斜率,导数还表示函数在该点的变化率。数据结构
将上面的公式转化为下面图像为:机器学习
(来自维基百科)函数
直白的来讲,导数表明了在自变量变化趋于无穷小的时候,函数值的变化与自变量变化的比值表明了导数,几何意义有该点的切线。物理意义有该时刻的(瞬时)变化率...post
注意在一元函数中,只有一个自变量变更,也就是说只存在一个方向的变化率,这也就是为何一元函数没有偏导数的缘由。学习
而咱们所说的偏导数就是指的是多元函数沿坐标轴的变化率.url
指的是函数在y方向不变,函数值沿着x轴方向的变化率.net
指的是函数在x方向不变,函数值沿着y轴方向的变化率htm
对应的图像形象表达以下:
那么偏导数对应的几何意义是是什么呢?
可能到这里,读者就已经发现偏导数的局限性了,原来咱们学到的偏导数指的是多元函数沿坐标轴的变化率,可是咱们每每不少时候要考虑多元函数沿任意方向的变化率,那么就引出了方向导数.
终于引出咱们的重头戏了,方向导数,下面咱们慢慢来走进它
假设你站在山坡上,相知道山坡的坡度(倾斜度)
山坡图以下:
假设山坡表示为,你应该已经会作主要俩个方向的斜率.
y方向的斜率能够对y偏微分获得.
一样的,x方向的斜率也能够对x偏微分获得
那么咱们可使用这俩个偏微分来求出任何方向的斜率(相似于一个平面的全部向量能够用俩个基向量来表示同样)
如今咱们有这个需求,想求出方向的斜率怎么办.假设
为一个曲面,
为f定义域中一个点,单位向量
的斜率,其中
是此向量与x轴正向夹角.单位向量
能够表示对任何方向导数的方向.以下图:
那么咱们来考虑如何求出方向的斜率,能够类比于前面导数定义,得出以下:
设为一个二元函数,
为一个单位向量,若是下列的极限值存在
此方向导数记为
则称这个极限值是f沿着方向的方向导数,那么随着
的不一样,咱们能够求出任意方向的方向导数.这也代表了方向导数的用处,是为了给咱们考虑函数对任意方向的变化率.
在求方向导数的时候,除了用上面的定义法求以外,咱们还能够用偏微分来简化咱们的计算.
表达式是:(至于为何成立,不少资料有,不是这里讨论的重点)
那么一个平面上无数个方向,函数沿哪一个方向变化率最大呢?
目前我无论梯度的事,我先把表达式写出来:
设
那么咱们能够获得:
(a为向量A与向量I之间的夹角)
那么此时若是要取得最大值,也就是当a为0度的时候,也就是向量I(这个方向是一直在变,在寻找一个函数变化最快的方向)与向量A(这个方向当点固定下来的时候,它就是固定的)平行的时候,方向导数最大.方向导数最大,也就是单位步伐,函数值朝这个反向变化最快.
好了,如今咱们已经找到函数值降低最快的方向了,这个方向就是和A向量相同的方向.那么此时我把A向量命名为梯度(当一个点肯定后,梯度方向是肯定的),也就是说明了为何梯度方向是函数变化率最大的方向了!!!(由于原本就是把这个函数变化最大的方向命名为梯度)
个人理解是,原本梯度就不是横空出世的,当咱们有了这个需求(要求一个方向,此方向函数值变化最大),获得了一个方向,而后这个方向有了意义,咱们给了它一个名称,叫作梯度(纯我的理解~但愿对你们理解有帮助)欢迎知友提出问题交流~