热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

解释梯度反方向是函数值下降最快的方向

首先,先引用知乎大佬的一句话:平面(一维)导数为正,单调增加,导数为负单调减。可以这里的正负号理解成一维向量的方向。转自知

首先,先引用知乎大佬的一句话:平面(一维)导数为正,单调增加,导数为负单调减。可以这里的正负号理解成一维向量的方向。

转自知乎专栏机器学习算法与自然语言处理     忆臻大佬文章:

刚接触梯度下降这个概念的时候,是在学习机器学习算法的时候,很多训练算法用的就是梯度下降,然后资料和老师们也说朝着梯度的反方向变动,函数值下降最快,但是究其原因的时候,很多人都表达不清楚。所以我整理出自己的理解,从方向导数这个角度把这个结论证明出来,让我们知其然也知其所以然~

下面我一开始不提梯度的概念,完全根据自己的理解进行下文的梳理,一步一步推出梯度的来历:


  • 导数

导数的几何意义可能很多人都比较熟悉: 当函数定义域和取值都在实数域中的时候,导数可以表示函数曲线上的切线斜率。 除了切线的斜率,导数还表示函数在该点的变化率

将上面的公式转化为下面图像为

直白的来说,导数代表了在自变量变化趋于无穷小的时候,函数值的变化与自变量变化的比值代表了导数,几何意义有该点的切线。物理意义有该时刻的(瞬时)变化率...

注意在一元函数中,只有一个自变量变动,也就是说只存在一个方向的变化率,这也就是为什么一元函数没有偏导数的原因。


  • 偏导数

既然谈到偏导数,那就至少涉及到两个自变量,以两个自变量为例,z=f(x,y) . 从导数到偏导数,也就是从曲线来到了曲面. 曲线上的一点,其切线只有一条。但是曲面的一点,切线有无数条。

而我们所说的偏导数就是指的是多元函数沿坐标轴的变化率.

f_{x} (x,y)

那么偏导数对应的几何意义是是什么呢?


  • 偏导数f_{x} (x_{0},y_{0} )

    假设山坡表示为z=f(x,y)

    那么我们来考虑如何求出u方向的斜率,可以类比于前面导数定义,得出如下:

    f(x,y)为一个二元函数,u =cos\theta i+sin\theta j为一个单位向量,如果下列的极限值存在

    \lim_{t \rightarrow 0}{\frac{f(x_{0}+tcos\theta ,y_{0}+tsin\theta )-f(x_{0},y_{0})}{t} }此方向导数记为D_{u}f

    则称这个极限值是f沿着u方向的方向导数,那么随着\theta的不同,我们可以求出任意方向的方向导数.这也表明了方向导数的用处,是为了给我们考虑函数对任意方向的变化率.

    在求方向导数的时候,除了用上面的定义法求之外,我们还可以用偏微分来简化我们的计算.

    表达式是:D_{u}f(x,y)=f_{x}(x,y)cos\theta +f_{y}(x,y)sin\theta(至于为什么成立,很多资料有,不是这里讨论的重点)

    那么一个平面上无数个方向,函数沿哪个方向变化率最大呢?

    目前我不管梯度的事,我先把表达式写出来:

    D_{u}f(x,y)=f_{x}(x,y)cos\theta +f_{y}(x,y)sin\theta

    A=(f_{x}(x,y) ,f_{y}(x,y)),I=(cos\theta ,sin\theta )

    那么我们可以得到:

    D_{u}f(x,y)=A\bullet I=\left| A \right| *\left| I \right| cos\alpha(\alpha为向量A与向量I之间的夹角)

    那么此时如果D_{u}f(x,y)要取得最大值,也就是当\alpha为0度的时候,也就是向量I(这个方向是一直在变,在寻找一个函数变化最快的方向)与向量A(这个方向当点固定下来的时候,它就是固定的)平行的时候,方向导数最大.方向导数最大,也就是单位步伐,函数值朝这个反向变化最快.

    好了,现在我们已经找到函数值下降最快的方向了,这个方向就是和A向量相同的方向.那么此时我把A向量命名为梯度(当一个点确定后,梯度方向是确定的),也就是说明了为什么梯度方向是函数变化率最大的方向了!!!(因为本来就是把这个函数变化最大的方向命名为梯度)


推荐阅读
author-avatar
要么永远要么消失_324
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有