偏导数、方向导数与梯度
type
status
date
slug
summary
tags
category
icon
password
本文梳理偏导数、方向导数的概念和数学表达,并从偏导数和方向导数的概念推导出梯度的定义和性质。
0 导数 Derivative
首先回顾导数的基本概念。直观来讲,函数在某点的导数即函数在某点的变化率。
如图中某一元函数在处取值为,在点的附近处取值为为。(就是自变量的移动距离,也可写作)。我们就可以认为在处的变化率近似为
此变化率的值也正是在处割线(图中灰色线)的斜率。
当趋于无穷小时,割线逐渐逼近切线(图中红色线),此时的变化率
即在处的导数。记作
几何上来讲,导数可以看成用线性函数(2D空间的直线、3D空间的平面…)对非线性函数(2D空间的曲线、3D空间的曲面…)的近似。
1 偏导数 Partial derivative
上节我们只考察了单变量函数的导数。现在考虑更泛化的情况,如两个变量的函数:
我们只考虑一般情况,该二元函数在定义域处处连续可导。
对于定义域内每个点,函数都把该点映射为轴方向的某个取值,因此函数的图像是一个曲面(用更几何的语言可描述为:嵌入在三维欧氏空间的二维流形)。
再回顾一元函数的导数定义。
对于定义域中任意一点,我们所讨论的“函数在该点的变化率”显然是该点沿着轴方向运动导致的函数取值的变化。因此,讨论导数的前提是要明确自变量的变化方向。
一元函数的自变量只有轴方向可以变化,但多元函数自变量的方向变化就无穷无尽了。
如图中点可以沿着任意方向移动(如图中红线方向),都会导致函数值相应的变化。
既然方向无穷无尽,那么导数的定义也无穷无尽了,那么如何用导数描述函数的在某点的变化率呢?
我们先考虑最简单的情况,让点只能沿着坐标轴方向移动。如下图,对于二元函数,让点只能沿着轴或轴方向移动。
只能沿某个坐标轴方向移动,意味着固定了其他自变量的取值。
例如左图只能沿着轴方向移动,轴方向取值是固定的(假设)。自变量这种运动轨迹对应的函数取值仅限于平面内。这样又退化到了一元函数的情况,因此我们可以定义在轴方向的导数,称为方向偏导数:
同样也可以定义方向的偏导数为:
2 方向导数 Directional derivative
偏导数只是最特殊的情况:仅允许变量沿着坐标轴方向移动。那么更一般的情况下,变量沿任意方向移动时应该如何描述导数?
先来从几何上直观理解。上面可交互的图形中,点是定义域任意点,红色小箭头是从点出发的任意方向。函数在的方向导数对应的切线为图中黑色直线。
首先来描述方向。对于二维平面,我们可用与轴的夹角来唯一确定某个方向,如下图。
图中的方向就可用向量来描述了。
再来描述沿着这个方向走的距离(对应着一元函数的),这里我们用来表示。在坐标轴上的投影分别为。
有了自变量的取值点、方向、沿着方向要移动的距离,我们就可以套用导数的定义来描述方向导数了:
直观上理解为
对上式做个分裂,
得到:
直观上理解为:
带入和的关系,可改写为:
回顾偏导数的定义形式,上式等价于:
改用向量乘法的形式表达方向导数:
3 梯度 Gradient
我们把把各个坐标轴方向的偏导数组合成一个向量,称为函数的梯度。如二元函数的梯度:
通常或者作为梯度算子。对于一般的多元函数,其梯度为:
注意上节推导出的方向导数定义为:
第二项正是梯度的定义。
我们把第一项看作梯度的系数。
对于定义域任意点,该处的梯度由函数的形状确定,而方向导数的方向可以任意选取。不同的确定了不同的方向,也就确定了梯度的不同系数。
那么方向导数的方向为多少时,方向导数的值最大?这时我们用向量点乘的视角再看方向导数的定义:,我们把这个公式看作两个向量的点乘。
回顾向量点乘的性质:
梯度向量指向的方向和方向导数指向的方向之间的夹角为。显然两个方向相同时,上式取最大值。换个说法就是:梯度方向是方向导数取值最大的方向,也就是在该点上函数上升最快的方向(相反方向即下降最快的方向,这也是梯度下降法/最速下降法的理论根基)。
又因为,则,所以梯度的模长就是方向导数的最大值。