梯度

摘要:
因此,梯度是函数值下降最快的方向。例如,下面表示一个变量的函数的导数和两个变量函数的导数。导数是切平面1.2方向导数对于二元函数,如果曲线方向只是(x轴,其中(heta)是方向向量与(x)轴的正方向之间的角度(D_uf(x,y)=f_x(x、y)cosheta+f_y(x,y)sinheta)1.3梯度在知道方向导数是什么之后,思考一个问题。我们将方向导数写成向量点的形式,即(D_uf(x,
1. 梯度

梯度的本质:梯度是方向导数最大值的反方向,因此梯度是函数值下降最快的方向。

在谈梯度之前我们需要先了解导数,跟方向导数的概念

1.1 导数

导数大家都很熟悉,即某个点在函数上的变化率。这个点不止是一元函数上的点,即只有一个变量。也有可能是二元,三元函数上的点不止一个自变量。但都表示某个点的在函数上的变化率。比如下面分别表示一元函数导数跟二元函数导数。

对于一元函数,导数是一条切线

梯度第1张

对于二元函数,导数是一个切面

梯度第2张

1.2 方向导数

对于二元函数我们在一个点((x,y))上可以做出无数条曲线,如上图我们在Q点每个方向上都可以做出曲线,每条曲线上我们都可以求出Q点在这条曲线上的斜率,如果曲线方向刚好是(x轴,y轴),那我们求出Q点在这两个方向的斜率就是偏导数。

我们把每个点在不同方向上的导数称为方向导数

下面是方向导数的公式,其中( heta)为方向向量与(x)轴正方向上的夹角

(D_uf(x,y)=f_x(x,y)cos heta+f_y(x,y)sin heta)

1.3 梯度

知道什么是方向导数后想一个问题,Q点在那个方向变化最大呢。在哪个点变化最大就是求方向导数在什么时候最大,因为方向导数代表了点在各个方向上的变化率。

我们把方向导数写成向量点成的形式就是

(D_uf(x,y)=(f_x(x,y),f_y(x,y))cdot(cos heta,sin heta))

(因此D_uf(x,y)=|(f_x(x,y),f_y(x,y))| |cos heta,sin heta|cosalpha)

(|cos heta,sin heta|)的长度为1,当(alpha)等于0的时候方向导数最大,最大为(|(f_x(x,y),f_y(x,y))|),有没有发现这个值刚好梯度的负值。因此我们说梯度为方向导数最大值的反方向,沿梯度方向函数值下降最快。

2. 参考
  1. 求解全微分的意义?最好感性一点的认识 - 马同学的回答 - 知乎
    https://www.zhihu.com/question/31464934/answer/152231899
  2. 如何直观形象的理解方向导数与梯度以及它们之间的关系? - 忆臻的回答 - 知乎
    https://www.zhihu.com/question/36301367/answer/142096153

免责声明:文章转载自《梯度》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WPF 任务栏图标闪烁提醒hibernate的配置文件(ORM元数据配置、主配置文件)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

photometric_stereo halcon光度立体法三维表面重建

官方文档翻译 名称: photometric_stereo -- 通过光度立体技术重建表面。 签名: photometric_stereo(Images : HeightField, Gradient, Albedo : Slants, Tilts, ResultType, ReconstructionMethod, GenParamName, GenP...

使用TSQL的Rand函数生成随机数的艰苦历程

在上一篇《大量数据插入的几种方式的速度比较》里,有一列数据是用Rank函数来生产的,用来造假数据。 现在的问题是,如果要更新这一列的值,怎么办呢?也许全部删除,重新插入一遍就可以。但是太慢了。于是随手就写出了下面的代码。   Update aTable Set aColumn = @MaxInt *RAND()   结果完全出乎意料,这一列的值全是一样的!...

静态分析基础技术

目录 这是《恶意代码分析实战》一书第1章的笔记 注意,文中的链接都有可能是恶意的,请勿随意点击 1.反病毒引擎扫描1-1.Virus Total 2.哈希值 2-1.md5deep 2-2.WinMD5 3.查找字符串3-1.Strings程序 4.加壳与混淆恶意代码 4-1.文件加壳 4-2.使用PEiD检测加壳 4-3.使用UPX...

数据可视化基础专题(44):NUMPY基础(9)数组操作(1)修改数组形状/翻转数组

1 修改数组形状 函数 描述 reshape 不改变数据的条件下修改形状 flat 数组元素迭代器 flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组 ravel 返回展开数组 numpy.reshape numpy.reshape 函数可以在不改变数据的条件下修改形状,格式如下: numpy.reshape(a...

C#语言基础— 输入与输出

1.1函数的四要素:名称、输入、输出、加工 1.2主函数:输出语句、输入语句: Static viod Main(string[] stgs)//下划线部分可以自己指定 { 主函数内容 } Console.ReadKey();//输入语句 Console.ReadLine();//输入语句 Console.WriteLine();//输出语句,自动换行 C...

详解 QT 主要类 QWidget

QWidget类是所有用户界面对象的基类,每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。 先来看内容。 AD: 2013云计算架构师峰会超低价抢票中 QT 主要类 QWidget 是本文介绍的内容,QWidget类是所有用户界面对象的基类。窗口部件是用户界面的一个原子:它从窗口系统接...