引言:多变量函数需要一张局部变化地图
山地高度同时依赖东西和南北位置,损失函数同时依赖成千上万个模型参数,温度场同时依赖空间坐标与时间。一元导数只给出数轴上的一个变化率;多变量输入允许沿无穷多个方向移动,需要一个能够回答所有小位移的统一局部模型。
偏导数分别测量坐标轴方向,方向导数测量指定方向,梯度把标准欧氏坐标下的全部一阶变化组织成向量。更根本的对象是全微分:它是从输入增量到输出增量的线性映射。梯度是这个线性映射在给定内积下的向量表示。区分对象与表示,可以准确处理坐标变化、非欧氏度量和约束问题。
先修知识与记号
先修内容包括
多变量函数、联合极限与连续性 、
一元导数、微分与链式法则 ,以及
向量、内积和范数 。
多变量符号需要保持输入和输出类型清楚。点与增量写作列向量
x , h ∈ R n \mathbf x,\mathbf h\in\mathbb R^n x , h ∈ R n 。标量场写作
f : R n → R f:\mathbb R^n\to\mathbb R f : R n → R ;向量值映射写作
F : R n → R m F:\mathbb R^n\to\mathbb R^m F : R n → R m 。全微分
D f ( a ) Df(\mathbf a) D f ( a ) 是从输入增量到标量增量的线性映射,记
D f ( a ) [ h ] Df(\mathbf a)[\mathbf h] D f ( a ) [ h ] ;J F ( a ) J_F(\mathbf a) J F ( a ) 是把
n n n 维输入增量映到 m m m 维输出增量的 m × n m\times n m × n Jacobian。标量函数的 Hessian 记作
H f ( a ) ∈ R n × n H_f(\mathbf a)\in\mathbb R^{n\times n} H f ( a ) ∈ R n × n 。本章始终采用列梯度约定。
从一元变化率到多变量问题
一元函数在点 x x x 的小增量只有正负两个基本方向。多变量函数
f ( x , y ) f(x,y) f ( x , y ) 在同一点可以沿任意向量移动。仅列出横轴和纵轴上的变化率,还需要可微性把它们组合成对所有方向都有效的线性预测。
设高度函数在某点的两个偏导分别为 2 2 2 和 − 1 -1 − 1 。沿位移
( Δ x , Δ y ) (\Delta x,\Delta y) ( Δ x , Δ y ) 的一阶高度变化应为
2 Δ x − Δ y 2\Delta x-\Delta y 2Δ x − Δ y 。这条规则对增量是线性的:位移相加时预测变化相加,位移缩放时预测变化同比缩放。全微分正是对这种线性主部的严格表达。
从导数到方向导数
一维导数通过一个标量增量逼近。多变量中最直接的做法,是先只改变一个坐标。设 e i \mathbf e_i e i 为第 i i i 个标准基向量。
偏导数
若极限存在,则 f f f 在 a \mathbf a a 处关于第 i i i 个坐标的偏导数定义为
∂ f ∂ x i ( a ) = lim t → 0 f ( a + t e i ) − f ( a ) t . \frac{\partial f}{\partial x_i}(\mathbf a)
=\lim_{t\to0}
\frac{f(\mathbf a+t\mathbf e_i)-f(\mathbf a)}{t}. ∂ x i ∂ f ( a ) = t → 0 lim t f ( a + t e i ) − f ( a ) . 它只改变 x i x_i x i ,把其他坐标固定。若 f f f 的输出单位为开尔文、x i x_i x i 的单位为米,则这一分量的单位是开尔文每米;不同坐标具有不同单位时,各偏导数分量的单位也可能不同。
偏导数把坐标轴视为特殊方向。对任意单位向量
u \mathbf u u ,方向导数定义为
D u f ( x ) = lim t → 0 f ( x + t u ) − f ( x ) t . D_{\mathbf u}f(\mathbf x)
=\lim_{t\to0}
\frac{f(\mathbf x+t\mathbf u)-f(\mathbf x)}{t}. D u f ( x ) = t → 0 lim t f ( x + t u ) − f ( x ) .
当 u = e i \mathbf u=\mathbf e_i u = e i 时,它就是第 i i i 个偏导数
∂ f / ∂ x i \partial f/\partial x_i ∂ f / ∂ x i 。若题目给出非零向量 v \mathbf v v 并询问“该方向的单位变化率”,应先用
u = v / ∥ v ∥ \mathbf u=\mathbf v/\lVert\mathbf v\rVert u = v / ∥ v ∥ 归一化。若不归一化,得到的是沿参数速度
v \mathbf v v 的导数,其数值会随 v \mathbf v v 的长度同比缩放。
所有偏导数存在仍不足以推出函数可微;甚至每个方向导数都存在,也未必能组成一个线性映射。可微要求存在一个统一的线性近似,同时控制所有足够小的增量,而不是逐条方向分别给出互不协调的变化率。
严格定义:全微分与梯度
全微分与梯度
若存在一个线性映射 D f ( x ) : R n → R Df(\mathbf x):\mathbb R^n\to\mathbb R D f ( x ) : R n → R ,使
f ( x + h ) = f ( x ) + D f ( x ) [ h ] + r ( h ) , r ( h ) ∥ h ∥ → 0 ( h → 0 ) , f(\mathbf x+\mathbf h)
=f(\mathbf x)+Df(\mathbf x)[\mathbf h]+r(\mathbf h),
\qquad
\frac{r(\mathbf h)}{\lVert\mathbf h\rVert}\to0
\quad(\mathbf h\to\mathbf0), f ( x + h ) = f ( x ) + D f ( x ) [ h ] + r ( h ) , ∥ h ∥ r ( h ) → 0 ( h → 0 ) , 则称 f f f 在 x \mathbf x x 可微。在线性空间采用标准欧氏内积时,存在唯一向量
∇ f ( x ) \nabla f(\mathbf x) ∇ f ( x ) 使
D f ( x ) [ h ] = ∇ f ( x ) T h Df(\mathbf x)[\mathbf h]=\nabla f(\mathbf x)^\mathsf T\mathbf h D f ( x ) [ h ] = ∇ f ( x ) T h 。
因此
∇ f ( x ) = [ ∂ f ∂ x 1 ⋮ ∂ f ∂ x n ] , D u f ( x ) = ∇ f ( x ) T u . \nabla f(\mathbf x)=
\begin{bmatrix}
\frac{\partial f}{\partial x_1}\\
\vdots\\
\frac{\partial f}{\partial x_n}
\end{bmatrix},
\qquad
D_{\mathbf u}f(\mathbf x)
=\nabla f(\mathbf x)^\mathsf T\mathbf u. ∇ f ( x ) = ∂ x 1 ∂ f ⋮ ∂ x n ∂ f , D u f ( x ) = ∇ f ( x ) T u .
第二式来自令 h = t u \mathbf h=t\mathbf u h = t u 后除以 t t t 并取极限。可微性的线性近似给出严格推导,图形只提供直觉。
连续偏导数给出可微性的充分条件
设 f f f 定义在 a \mathbf a a 的一个开邻域内。若各一阶偏导数在该邻域内存在,并在 a \mathbf a a 连续,则 f f f 在 a \mathbf a a 可微,且全微分的矩阵表示由这些偏导数组成。
证明
把增量 h = ( h 1 , … , h n ) T \mathbf h=(h_1,\ldots,h_n)^\mathsf T h = ( h 1 , … , h n ) T 按坐标逐个加入。令
x ( i ) = a + ( h 1 , … , h i , 0 , … , 0 ) T , x ( 0 ) = a . \mathbf x^{(i)}
=\mathbf a+(h_1,\ldots,h_i,0,\ldots,0)^\mathsf T,
\qquad \mathbf x^{(0)}=\mathbf a. x ( i ) = a + ( h 1 , … , h i , 0 , … , 0 ) T , x ( 0 ) = a . 函数增量可望远镜求和为
f ( a + h ) − f ( a ) = ∑ i = 1 n [ f ( x ( i ) ) − f ( x ( i − 1 ) ) ] . f(\mathbf a+\mathbf h)-f(\mathbf a)
=\sum_{i=1}^n
\left[f(\mathbf x^{(i)})-f(\mathbf x^{(i-1)})\right]. f ( a + h ) − f ( a ) = i = 1 ∑ n [ f ( x ( i ) ) − f ( x ( i − 1 ) ) ] . 对每一项沿第 i i i 个坐标应用一元中值定理,可在对应线段上找到点
ξ i \boldsymbol\xi_i ξ i ,使该项等于
∂ i f ( ξ i ) h i \partial_i f(\boldsymbol\xi_i)h_i ∂ i f ( ξ i ) h i 。当
h → 0 \mathbf h\to\mathbf0 h → 0 时,所有 ξ i → a \boldsymbol\xi_i\to\mathbf a ξ i → a 。减去候选线性项
∑ i ∂ i f ( a ) h i \sum_i\partial_i f(\mathbf a)h_i ∑ i ∂ i f ( a ) h i 后,余项满足
∣ r ( h ) ∣ ≤ max i ∣ ∂ i f ( ξ i ) − ∂ i f ( a ) ∣ ∑ i = 1 n ∣ h i ∣ ≤ n η ( h ) ∥ h ∥ , |r(\mathbf h)|
\le
\max_i|\partial_i f(\boldsymbol\xi_i)-\partial_i f(\mathbf a)|
\sum_{i=1}^n|h_i|
\le
\sqrt n\,\eta(\mathbf h)\lVert\mathbf h\rVert, ∣ r ( h ) ∣ ≤ i max ∣ ∂ i f ( ξ i ) − ∂ i f ( a ) ∣ i = 1 ∑ n ∣ h i ∣ ≤ n η ( h ) ∥ h ∥ , 其中由偏导连续性有 η ( h ) → 0 \eta(\mathbf h)\to0 η ( h ) → 0 。所以
r ( h ) / ∥ h ∥ → 0 r(\mathbf h)/\lVert\mathbf h\rVert\to0 r ( h ) / ∥ h ∥ → 0 ,全微分存在。
连续偏导是便于检验的充分条件,不是必要条件:有些函数可微,但偏导函数在该点附近并不连续。判断题中不能把充分条件改写成“可微当且仅当偏导连续”。
梯度向量依赖选定的内积。在线性泛函 D f ( x ) Df(\mathbf x) D f ( x ) 固定时,欧氏内积通过
D f ( x ) [ h ] = ∇ f T h Df(\mathbf x)[\mathbf h]=\nabla f^\mathsf T\mathbf h D f ( x ) [ h ] = ∇ f T h 识别出一个向量;若内积改成
⟨ p , q ⟩ G = p T G q \langle\mathbf p,\mathbf q\rangle_G=\mathbf p^\mathsf T G\mathbf q ⟨ p , q ⟩ G = p T G q ,其中
G G G 正定,则代表同一线性泛函的梯度变为
G − 1 ∇ f G^{-1}\nabla f G − 1 ∇ f 。因此“梯度的坐标”与“全微分这个线性映射”应分层理解。
多变量链式法则与 Jacobian
向量值映射的 Jacobian
设 F = ( F 1 , … , F m ) T : R n → R m F=(F_1,\ldots,F_m)^\mathsf T:\mathbb R^n\to\mathbb R^m F = ( F 1 , … , F m ) T : R n → R m 在
a \mathbf a a 可微。其全微分的标准矩阵表示称为 Jacobian:
J F ( a ) = [ ∂ F 1 ∂ x 1 ⋯ ∂ F 1 ∂ x n ⋮ ⋱ ⋮ ∂ F m ∂ x 1 ⋯ ∂ F m ∂ x n ] x = a ∈ R m × n . J_F(\mathbf a)
=
\begin{bmatrix}
\dfrac{\partial F_1}{\partial x_1}&\cdots&\dfrac{\partial F_1}{\partial x_n}\\
\vdots&\ddots&\vdots\\
\dfrac{\partial F_m}{\partial x_1}&\cdots&\dfrac{\partial F_m}{\partial x_n}
\end{bmatrix}_{\mathbf x=\mathbf a}
\in\mathbb R^{m\times n}. J F ( a ) = ∂ x 1 ∂ F 1 ⋮ ∂ x 1 ∂ F m ⋯ ⋱ ⋯ ∂ x n ∂ F 1 ⋮ ∂ x n ∂ F m x = a ∈ R m × n . 它满足
F ( a + h ) = F ( a ) + J F ( a ) h + o ( ∥ h ∥ ) F(\mathbf a+\mathbf h)=F(\mathbf a)+J_F(\mathbf a)\mathbf h+o(\lVert\mathbf h\rVert) F ( a + h ) = F ( a ) + J F ( a ) h + o (∥ h ∥) 。每一行对应一个输出分量,每一列对应一个输入坐标。
多变量链式法则
设 g : R n → R m g:\mathbb R^n\to\mathbb R^m g : R n → R m 在 x \mathbf x x 可微,
f : R m → R p f:\mathbb R^m\to\mathbb R^p f : R m → R p 在 g ( x ) g(\mathbf x) g ( x ) 可微,则
D ( f ∘ g ) ( x ) = D f ( g ( x ) ) ∘ D g ( x ) . D(f\circ g)(\mathbf x)
=Df(g(\mathbf x))\circ Dg(\mathbf x). D ( f ∘ g ) ( x ) = D f ( g ( x )) ∘ D g ( x ) . 用矩阵表示即
J f ∘ g ( x ) = J f ( g ( x ) ) J g ( x ) J_{f\circ g}(\mathbf x)=J_f(g(\mathbf x))J_g(\mathbf x) J f ∘ g ( x ) = J f ( g ( x )) J g ( x ) ,维数为
( p × m ) ( m × n ) = p × n (p\times m)(m\times n)=p\times n ( p × m ) ( m × n ) = p × n 。
证明
记 A = J g ( x ) A=J_g(\mathbf x) A = J g ( x ) 、B = J f ( g ( x ) ) B=J_f(g(\mathbf x)) B = J f ( g ( x )) 。可微性给出
g ( x + h ) = g ( x ) + A h + r g ( h ) , ∥ r g ( h ) ∥ = o ( ∥ h ∥ ) . g(\mathbf x+\mathbf h)
=g(\mathbf x)+A\mathbf h+\mathbf r_g(\mathbf h),
\qquad
\lVert\mathbf r_g(\mathbf h)\rVert=o(\lVert\mathbf h\rVert). g ( x + h ) = g ( x ) + A h + r g ( h ) , ∥ r g ( h )∥ = o (∥ h ∥) . 令 k = A h + r g ( h ) \mathbf k=A\mathbf h+\mathbf r_g(\mathbf h) k = A h + r g ( h ) 。则
∥ k ∥ = O ( ∥ h ∥ ) \lVert\mathbf k\rVert=O(\lVert\mathbf h\rVert) ∥ k ∥ = O (∥ h ∥) ,再在中间点应用 f f f 的可微性:
f ( g ( x ) + k ) = f ( g ( x ) ) + B k + r f ( k ) . f(g(\mathbf x)+\mathbf k)
=f(g(\mathbf x))+B\mathbf k+\mathbf r_f(\mathbf k). f ( g ( x ) + k ) = f ( g ( x )) + B k + r f ( k ) . 其中
B r g ( h ) = o ( ∥ h ∥ ) B\mathbf r_g(\mathbf h)=o(\lVert\mathbf h\rVert) B r g ( h ) = o (∥ h ∥) ,且
r f ( k ) = o ( ∥ k ∥ ) = o ( ∥ h ∥ ) \mathbf r_f(\mathbf k)=o(\lVert\mathbf k\rVert)=o(\lVert\mathbf h\rVert) r f ( k ) = o (∥ k ∥) = o (∥ h ∥) 。唯一的一阶主部因此是
B A h BA\mathbf h B A h ,即 Jacobian 按映射复合顺序相乘。
当外层 f : R m → R f:\mathbb R^m\to\mathbb R f : R m → R 为标量函数时,采用列梯度约定可把同一公式写成
∇ ( f ∘ g ) ( x ) = J g ( x ) T ∇ f ( g ( x ) ) . \nabla(f\circ g)(\mathbf x)
=J_g(\mathbf x)^\mathsf T\nabla f(g(\mathbf x)). ∇ ( f ∘ g ) ( x ) = J g ( x ) T ∇ f ( g ( x )) .
转置来自输入、输出空间的方向:J g J_g J g 把输入增量送到中间增量,反向传递标量敏感度时使用其转置。逐坐标展开可验证维数:右侧是
n × m n\times m n × m 矩阵乘 m m m 维向量,结果属于原输入空间
R n \mathbb R^n R n 。
例 1:用 Jacobian 复算二层复合函数
设
g ( x , y ) = ( x + y , x y ) T , f ( u , v ) = u 2 + 3 v . g(x,y)=(x+y,xy)^\mathsf T,
\qquad
f(u,v)=u^2+3v. g ( x , y ) = ( x + y , x y ) T , f ( u , v ) = u 2 + 3 v . 在 ( 1 , 2 ) (1,2) ( 1 , 2 ) 处,g ( 1 , 2 ) = ( 3 , 2 ) T g(1,2)=(3,2)^\mathsf T g ( 1 , 2 ) = ( 3 , 2 ) T ,并且
J g ( 1 , 2 ) = [ 1 1 2 1 ] , ∇ f ( 3 , 2 ) = [ 6 3 ] . J_g(1,2)=
\begin{bmatrix}1&1\\2&1\end{bmatrix},
\qquad
\nabla f(3,2)=
\begin{bmatrix}6\\3\end{bmatrix}. J g ( 1 , 2 ) = [ 1 2 1 1 ] , ∇ f ( 3 , 2 ) = [ 6 3 ] . 所以
∇ ( f ∘ g ) ( 1 , 2 ) = J g ( 1 , 2 ) T ∇ f ( 3 , 2 ) = [ 1 2 1 1 ] [ 6 3 ] = [ 12 9 ] . \nabla(f\circ g)(1,2)
=J_g(1,2)^\mathsf T\nabla f(3,2)
=\begin{bmatrix}1&2\\1&1\end{bmatrix}
\begin{bmatrix}6\\3\end{bmatrix}
=\begin{bmatrix}12\\9\end{bmatrix}. ∇ ( f ∘ g ) ( 1 , 2 ) = J g ( 1 , 2 ) T ∇ f ( 3 , 2 ) = [ 1 1 2 1 ] [ 6 3 ] = [ 12 9 ] . 直接展开
( f ∘ g ) ( x , y ) = ( x + y ) 2 + 3 x y (f\circ g)(x,y)=(x+y)^2+3xy ( f ∘ g ) ( x , y ) = ( x + y ) 2 + 3 x y ,其梯度是
( 2 ( x + y ) + 3 y , 2 ( x + y ) + 3 x ) T (2(x+y)+3y,\,2(x+y)+3x)^\mathsf T ( 2 ( x + y ) + 3 y , 2 ( x + y ) + 3 x ) T ,代入 ( 1 , 2 ) (1,2) ( 1 , 2 ) 同样得到
( 12 , 9 ) T (12,9)^\mathsf T ( 12 , 9 ) T 。两种计算相符,同时核对了转置与矩阵维数。
为什么梯度指向最陡上升
在欧氏长度下限定 ∥ u ∥ = 1 \lVert\mathbf u\rVert=1 ∥ u ∥ = 1 。由柯西—施瓦茨不等式,
D u f = ∇ f T u ≤ ∥ ∇ f ∥ ∥ u ∥ = ∥ ∇ f ∥ . D_{\mathbf u}f
=\nabla f^\mathsf T\mathbf u
\le
\lVert\nabla f\rVert\lVert\mathbf u\rVert
=\lVert\nabla f\rVert. D u f = ∇ f T u ≤ ∥ ∇ f ∥ ∥ u ∥ = ∥ ∇ f ∥ .
当 ∇ f ≠ 0 \nabla f\neq0 ∇ f = 0 且
u = ∇ f / ∥ ∇ f ∥ \mathbf u=\nabla f/\lVert\nabla f\rVert u = ∇ f / ∥ ∇ f ∥ 时取等号,所以梯度是局部一阶近似中的最陡上升方向,负梯度是最陡下降方向;最大单位方向导数为
∥ ∇ f ∥ \lVert\nabla f\rVert ∥ ∇ f ∥ 。
这句话有四个边界:
它是局部、一阶结论,不保证沿该方向走很远仍下降。
它依赖欧氏内积;换一个度量,“最陡”方向会改变。
有约束时,可行方向受限,通常要投影到切空间或使用其他约束方法。
在尖点等不可微处,普通梯度可能不存在,需要次梯度或其他广义导数。
坐标尺度、单位与约束方向
若两个坐标具有不同单位,直接用欧氏长度比较方向可能产生误导。例如一个坐标以米计,另一个以毫米计,单纯改变单位就会把对应偏导数放大或缩小一千倍。全微分对同一实际增量给出的输出变化不变,但梯度坐标和“单位长度”都会随度量改变。建模时应先说明坐标尺度、单位和内积,再解释最陡方向。
约束集合还会限制可行增量。若变量满足光滑约束 c ( x ) = 0 c(\mathbf x)=0 c ( x ) = 0 ,且当前点
a \mathbf a a 满足 ∇ c ( a ) ≠ 0 \nabla c(\mathbf a)\ne\mathbf0 ∇ c ( a ) = 0 ,一阶可行切向量满足
∇ c ( a ) T v = 0 \nabla c(\mathbf a)^\mathsf T\mathbf v=0 ∇ c ( a ) T v = 0 。记
g = ∇ f ( a ) \mathbf g=\nabla f(\mathbf a) g = ∇ f ( a ) 、n = ∇ c ( a ) \mathbf n=\nabla c(\mathbf a) n = ∇ c ( a ) ,梯度在切空间上的正交投影为
g T = g − g T n n T n n . \mathbf g_T
=\mathbf g-
\frac{\mathbf g^\mathsf T\mathbf n}{\mathbf n^\mathsf T\mathbf n}\mathbf n. g T = g − n T n g T n n .
若 g T ≠ 0 \mathbf g_T\ne\mathbf0 g T = 0 ,单位向量
g T / ∥ g T ∥ \mathbf g_T/\lVert\mathbf g_T\rVert g T / ∥ g T ∥ 是欧氏度量下的一阶最陡可行上升方向。若投影为零,则目标梯度与约束梯度平行,得到
∇ f = λ ∇ c \nabla f=\lambda\nabla c ∇ f = λ ∇ c 的拉格朗日一阶必要条件;它仍不是极值充分条件。
例 2:把梯度投影到圆周切线
在约束 c ( x , y ) = x 2 + y 2 − 1 = 0 c(x,y)=x^2+y^2-1=0 c ( x , y ) = x 2 + y 2 − 1 = 0 上,考察
f ( x , y ) = x + 2 y f(x,y)=x+2y f ( x , y ) = x + 2 y 在点 ( 1 , 0 ) (1,0) ( 1 , 0 ) 的最陡可行方向。此处
g = ∇ f = ( 1 , 2 ) T , n = ∇ c ( 1 , 0 ) = ( 2 , 0 ) T . \mathbf g=\nabla f=(1,2)^\mathsf T,
\qquad
\mathbf n=\nabla c(1,0)=(2,0)^\mathsf T. g = ∇ f = ( 1 , 2 ) T , n = ∇ c ( 1 , 0 ) = ( 2 , 0 ) T . 所以
g T = ( 1 , 2 ) T − 2 4 ( 2 , 0 ) T = ( 0 , 2 ) T . \mathbf g_T
=(1,2)^\mathsf T-
\frac{2}{4}(2,0)^\mathsf T
=(0,2)^\mathsf T. g T = ( 1 , 2 ) T − 4 2 ( 2 , 0 ) T = ( 0 , 2 ) T . 最陡可行上升单位方向是 ( 0 , 1 ) T (0,1)^\mathsf T ( 0 , 1 ) T ,方向导数为 2 2 2 ;相反方向的方向导数为 − 2 -2 − 2 。无约束最陡方向
( 1 , 2 ) T / 5 (1,2)^\mathsf T/\sqrt5 ( 1 , 2 ) T / 5 含有向圆外的法向分量,不能作为保持圆周约束的一阶可行方向。
尺度和约束并未改变导数定义,而是改变“允许比较哪些方向”以及“用什么长度衡量方向”。这也是自然梯度、预条件方法和投影梯度需要额外结构的原因。
交互观察:梯度场与等值线
等值线连接函数值相同的点。沿等值线切向量 v \mathbf v v 做小位移时,一阶函数变化为零,因此
∇ f T v = 0 \nabla f^\mathsf T\mathbf v=0 ∇ f T v = 0 ;梯度与光滑等值线的切向量正交。下面的实验把等值线、梯度箭头和方向导数放在同一坐标系中。
先选择二次函数并拖动观察点,比较梯度箭头与等值线切线;再旋转单位方向,记录方向导数何时达到最大和最小。切换到曲率差异明显的函数后,观察箭头方向与等值线疏密如何变化。实验呈现有限采样下的数值场,最陡方向结论仍由可微性和柯西—施瓦茨不等式保证。
例题三:二次曲面的方向变化
例 3:比较指定方向与最陡方向
令
f ( x , y ) = x 2 + x y + 2 y 2 . f(x,y)=x^2+xy+2y^2. f ( x , y ) = x 2 + x y + 2 y 2 . 则
∇ f ( x , y ) = ( 2 x + y , x + 4 y ) T . \nabla f(x,y)=(2x+y,\;x+4y)^\mathsf T. ∇ f ( x , y ) = ( 2 x + y , x + 4 y ) T . 在点 ( 1 , − 1 ) (1,-1) ( 1 , − 1 ) 处,
∇ f = ( 1 , − 3 ) T \nabla f=(1,-3)^\mathsf T ∇ f = ( 1 , − 3 ) T 。沿单位方向
u = ( 3 , 4 ) T / 5 \mathbf u=(3,4)^\mathsf T/5 u = ( 3 , 4 ) T /5 的方向导数为
D u f = ( 1 , − 3 ) ⋅ ( 3 / 5 , 4 / 5 ) = − 9 5 . D_{\mathbf u}f
=(1,-3)\cdot(3/5,4/5)
=-\frac95. D u f = ( 1 , − 3 ) ⋅ ( 3/5 , 4/5 ) = − 5 9 . 负号表示沿该方向做足够小的正向移动时,函数值一阶下降。最陡下降单位方向则是
( − 1 , 3 ) T / 10 (-1,3)^\mathsf T/\sqrt{10} ( − 1 , 3 ) T / 10 ,其方向导数为
− 10 -\sqrt{10} − 10 。
例题四:最小二乘目标的梯度
例 4:从残差得到正规方程
给定矩阵 A ∈ R m × n A\in\mathbb R^{m\times n} A ∈ R m × n 和观测向量
b ∈ R m \mathbf b\in\mathbb R^m b ∈ R m ,考虑平方损失
L ( x ) = 1 2 ∥ A x − b ∥ 2 . L(\mathbf x)=\frac12\lVert A\mathbf x-\mathbf b\rVert^2. L ( x ) = 2 1 ∥ A x − b ∥ 2 . 令残差 r = A x − b \mathbf r=A\mathbf x-\mathbf b r = A x − b 。增量
h \mathbf h h 引起的损失变化为
L ( x + h ) − L ( x ) = 1 2 ∥ r + A h ∥ 2 − 1 2 ∥ r ∥ 2 = r T A h + 1 2 ∥ A h ∥ 2 . \begin{aligned}
L(\mathbf x+\mathbf h)-L(\mathbf x)
&=\frac12\lVert\mathbf r+A\mathbf h\rVert^2
-\frac12\lVert\mathbf r\rVert^2\\
&=\mathbf r^\mathsf T A\mathbf h
+\frac12\lVert A\mathbf h\rVert^2.
\end{aligned} L ( x + h ) − L ( x ) = 2 1 ∥ r + A h ∥ 2 − 2 1 ∥ r ∥ 2 = r T A h + 2 1 ∥ A h ∥ 2 . 第二项相对于 ∥ h ∥ \lVert\mathbf h\rVert ∥ h ∥ 是高阶小量,线性主部为
( A T r ) T h (A^\mathsf T\mathbf r)^\mathsf T\mathbf h ( A T r ) T h 。因此
∇ L ( x ) = A T ( A x − b ) . \nabla L(\mathbf x)=A^\mathsf T(A\mathbf x-\mathbf b). ∇ L ( x ) = A T ( A x − b ) . 若无约束极小点存在,一阶必要条件给出
A T A x = A T b A^\mathsf T A\mathbf x=A^\mathsf T\mathbf b A T A x = A T b 。这就是正规方程。矩阵
A T A A^\mathsf T A A T A 奇异时,满足方程的解可能不唯一;梯度为零只提供驻点条件,还需结合凸性和线性代数判断全局最优性。
Hessian 与临界点的二阶判别
梯度为零只能说明所有一阶方向变化消失。要区分碗底、山顶与鞍点,需要读取二阶主部。以下结论要求相应偏导数存在并具有足够连续性,不能仅凭一个数值 Hessian 截图推断。
Hessian 矩阵
设标量函数 f : R n → R f:\mathbb R^n\to\mathbb R f : R n → R 在 a \mathbf a a 附近具有二阶偏导数。Hessian 定义为
H f ( a ) = [ ∂ 2 f ∂ x 1 2 ⋯ ∂ 2 f ∂ x 1 ∂ x n ⋮ ⋱ ⋮ ∂ 2 f ∂ x n ∂ x 1 ⋯ ∂ 2 f ∂ x n 2 ] x = a . H_f(\mathbf a)
=
\begin{bmatrix}
\dfrac{\partial^2 f}{\partial x_1^2}&\cdots&\dfrac{\partial^2 f}{\partial x_1\partial x_n}\\
\vdots&\ddots&\vdots\\
\dfrac{\partial^2 f}{\partial x_n\partial x_1}&\cdots&\dfrac{\partial^2 f}{\partial x_n^2}
\end{bmatrix}_{\mathbf x=\mathbf a}. H f ( a ) = ∂ x 1 2 ∂ 2 f ⋮ ∂ x n ∂ x 1 ∂ 2 f ⋯ ⋱ ⋯ ∂ x 1 ∂ x n ∂ 2 f ⋮ ∂ x n 2 ∂ 2 f x = a . 若二阶偏导数在 a \mathbf a a 的某邻域内连续,则 Clairaut 定理给出混合偏导相等,Hessian 对称。没有这些正则性条件时,不应直接把两个混合偏导视为相同。
二阶 Taylor 展开与临界点判别
设 f f f 在 a \mathbf a a 的邻域内为 C 2 C^2 C 2 ,并且
∇ f ( a ) = 0 \nabla f(\mathbf a)=\mathbf0 ∇ f ( a ) = 0 。则
f ( a + h ) = f ( a ) + 1 2 h T H f ( a ) h + o ( ∥ h ∥ 2 ) . f(\mathbf a+\mathbf h)
=f(\mathbf a)
+\frac12\mathbf h^\mathsf T H_f(\mathbf a)\mathbf h
+o(\lVert\mathbf h\rVert^2). f ( a + h ) = f ( a ) + 2 1 h T H f ( a ) h + o (∥ h ∥ 2 ) . 若 H f ( a ) H_f(\mathbf a) H f ( a ) 正定,则 a \mathbf a a 是严格局部极小点;若负定,则是严格局部极大点;若不定,则是鞍点。若 Hessian 仅半正定、半负定或奇异,该判别不确定,必须研究更高阶项或直接比较函数值。
证明
对固定增量 h \mathbf h h ,令
ϕ ( t ) = f ( a + t h ) \phi(t)=f(\mathbf a+t\mathbf h) ϕ ( t ) = f ( a + t h ) 。一元链式法则给出
ϕ ′ ( 0 ) = ∇ f ( a ) T h = 0 , ϕ ′ ′ ( 0 ) = h T H f ( a ) h . \phi'(0)=\nabla f(\mathbf a)^\mathsf T\mathbf h=0,
\qquad
\phi''(0)=\mathbf h^\mathsf T H_f(\mathbf a)\mathbf h. ϕ ′ ( 0 ) = ∇ f ( a ) T h = 0 , ϕ ′′ ( 0 ) = h T H f ( a ) h . 一元二阶 Taylor 公式沿线段应用后得到所列展开。若 Hessian 正定,由对称矩阵在单位球面上的最小值为某个 c > 0 c>0 c > 0 ,有
h T H f ( a ) h ≥ c ∥ h ∥ 2 \mathbf h^\mathsf T H_f(\mathbf a)\mathbf h\ge c\lVert\mathbf h\rVert^2 h T H f ( a ) h ≥ c ∥ h ∥ 2 。当 h \mathbf h h 足够小时,余项绝对值小于
c ∥ h ∥ 2 / 4 c\lVert\mathbf h\rVert^2/4 c ∥ h ∥ 2 /4 ,故非零小增量使函数值严格增加。负定情形对 − f -f − f 使用同一论证。不定时可找到单位向量 u , v \mathbf u,\mathbf v u , v ,使对应二次型一正一负;沿
t u t\mathbf u t u 与 t v t\mathbf v t v 的小位移,二阶项分别控制相反符号,所以该点是鞍点。
在二维中,记
Δ = f x x ( a ) f y y ( a ) − f x y ( a ) 2 . \Delta=f_{xx}(\mathbf a)f_{yy}(\mathbf a)-f_{xy}(\mathbf a)^2. Δ = f xx ( a ) f yy ( a ) − f x y ( a ) 2 .
对称 Hessian 满足:Δ > 0 \Delta>0 Δ > 0 且 f x x > 0 f_{xx}>0 f xx > 0 时正定;
Δ > 0 \Delta>0 Δ > 0 且 f x x < 0 f_{xx}<0 f xx < 0 时负定;Δ < 0 \Delta<0 Δ < 0 时不定;
Δ = 0 \Delta=0 Δ = 0 时判别不确定。这个行列式规则只适用于二维对称 Hessian,不能原样搬到高维。
例 5:求临界点并用 Hessian 判别
考虑
f ( x , y ) = x 2 + x y + y 2 − 4 x − 2 y . f(x,y)=x^2+xy+y^2-4x-2y. f ( x , y ) = x 2 + x y + y 2 − 4 x − 2 y . 一阶条件为
2 x + y − 4 = 0 , x + 2 y − 2 = 0 , 2x+y-4=0,
\qquad
x+2y-2=0, 2 x + y − 4 = 0 , x + 2 y − 2 = 0 , 联立得到唯一临界点 ( 2 , 0 ) (2,0) ( 2 , 0 ) 。Hessian 为常矩阵
H f = [ 2 1 1 2 ] . H_f=
\begin{bmatrix}2&1\\1&2\end{bmatrix}. H f = [ 2 1 1 2 ] . 其特征值为 1 1 1 与 3 3 3 ,均为正;等价地,首个顺序主子式为 2 > 0 2>0 2 > 0 ,行列式为 3 > 0 3>0 3 > 0 。所以 ( 2 , 0 ) (2,0) ( 2 , 0 ) 是严格局部极小点。由于该函数是正定二次函数加线性项,这一局部极小点同时是唯一全局极小点,函数值
f ( 2 , 0 ) = − 4 f(2,0)=-4 f ( 2 , 0 ) = − 4 。直接平移也可核验:
f ( x , y ) + 4 = ( x − 2 ) 2 + ( x − 2 ) y + y 2 = 1 2 [ ( x − 2 + y ) 2 + ( x − 2 ) 2 + y 2 ] ≥ 0. f(x,y)+4
=(x-2)^2+(x-2)y+y^2
=\frac12\left[(x-2+y)^2+(x-2)^2+y^2\right]\ge0. f ( x , y ) + 4 = ( x − 2 ) 2 + ( x − 2 ) y + y 2 = 2 1 [ ( x − 2 + y ) 2 + ( x − 2 ) 2 + y 2 ] ≥ 0.
最小二乘例题还给出
H L = A T A H_L=A^\mathsf T A H L = A T A ,它总是半正定,因为
v T A T A v = ∥ A v ∥ 2 ≥ 0 \mathbf v^\mathsf T A^\mathsf T A\mathbf v=\lVert A\mathbf v\rVert^2\ge0 v T A T A v = ∥ A v ∥ 2 ≥ 0 。只有当 A A A 满列秩时它才正定,从而平方损失有唯一极小点;这与正规方程的唯一性条件一致。
偏导存在但不可微的反例
原点处连续且偏导存在,仍然不可微
定义
f ( x , y ) = { x y x 2 + y 2 , ( x , y ) ≠ ( 0 , 0 ) , 0 , ( x , y ) = ( 0 , 0 ) . f(x,y)=
\begin{cases}
\dfrac{xy}{\sqrt{x^2+y^2}},&(x,y)\ne(0,0),\\
0,&(x,y)=(0,0).
\end{cases} f ( x , y ) = ⎩ ⎨ ⎧ x 2 + y 2 x y , 0 , ( x , y ) = ( 0 , 0 ) , ( x , y ) = ( 0 , 0 ) . 由 ∣ x y ∣ ≤ ( x 2 + y 2 ) / 2 |xy|\le(x^2+y^2)/2 ∣ x y ∣ ≤ ( x 2 + y 2 ) /2 可得
∣ f ( x , y ) ∣ ≤ x 2 + y 2 / 2 |f(x,y)|\le\sqrt{x^2+y^2}/2 ∣ f ( x , y ) ∣ ≤ x 2 + y 2 /2 ,所以函数在原点连续。沿两条坐标轴,函数恒为零,因此两个偏导数都存在且等于零。若函数在原点可微,其线性主部只能是零映射,并应满足
f ( h ) / ∥ h ∥ → 0 f(\mathbf h)/\lVert\mathbf h\rVert\to0 f ( h ) / ∥ h ∥ → 0 。
沿直线 y = x y=x y = x 取点 ( t , t ) (t,t) ( t , t ) ,有
f ( t , t ) = ∣ t ∣ 2 , ∣ f ( t , t ) ∣ t 2 + t 2 = 1 2 . f(t,t)=\frac{|t|}{\sqrt2},
\qquad
\frac{|f(t,t)|}{\sqrt{t^2+t^2}}=\frac12. f ( t , t ) = 2 ∣ t ∣ , t 2 + t 2 ∣ f ( t , t ) ∣ = 2 1 . 比值不趋于零,故函数在原点不可微。这个反例表明,坐标轴上的偏导只检查有限个方向,全微分要求统一控制所有方向。
方向导数全部存在仍不足以可微
每个方向都有导数,但方向映射不是线性的
定义
q ( x , y ) = { x 3 x 2 + y 2 , ( x , y ) ≠ ( 0 , 0 ) , 0 , ( x , y ) = ( 0 , 0 ) . q(x,y)=
\begin{cases}
\dfrac{x^3}{x^2+y^2},&(x,y)\ne(0,0),\\
0,&(x,y)=(0,0).
\end{cases} q ( x , y ) = ⎩ ⎨ ⎧ x 2 + y 2 x 3 , 0 , ( x , y ) = ( 0 , 0 ) , ( x , y ) = ( 0 , 0 ) . 由 ∣ q ( x , y ) ∣ ≤ ∣ x ∣ ≤ x 2 + y 2 |q(x,y)|\le|x|\le\sqrt{x^2+y^2} ∣ q ( x , y ) ∣ ≤ ∣ x ∣ ≤ x 2 + y 2 ,函数在原点连续。对任意非零速度向量
v = ( a , b ) T \mathbf v=(a,b)^\mathsf T v = ( a , b ) T ,
q ( t a , t b ) − q ( 0 , 0 ) t = a 3 a 2 + b 2 , \frac{q(t a,t b)-q(0,0)}t
=\frac{a^3}{a^2+b^2}, t q ( t a , t b ) − q ( 0 , 0 ) = a 2 + b 2 a 3 , 所以沿每个方向的导数都存在。然而该方向映射不是线性的:
D e 1 q = 1 D_{\mathbf e_1}q=1 D e 1 q = 1 、D e 2 q = 0 D_{\mathbf e_2}q=0 D e 2 q = 0 ,线性映射应当给出
D e 1 + e 2 q = 1 D_{\mathbf e_1+\mathbf e_2}q=1 D e 1 + e 2 q = 1 ,实际却为 1 / 2 1/2 1/2 。因此不存在一个全微分同时表示所有方向导数,q q q 在原点不可微。
若坚持使用单位方向,同一矛盾表现为
D u q = u 1 3 D_{\mathbf u}q=u_1^3 D u q = u 1 3 ,而由两个偏导数组成的候选梯度 ( 1 , 0 ) T (1,0)^\mathsf T ( 1 , 0 ) T 会给出
u 1 u_1 u 1 。方向导数“逐条存在”和方向导数“来自同一个线性泛函”是不同命题。
常见误区
常见误区
“偏导数都存在,所以梯度公式一定提供可靠线性近似。”偏导数存在仍可能不可微;需要连续性或其他条件保证统一的余项控制。
常见误区
“梯度是曲面上的切向量。”对标量函数,梯度位于输入空间,并与等值面法向一致;曲面图像 ( x , y , f ( x , y ) ) (x,y,f(x,y)) ( x , y , f ( x , y )) 的切向量属于更高维的图像空间,两者不可直接混同。
常见误区
“负梯度一步就能到最小值。”负梯度只选择局部方向,步长和曲率决定这一更新是否有效。非凸函数还可能有鞍点和多个局部极小值。
代码:解析梯度与有限差分核对
下面用中心差分核对二维函数的解析梯度。有限差分只是数值诊断,会同时受到截断误差和浮点舍入影响。
type Point2 = readonly [number, number];
function finiteDifferenceGradient(
fn: (point: Point2) => number,
point: Point2,
step = 1e-5,
): Point2 {
const [x, y] = point;
const dx = (fn([x + step, y]) - fn([x - step, y])) / (2 * step);
const dy = (fn([x, y + step]) - fn([x, y - step])) / (2 * step);
return [dx, dy];
}
const quadratic = ([x, y]: Point2): number => x * x + x * y + 2 * y * y;
const analyticGradient = ([x, y]: Point2): Point2 => [2 * x + y, x + 4 * y];
不要把差分步长机械设得越小越好;当两次函数值非常接近时,相减会放大浮点误差。
参数实验
取函数 f ( x , y ) = x 2 + 4 y 2 f(x,y)=x^2+4y^2 f ( x , y ) = x 2 + 4 y 2 ,选择单位方向
u = ( cos θ , sin θ ) \mathbf u=(\cos\theta,\sin\theta) u = ( cos θ , sin θ ) ,则在点 ( 1 , 1 ) (1,1) ( 1 , 1 )
D u f = 2 cos θ + 8 sin θ . D_{\mathbf u}f=2\cos\theta+8\sin\theta. D u f = 2 cos θ + 8 sin θ .
让 θ \theta θ 从 0 0 0 变化到 2 π 2\pi 2 π ,记录最大值出现的位置,并与
∇ f = ( 2 , 8 ) T \nabla f=(2,8)^\mathsf T ∇ f = ( 2 , 8 ) T 的方向比较。随后把 y y y 轴重新缩放为
z = 2 y z=2y z = 2 y ,观察坐标与度量改变后“最陡方向”的表达为什么会变化。
练习:一阶、二阶与约束条件
练习 标记完成
概念检查:若 ∇ f ( x ) = 0 \nabla f(\mathbf x)=\mathbf0 ∇ f ( x ) = 0 ,能否断定
x \mathbf x x 是局部最小值?
查看解答 不能。零梯度只说明一阶项消失。该点可能是局部极大值、鞍点,甚至更高阶的平坦点;还需研究邻域、Hessian(二阶偏导数组成的矩阵)或其他高阶信息。
练习 标记完成
计算:对 f ( x , y ) = e x − y f(x,y)=e^{x-y} f ( x , y ) = e x − y ,求点 ( 0 , 0 ) (0,0) ( 0 , 0 ) 处沿
( 1 , 1 ) T (1,1)^\mathsf T ( 1 , 1 ) T 方向的单位方向导数。
查看解答 ∇ f = ( e x − y , − e x − y ) T \nabla f=(e^{x-y},-e^{x-y})^\mathsf T ∇ f = ( e x − y , − e x − y ) T ,在原点为
( 1 , − 1 ) T (1,-1)^\mathsf T ( 1 , − 1 ) T 。单位方向是
( 1 , 1 ) T / 2 (1,1)^\mathsf T/\sqrt2 ( 1 , 1 ) T / 2 ,内积为 0 0 0 。
练习 标记完成
迁移应用:地图上的高度函数使用经纬度作坐标。为什么直接比较两个坐标偏导数未必能得到真实地表上的最陡方向?
查看解答 经度和纬度单位对应的实际距离随位置而变,坐标方向也带有曲面度量。需要把局部地理度量纳入内积,或先转换到合适的局部正交坐标,才能谈真实距离意义下的最陡方向。
练习 标记完成
设
F ( x , y ) = ( x 2 − y , x + y 2 ) T , ϕ ( u , v ) = u v . F(x,y)=(x^2-y,\,x+y^2)^\mathsf T,
\qquad
\phi(u,v)=uv. F ( x , y ) = ( x 2 − y , x + y 2 ) T , ϕ ( u , v ) = uv . 用 Jacobian 链式法则求
∇ ( ϕ ∘ F ) ( 1 , 2 ) \nabla(\phi\circ F)(1,2) ∇ ( ϕ ∘ F ) ( 1 , 2 ) ,再直接展开复算。
查看解答 F ( 1 , 2 ) = ( − 1 , 5 ) T F(1,2)=(-1,5)^\mathsf T F ( 1 , 2 ) = ( − 1 , 5 ) T ,并且
J F ( 1 , 2 ) = [ 2 − 1 1 4 ] , ∇ ϕ ( − 1 , 5 ) = [ 5 − 1 ] . J_F(1,2)=
\begin{bmatrix}2&-1\\1&4\end{bmatrix},
\qquad
\nabla\phi(-1,5)=
\begin{bmatrix}5\\-1\end{bmatrix}. J F ( 1 , 2 ) = [ 2 1 − 1 4 ] , ∇ ϕ ( − 1 , 5 ) = [ 5 − 1 ] . 因此
∇ ( ϕ ∘ F ) ( 1 , 2 ) = J F ( 1 , 2 ) T ∇ ϕ ( − 1 , 5 ) = [ 2 1 − 1 4 ] [ 5 − 1 ] = [ 9 − 9 ] . \nabla(\phi\circ F)(1,2)
=J_F(1,2)^\mathsf T\nabla\phi(-1,5)
=\begin{bmatrix}2&1\\-1&4\end{bmatrix}
\begin{bmatrix}5\\-1\end{bmatrix}
=\begin{bmatrix}9\\-9\end{bmatrix}. ∇ ( ϕ ∘ F ) ( 1 , 2 ) = J F ( 1 , 2 ) T ∇ ϕ ( − 1 , 5 ) = [ 2 − 1 1 4 ] [ 5 − 1 ] = [ 9 − 9 ] . 直接写成
( x 2 − y ) ( x + y 2 ) (x^2-y)(x+y^2) ( x 2 − y ) ( x + y 2 ) ,对 x x x 求导得
2 x ( x + y 2 ) + ( x 2 − y ) 2x(x+y^2)+(x^2-y) 2 x ( x + y 2 ) + ( x 2 − y ) ,在该点为 10 − 1 = 9 10-1=9 10 − 1 = 9 ;对 y y y 求导得
− ( x + y 2 ) + 2 y ( x 2 − y ) -(x+y^2)+2y(x^2-y) − ( x + y 2 ) + 2 y ( x 2 − y ) ,在该点为 − 5 − 4 = − 9 -5-4=-9 − 5 − 4 = − 9 ,与矩阵计算一致。
练习 标记完成
求函数
f ( x , y ) = x 2 + 2 x y + 3 y 2 − 4 x − 8 y f(x,y)=x^2+2xy+3y^2-4x-8y f ( x , y ) = x 2 + 2 x y + 3 y 2 − 4 x − 8 y 的全部临界点,并用 Hessian 判别其类型和函数值。
查看解答 一阶条件为
2 x + 2 y − 4 = 0 , 2 x + 6 y − 8 = 0. 2x+2y-4=0,
\qquad
2x+6y-8=0. 2 x + 2 y − 4 = 0 , 2 x + 6 y − 8 = 0. 化简为 x + y = 2 x+y=2 x + y = 2 、x + 3 y = 4 x+3y=4 x + 3 y = 4 ,所以唯一临界点是
( 1 , 1 ) (1,1) ( 1 , 1 ) 。Hessian 为
H f = [ 2 2 2 6 ] . H_f=\begin{bmatrix}2&2\\2&6\end{bmatrix}. H f = [ 2 2 2 6 ] . 首个顺序主子式为 2 > 0 2>0 2 > 0 ,行列式为 12 − 4 = 8 > 0 12-4=8>0 12 − 4 = 8 > 0 ,故 Hessian 正定,( 1 , 1 ) (1,1) ( 1 , 1 ) 是严格局部极小点。该函数是正定二次函数加线性项,因此也是唯一全局极小点;代入得
f ( 1 , 1 ) = 1 + 2 + 3 − 4 − 8 = − 6 f(1,1)=1+2+3-4-8=-6 f ( 1 , 1 ) = 1 + 2 + 3 − 4 − 8 = − 6 。
练习 标记完成
函数
f ( x , y ) = x 4 + y 4 f(x,y)=x^4+y^4 f ( x , y ) = x 4 + y 4 与
g ( x , y ) = x 4 − y 4 g(x,y)=x^4-y^4 g ( x , y ) = x 4 − y 4 在原点都有零梯度和零 Hessian。分别判断原点的类型,并说明这组例子证明了什么。
查看解答 对 f f f ,任意非零 ( x , y ) (x,y) ( x , y ) 都有
x 4 + y 4 > 0 = f ( 0 , 0 ) x^4+y^4>0=f(0,0) x 4 + y 4 > 0 = f ( 0 , 0 ) ,所以原点是严格局部极小点,事实上也是唯一全局极小点。对 g g g ,沿 y = 0 y=0 y = 0 有
g ( x , 0 ) = x 4 > 0 g(x,0)=x^4>0 g ( x , 0 ) = x 4 > 0 ,沿 x = 0 x=0 x = 0 有
g ( 0 , y ) = − y 4 < 0 g(0,y)=-y^4<0 g ( 0 , y ) = − y 4 < 0 ,所以原点是鞍点。两者在原点的一阶和二阶数据完全相同,却有不同局部类型,说明 Hessian 奇异或二阶判别式为零时结论不确定,必须检查更高阶项或直接比较函数值。
练习 标记完成
在单位圆约束
c ( x , y ) = x 2 + y 2 − 1 = 0 c(x,y)=x^2+y^2-1=0 c ( x , y ) = x 2 + y 2 − 1 = 0 上,求目标
f ( x , y ) = x f(x,y)=x f ( x , y ) = x 在点
a = ( 3 / 5 , 4 / 5 ) \mathbf a=(3/5,4/5) a = ( 3/5 , 4/5 ) 的最陡可行上升单位方向及对应方向导数。
查看解答 目标梯度为 g = ( 1 , 0 ) T \mathbf g=(1,0)^\mathsf T g = ( 1 , 0 ) T ,约束法向为
n = ∇ c ( a ) = ( 6 / 5 , 8 / 5 ) T \mathbf n=\nabla c(\mathbf a)=(6/5,8/5)^\mathsf T n = ∇ c ( a ) = ( 6/5 , 8/5 ) T 。有
g T n = 6 / 5 \mathbf g^\mathsf T\mathbf n=6/5 g T n = 6/5 、
n T n = 4 \mathbf n^\mathsf T\mathbf n=4 n T n = 4 ,故切向投影为
g T = ( 1 , 0 ) T − 3 10 ( 6 / 5 , 8 / 5 ) T = ( 16 / 25 , − 12 / 25 ) T . \mathbf g_T
=(1,0)^\mathsf T-\frac{3}{10}(6/5,8/5)^\mathsf T
=(16/25,-12/25)^\mathsf T. g T = ( 1 , 0 ) T − 10 3 ( 6/5 , 8/5 ) T = ( 16/25 , − 12/25 ) T . 其范数为 4 / 5 4/5 4/5 ,归一化后得到
u = g T ∥ g T ∥ = ( 4 / 5 , − 3 / 5 ) T . \mathbf u=\frac{\mathbf g_T}{\lVert\mathbf g_T\rVert}
=(4/5,-3/5)^\mathsf T. u = ∥ g T ∥ g T = ( 4/5 , − 3/5 ) T . 核验可行性:
n T u = ( 6 / 5 ) ( 4 / 5 ) + ( 8 / 5 ) ( − 3 / 5 ) = 0 \mathbf n^\mathsf T\mathbf u=(6/5)(4/5)+(8/5)(-3/5)=0 n T u = ( 6/5 ) ( 4/5 ) + ( 8/5 ) ( − 3/5 ) = 0 。对应方向导数为
∇ f T u = 4 / 5 \nabla f^\mathsf T\mathbf u=4/5 ∇ f T u = 4/5 ,这也是所有单位切向方向中的最大值;相反方向给出最陡可行下降率 − 4 / 5 -4/5 − 4/5 。
与其他知识的关系
推荐资源
书籍 · 2016 Calculus Volume 3 Gilbert Strang, Edwin Herman
为方向导数、梯度、向量分析和数学物理章节提供可核对的教材背景。
打开官方来源
多变量函数、偏导数、方向导数与梯度章节给出定义、例题和应用,并继续进入多重积分与向量分析。
课程 · 2010 MIT 18.02SC Multivariable Calculus Denis Auroux
把线性代数对象用于几何与多变量问题,并提供例题、习题和解答。
打开官方来源
Partial Derivatives 单元覆盖切平面、链式法则、梯度、方向导数和约束微分,配有讲义与习题解答。
下一步
下一章 多重积分
将从一点附近的线性、二次变化转向二维和三维区域上的总量累积;变量替换中的 Jacobian 行列式会承担局部面积或体积缩放因子的角色,不能与本章表示线性映射的 Jacobian 矩阵混为一谈。
若转向优化与机器学习,梯度下降
把负梯度方向与步长规则组合成迭代算法,
反向传播
则使用 Jacobian
转置和链式法则计算大型复合函数的梯度。带约束问题还可继续到拉格朗日乘子、投影方法与流形切空间。