前言
在一个多月前,针对有同学关于矩阵求导中分子布局、分母布局两者的区别的疑问,我写了如下的这篇答案。
虽然这篇答案给出了几个结论,但是写的没有很严谨,并没有说明矩阵求导的本质与分子布局、分母布局的本质。
所以,在接下来这篇文章中,我将更严谨地说明矩阵求导的本质与分子布局、分母布局的本质。希望对初学的同学、想理解本质的同学提供一些帮助。
注1:看懂本文只需了解本科阶段高等数学的偏导如何求、本科阶段线性代数的矩阵*的定义,无需任何其他知识。*
注2:本文若无特殊说明,则约定向量均为*列向量,*如 xx=[x1,x2,⋯,xn]T
注3:本文仅考虑实数,不考虑复数。**
函数与标量、向量、矩阵
考虑一个函数
function(input)
针对 function 的类型、 input 的类型,我们可以将这个函数 funcion 分为不同的种类。
1、 function 是一个标量
我们称 function 是一个**实值标量函数。**用细体小写字母 f 表示。
1.1 input 是一个标量
我们称 function 的变元是**标量。**用细体小写字母 x 表示。
例1:
f(x)=x+2(e.g.1)
1.2 input 是一个向量
我们称 function 的变元是向量。用粗体小写字母 xx 表示。
**例2:**设 xx=[x1,x2,x3]T
f(xx)=a1x12+a2x22+a3x32+a4x1x2(e.g.2)
1.3 input 是一个矩阵
我们称 function 的变元是矩阵。用粗体大写字母 XX 表示。
**例3:**设 XX3×2=(xij)i=1,j=13,2
f(XX)=a1x112+a2x122+a3x212+a4x222+a5x312+a6x322(e.g.3)
2、function 是一个向量
我们称 function 是一个实向量函数 。用粗体小写字母 ff 表示。
含义: ff 是由若干个 f 组成的一个向量。
同样地,变元分三种:标量、向量、矩阵。这里的符号仍与上面相同。
2.1 标量变元
例4:
ff3×1(x)=⎣⎢⎡f1(x)f2(x)f3(x)⎦⎥⎤=⎣⎢⎡x+12x+13x2+1⎦⎥⎤(e.g.4)
2.2 向量变元
**例5:**设 xx=[x1,x2,x3]T
ff3×1(xx)=⎣⎢⎡f1(xx)f2(xx)f3(xx)⎦⎥⎤=⎣⎢⎡x1+x2+x3x12+2x2+2x3x1x2+x2+x3⎦⎥⎤(e.g.5)
2.3 矩阵变元
**例6:**设 XX3×2=(xij)i=1,j=13,2
ff3×1(XX)=⎣⎢⎡f1(XX)f2(XX)f3(XX)⎦⎥⎤=⎣⎢⎡x11+x12+x21+x22+x31+x32x11+x12+x21+x22+x31+x32+x11x122x11+x12+x21+x22+x31+x32+x11x12⎦⎥⎤(e.g.6)
3、function 是一个矩阵
我们称 function 是一个实矩阵函数 。用粗体大写字母 FF 表示。
含义: FF 是由若干个 f 组成的一个矩阵。
同样地,变元分三种:标量、向量、矩阵。这里的符号仍与上面相同。
3.1 标量变元
例7:
FF3×2(x)=⎣⎢⎡f11(x)f21(x)f31(x)f12(x)f22(x)f32(x)⎦⎥⎤=⎣⎢⎡x+1x2+1x3+12x+22x2+12x3+1⎦⎥⎤(e.g.7)
3.2 向量变元
**例8:**设 xx=[x1,x2,x3]T
FF3×2(xx)=⎣⎢⎡f11(xx)f21(xx)f31(xx)f12(xx)f22(xx)f32(xx)⎦⎥⎤=⎣⎢⎡2x1+x2+x32x1+2x2+x32x1+x2+2x32x1+2x2+x3x1+2x2+x3x1+2x2+2x3⎦⎥⎤(e.g.8)
3.3 矩阵变元
**例9:**设 XX3×2=(xij)i=1,j=13,2
FF3×2(XX)=⎣⎢⎡f11(XX)f21(XX)f31(XX)f12(XX)f22(XX)f32(XX)⎦⎥⎤=⎣⎢⎡x11+x12+x21+x22+x31+x323x11+x12+x21+x22+x31+x325x11+x12+x21+x22+x31+x322x11+x12+x21+x22+x31+x324x11+x12+x21+x22+x31+x326x11+x12+x21+x22+x31+x32⎦⎥⎤(e.g.9)
4、总结

函数与标量、向量、矩阵
矩阵求导的本质
我们在高等数学中学过,对于一个多元函数
例10:
f(x1,x2,x3)=x12+x1x2+x2x3(e.g.10)
我们可以将 f 对 x1,x2,x3 的偏导分别求出来**,即:**
⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧∂x1∂f∂x2∂f∂x3∂f=2x1+x2=x1+x3=x2
矩阵求导也是一样的,本质就是 function 中的每个 f 分别对变元中的每个元素逐个求偏导,只不过写成了向量、矩阵形式而已。
对于 (e.g.10) ,我们把得出的3个结果写成列向量形式:
∂xx3×1∂f(xx)=⎣⎢⎢⎡∂x1∂f∂x2∂f∂x3∂f⎦⎥⎥⎤=⎣⎢⎡2x1+x2x1+x3x2⎦⎥⎤(1)
一个矩阵求导以列向量形式展开的雏形就出现了。
当然我们也可以以行向量形式展开:
∂xx3×1T∂f(xx)=[∂x1∂f,∂x2∂f,∂x3∂f]=[2x1+x2,x1+x3,x2](2)
所以,如果 function 中有 m 个 f ,变元中有 n 个元素,那么,每个 f 对变元中的每个元素逐个求偏导后,我们就会产生 m×n 个结果。
这就是矩阵求导的本质。
至于这 m×n 个结果的布局,是写成行向量,还是写成列向量,还是写成矩阵,就是我们接下来要讨论的事情。
矩阵求导结果的布局
不严谨地说,从直观上看:
分子布局,就是分子是列向量形式,分母是行向量形式,如 (2) 式。如果这里的 function 是实向量函数 ff2×1 的话,结果就是 2×3 的矩阵了:
∂xx3×1T∂ff2×1(xx)=[∂x1∂f1∂x1∂f2∂x2∂f1∂x2∂f2∂x3∂f1∂x3∂f2]2×3(3)
分母布局,就是分母是列向量形式,分子是行向量形式,如 (1) 式。如果这里的 function 是实向量函数 ff2×1 的话,结果就是 3×2 的矩阵了:
∂xx3×1∂ff2×1T(xx)=⎣⎢⎢⎡∂x1∂f1∂x2∂f1∂x3∂f1∂x1∂f2∂x2∂f2∂x3∂f2⎦⎥⎥⎤3×2(4)
直观上理解了之后,我们针对不同类型的 function ,不同类型的变元,给出严谨的布局说明。(这里不讨论标量变元的实值标量函数 f(x) ,因为结果就是一个元素嘛~)
1、向量变元的实值标量函数 f(xx),xx=[x1,x2,⋯,xn]T
1.1 行向量偏导形式(又称行偏导向量形式)
Dxxf(xx)=∂xxT∂f(xx)=[∂x1∂f,∂x2∂f,⋯,∂xn∂f](5)
1.2 梯度向量形式(又称列向量偏导形式、列偏导向量形式)
∇xxf(xx)=∂xx∂f(xx)=[∂x1∂f,∂x2∂f,⋯,∂xn∂f]T(6)
这两种形式互为转置。
2、矩阵变元的实值标量函数 f(XX),XXm×n=(xij)i=1,j=1m,n
先介绍一个符号 vec(XX) ,作用是将矩阵 XX 按列堆栈来向量化。
解释一下,vec(XX) 就是把矩阵 XX 的第 1 列,第 2 列,直到第 n 列取出来,然后按顺序组成一个列向量,即:
vec(XX)=[x11,x21,⋯,xm1,x12,x22,⋯,xm2,⋯,x1n,x2n,⋯,xmn]T(7)
2.1 行向量偏导形式(又称行偏导向量形式)
即先把矩阵变元 XX按vec 向量化,转换成向量变元,再对该向量变元使用 (5) 式:
DvecXXf(XX)=∂vecT(XX)∂f(XX)=[∂x11∂f,∂x21∂f,⋯,∂xm1∂f,∂x12∂f,∂x22∂f,⋯,∂xm2∂f,⋯,∂x1n∂f,∂x2n∂f,⋯,∂xmn∂f](8)
2.2 Jacobian 矩阵形式
即先把矩阵变元 XX 进行转置,再对转置后的每个位置的元素逐个求偏导,结果布局和转置布局一样。
DXXf(XX)=∂XXm×nT∂f(XX)=⎣⎢⎢⎢⎢⎢⎡∂x11∂f∂x12∂f⋮∂x1n∂f∂x21∂f∂x22∂f⋮∂x2n∂f⋯⋯⋮⋯∂xm1∂f∂xm2∂f⋮∂xmn∂f⎦⎥⎥⎥⎥⎥⎤n×m (9)
2.3 梯度向量形式(又称列向量偏导形式、列偏导向量形式)
即先把矩阵变元 XX按vec 向量化,转换成向量变元,再对该变元使用 (6) 式:
∇vecXXf(XX)=∂vecXX∂f(XX)=[∂x11∂f,∂x21∂f,⋯,∂xm1∂f,∂x12∂f,∂x22∂f,⋯,∂xm2∂f,⋯,∂x1n∂f,∂x2n∂f,⋯,∂xmn∂f]T(10)
2.4 梯度矩阵形式
直接对原矩阵变元 XX 的每个位置的元素逐个求偏导,结果布局和原矩阵布局一样。
∇XXf(XX)=∂XXm×n∂f(XX)=⎣⎢⎢⎢⎢⎢⎡∂x11∂f∂x21∂f⋮∂xm1∂f∂x12∂f∂x22∂f⋮∂xm2∂f⋯⋯⋮⋯∂x1n∂f∂x2n∂f⋮∂xmn∂f⎦⎥⎥⎥⎥⎥⎤m×n (11)
2.5 一些发现
2.5.1 转置
(8) 式与 (10) 式互为转置; (9) 式与 (11) 式互为转置。
2.5.2 相等
当矩阵变元 XX 本身就是一个列向量 xx=[x1,x2,⋯,xn]T 时, (5) 式、 (8) 式、 (9) 式相等; (6) 式、 (10) 式、 (11) 式相等;当然,前三个式子与后三个式子互为转置。
这一发现说明,对于向量变元的实值标量函数 f(xx),xx=[x1,x2,⋯,xn]T,结果布局本质上有两种形式,一种是 Jacobian 矩阵(已经成行向量了)形式,一种是梯度矩阵(已经成列向量了)形式。两种形式互为转置。
3、矩阵变元的实矩阵函数 FF(XX),XXm×n=(xij)i=1,j=1m,n,FFp×q=(fij)i=1,j=1p,q
3.1 Jacobian 矩阵形式
即先把矩阵变元 XX按vec向量化,转换成向量变元:
vec(XX)=[x11,x21,⋯,xm1,x12,x22,⋯,xm2,⋯,x1n,x2n,⋯,xmn]T(7)
再把实矩阵函数 FF按vec向量化,转换成实向量函数:
vec(FF(XX))=[f11(XX),f21(XX),⋯,fp1(XX),f12(XX),f22(XX),⋯,fp2(XX),⋯,f1q(XX),f2q(XX),⋯,fpq(XX)]T(12)
这样,我们就把一个矩阵变元的实矩阵函数 FF(XX) ,转换成了向量变元的实向量函数 ff(xx) 。接着,对照 (3) 式写出结果布局为 pq×mn 的矩阵:
DXXFF(XX)=∂vecmn×1TXX∂vecpq×1(FF(XX))=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡∂x11∂f11∂x11∂f21⋮∂x11∂fp1∂x11∂f12∂x11∂f22⋮∂x11∂fp2⋮∂x11∂f1q∂x11∂f2q⋮∂x11∂fpq∂x21∂f11∂x21∂f21⋮∂x21∂fp1∂x21∂f12∂x21∂f22⋮∂x21∂fp2⋮∂x21∂f1q∂x21∂f2q⋮∂x21∂fpq⋯⋯⋮⋯⋯⋯⋮⋯⋮⋯⋯⋮⋯∂xm1∂f11∂xm1∂f21⋮∂xm1∂fp1∂xm1∂f12∂xm1∂f22⋮∂xm1∂fp2⋮∂xm1∂f1q∂xm1∂f2q⋮∂xm1∂fpq∂x12∂f11∂x12∂f21⋮∂x12∂fp1∂x12∂f12∂x12∂f22⋮∂x12∂fp2⋮∂x12∂f1q∂x12∂f2q⋮∂x12∂fpq∂x22∂f11∂x22∂f21⋮∂x22∂fp1∂x22∂f12∂x22∂f22⋮∂x22∂fp2⋮∂x22∂f1q∂x22∂f2q⋮∂x22∂fpq⋯⋯⋮⋯⋯⋯⋮⋯⋮⋯⋯⋮⋯∂xm2∂f11∂xm2∂f21⋮∂xm2∂fp1∂xm2∂f12∂xm2∂f22⋮∂xm2∂fp2⋮∂xm2∂f1q∂xm2∂f2q⋮∂xm2∂fpq⋯⋯⋮⋯⋯⋯⋮⋯⋮⋯⋯⋮⋯∂x1n∂f11∂x1n∂f21⋮∂x1n∂fp1∂x1n∂f12∂x1n∂f22⋮∂x1n∂fp2⋮∂x1n∂f1q∂x1n∂f2q⋮∂x1n∂fpq∂x2n∂f11∂x2n∂f21⋮∂x2n∂fp1∂x2n∂f12∂x2n∂f22⋮∂x2n∂fp2⋮∂x2n∂f1q∂x2n∂f2q⋮∂x2n∂fpq⋯⋯⋮⋯⋯⋯⋮⋯⋮⋯⋯⋮⋯∂xmn∂f11∂xmn∂f21⋮∂xmn∂fp1∂xmn∂f12∂xmn∂f22⋮∂xmn∂fp2⋮∂xmn∂f1q∂xmn∂f2q⋮∂xmn∂fpq⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤pq×mn (13)
3.2 梯度矩阵形式
即先把矩阵变元 XX按vec向量化,转换成向量变元:
vec(XX)=[x11,x21,⋯,xm1,x12,x22,⋯,xm2,⋯,x1n,x2n,⋯,xmn]T(7)
再把实矩阵函数 FF按vec向量化,转换成实向量函数:
vec(FF(XX))=[f11(XX),f21(XX),⋯,fp1(XX),f12(XX),f22(XX),⋯,fp2(XX),⋯,f1q(XX),f2q(XX),⋯,fpq(XX)]T(12)
这样,我们就把一个矩阵变元的实矩阵函数 FF(XX) ,转换成了向量变元的实向量函数 ff(xx) 。接着,对照 (4) 式写出结果布局为 mn×pq 的矩阵:
∇XXFF(XX)=∂vecmn×1XX∂vecpq×1T(FF(XX))=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡∂x11∂f11∂x21∂f11⋮∂xm1∂f11∂x12∂f11∂x22∂f11⋮∂xm2∂f11⋮∂x1n∂f11∂x2n∂f11⋮∂xmn∂f11∂x11∂f21∂x21∂f21⋮∂xm1∂f21∂x12∂f21∂x22∂f21⋮∂xm2∂f21⋮∂x1n∂f21∂x2n∂f21⋮∂xmn∂f21⋯⋯⋮⋯⋯⋯⋮⋯⋮⋯⋯⋮⋯∂x11∂fp1∂x21∂fp1⋮∂xm1∂fp1∂x12∂fp1∂x22∂fp1⋮∂xm2∂fp1⋮∂x1n∂fp1∂x2n∂fp1⋮∂xmn∂fp1∂x11∂f12∂x21∂f12⋮∂xm1∂f12∂x12∂f12∂x22∂f12⋮∂xm2∂f12⋮∂x1n∂f12∂x2n∂f12⋮∂xmn∂f12∂x11∂f22∂x21∂f22⋮∂xm1∂f22∂x12∂f22∂x22∂f22⋮∂xm2∂f22⋮∂x1n∂f22∂x2n∂f22⋮∂xmn∂f22⋯⋯⋮⋯⋯⋯⋮⋯⋮⋯⋯⋮⋯∂x11∂fp2∂x21∂fp2⋮∂xm1∂fp2∂x12∂fp2∂x22∂fp2⋮∂xm2∂fp2⋮∂x1n∂fp2∂x2n∂fp2⋮∂xmn∂fp2⋯⋯⋮⋯⋯⋯⋮⋯⋮⋯⋯⋮⋯∂x11∂f1q∂x21∂f1q⋮∂xm1∂f1q∂x12∂f1q∂x22∂f1q⋮∂xm2∂f1q⋮∂x1n∂f1q∂x2n∂f1q⋮∂xmn∂f1q∂x11∂f2q∂x21∂f2q⋮∂xm1∂f2q∂x12∂f2q∂x22∂f2q⋮∂xm2∂f2q⋮∂x1n∂f2q∂x2n∂f2q⋮∂xmn∂f2q⋯⋯⋮⋯⋯⋯⋮⋯⋮⋯⋯⋮⋯∂x11∂fpq∂x21∂fpq⋮∂xm1∂fpq∂x12∂fpq∂x22∂fpq⋮∂xm2∂fpq⋮∂x1n∂fpq∂x2n∂fpq⋮∂xmn∂fpq⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤mn×pq (14)
3.3 一些发现
3.3.1 转置
(13) 式与 (14) 式互为转置。
3.3.2 相等1
当实矩阵函数 FF 本身是一个实值标量函数 f 时, (8) 式、(13) 式相等; (10) 式、 (14) 式相等;当然,前两个式子与后两个式子互为转置。
这一发现说明,对于矩阵变元的实值标量函数 f(XX),XXm×n=(xij)i=1,j=1m,n,结果布局本质上有四种形式,第一种是 Jacobian 矩阵(已经成行向量了)形式,第二种是梯度矩阵(已经成列向量了)形式,第三种是 Jacobian 矩阵(就是矩阵)形式,第四种是梯度矩阵(就是矩阵)形式。第一种和第二种形式互为转置,第三种和第四种形式互为转置。
3.3.3 相等2
当矩阵变元 XX 本身就是一个列向量 xx=[x1,x2,⋯,xn]T 时, 同时实矩阵函数 FF 本身是一个实值标量函数 f 时, (5) 式、 (8) 式、 (9) 式、 (13) 式相等; (6) 式、 (10) 式、 (11) 式、 (14) 式相等;当然,前四个式子与后四个式子互为转置。
这一发现仍说明,对于向量变元的实值标量函数 f(xx),xx=[x1,x2,⋯,xn]T,结果布局本质上有两种形式,一种是 Jacobian 矩阵(已经成行向量了)形式,一种是梯度矩阵(已经成列向量了)形式。两种形式互为转置。
4、矩阵变元的实向量函数 ff(XX) 、向量变元的实向量函数 ff(xx) 、向量变元的实矩阵函数 FF(xx)
这三个都可以看做是矩阵变元的实矩阵函数 FF(XX) ,可使用**3、**进行计算(因为向量就是一种特殊的矩阵)。
分子布局、分母布局的本质
看到这里,相信同学们对矩阵求导结果的布局有了很全面的了解了,无非就是分子的转置、向量化,分母的转置、向量化,它们的各种组合而已。
结合上述知识,我们总结:
1、分子布局的本质:分子是标量、列向量、矩阵向量化后的列向量;分母是标量、列向量转置后的行向量、矩阵的转置矩阵、矩阵向量化后的列向量转置后的行向量。包含 (5) 式、 (8) 式、 (9) 式、 (13) 式。
2、分母布局的本质:分子是标量、列向量转置后的行向量、矩阵向量化后的列向量转置后的行向量;分母是标量、列向量、矩阵自己、矩阵向量化后的列向量。包含 (6) 式、 (10) 式、 (11) 式、 (14) 式。
思考一下,其实我们可以再简洁一些:谁转置了,就是另一方的布局。分子转置了,就是分母布局;分母转置了,就是分子布局。
最终,我们列一个表格,总结分子布局、分子布局的本质:

分子布局、分母布局的本质
完
本文到这里就结束了,希望对大家有帮助。如果有时间的话,后面我会再发一篇文章,来进行**若干常见矩阵求导公式的数学推导。**欢迎大家点赞、关注、收藏、转发噢~
矩阵求导系列其他文章:
对称矩阵的求导,以多元正态分布的极大似然估计为例(矩阵求导——补充篇) - Iterator的文章 - 知乎
矩阵求导公式的数学推导(矩阵求导——进阶篇) - Iterator的文章 - 知乎
矩阵求导公式的数学推导(矩阵求导——基础篇) - Iterator的文章 - 知乎
参考
前言
1、看本文之前请务必先看这篇文章:
下文以"本质篇"指代上面这篇文章。
2、本文介绍向量变元的实值标量函数、矩阵变元的实值标量函数中最基础的矩阵求导公式的数学推导。掌握了这些最基础的推导,才能理解之后的那些千变万化的技巧。
3、进阶的技巧(矩阵的迹tr(AA) 与一阶实矩阵微分dXX会在下一篇讲,本篇不涉及。
4、本文使用的符号与本质篇相同。
5、看懂本文需要了解本质篇所提及的知识,以及了解本科阶段线性代数中矩阵乘法、向量内积的知识**,无需任何其他知识。**
**6、**有一个矩阵求导的网站,大家可以验证自己算的结果是否正确。
向量变元的实值标量函数
f(xx),xx=[x1,x2,⋯,xn]T
我们使用梯度向量形式,即 (本质篇_6) 式
∇xxf(xx)=∂xx∂f(xx)=[∂x1∂f,∂x2∂f,⋯,∂xn∂f]T(本质篇6)
1、四个法则
1.1 常数求导:
与一元函数常数求导相同:结果为零向量
∂xx∂c=00n×1(1)
其中, c 为常数。
证明:
∂xx∂c=⎣⎢⎢⎢⎢⎡∂x1∂c∂x2∂c⋮∂xn∂c⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡00⋮0⎦⎥⎥⎥⎥⎤=00n×1(2)
证毕。
1.2 线性法则
与一元函数求导线性法则相同:相加再求导等于求导再相加,常数提外面
∂xx∂[c1f(xx)+c2g(xx)]=c1∂xx∂f(xx)+c2∂xx∂g(xx)(3)
其中, c1,c2 为常数。
证明:
∂xx∂[c1f(xx)+c2g(xx)]=⎣⎢⎢⎢⎢⎢⎡∂x1∂(c1f+c2g)∂x2∂(c1f+c2g)⋮∂xn∂(c1f+c2g)⎦⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎡c1∂x1∂f+c2∂x1∂gc1∂x2∂f+c2∂x2∂g⋮c1∂xn∂f+c2∂xn∂g⎦⎥⎥⎥⎥⎥⎤=c1⎣⎢⎢⎢⎢⎢⎡∂x1∂f∂x2∂f⋮∂xn∂f⎦⎥⎥⎥⎥⎥⎤+c2⎣⎢⎢⎢⎢⎢⎡∂x1∂g∂x2∂g⋮∂xn∂g⎦⎥⎥⎥⎥⎥⎤=c1∂xx∂f(xx)+c2∂xx∂g(xx)(4)
证毕。
1.3 乘积法则[1]
与一元函数求导乘积法则相同:前导后不导 加 前不导后导
∂xx∂[f(xx)g(xx)]=∂xx∂f(xx)g(xx)+f(xx)∂xx∂g(xx)(5)
证明:
∂xx∂[f(xx)g(xx)]=⎣⎢⎢⎢⎢⎢⎡∂x1∂(fg)∂x2∂(fg)⋮∂xn∂(fg)⎦⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎡∂x1∂fg+f∂x1∂g∂x2∂fg+f∂x2∂g⋮∂xn∂fg+f∂xn∂g⎦⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎡∂x1∂f∂x2∂f⋮∂xn∂f⎦⎥⎥⎥⎥⎥⎤g+f⎣⎢⎢⎢⎢⎢⎡∂x1∂g∂x2∂g⋮∂xn∂g⎦⎥⎥⎥⎥⎥⎤=∂xx∂f(xx)g(xx)+f(xx)∂xx∂g(xx)(6)
证毕。
1.4 商法则[1]
与一元函数求导商法则相同:(上导下不导 减 上不导下导)除以(下的平方):
∂xx∂[g(xx)f(xx)]=g2(xx)1[∂xx∂f(xx)g(xx)−f(xx)∂xx∂g(xx)](7)
其中, g(xx)=0 。
证明:
∂xx∂[g(xx)f(xx)]=⎣⎢⎢⎢⎢⎢⎢⎢⎡∂x1∂(gf)∂x2∂(gf)⋮∂xn∂(gf)⎦⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎡g21(∂x1∂fg−f∂x1∂g)g21(∂x2∂fg−f∂x2∂g)⋮g21(∂xn∂fg−f∂xn∂g)⎦⎥⎥⎥⎥⎥⎤=g21⎝⎜⎜⎜⎜⎜⎛⎣⎢⎢⎢⎢⎢⎡∂x1∂f∂x2∂f⋮∂xn∂f⎦⎥⎥⎥⎥⎥⎤g−f⎣⎢⎢⎢⎢⎢⎡∂x1∂g∂x2∂g⋮∂xn∂g⎦⎥⎥⎥⎥⎥⎤⎠⎟⎟⎟⎟⎟⎞=g2(xx)1[∂xx∂f(xx)g(xx)−f(xx)∂xx∂g(xx)](8)
证毕。
2、几个公式
2.1
∂xx∂(xxTaa)=∂xx∂(aaTxx)=aa(9)
其中, aa 为常数向量, aa=(a1,a2,⋯,an)T 。
证明:
∂xx∂(xxTaa)=∂xx∂(aaTxx)=∂xx∂(a1x1+a2x2+⋯+anxn)=⎣⎢⎢⎢⎢⎢⎡∂x1∂(a1x1+a2x2+⋯+anxn)∂x2∂(a1x1+a2x2+⋯+anxn)⋮∂xn∂(a1x1+a2x2+⋯+anxn)⎦⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡a1a2⋮an⎦⎥⎥⎥⎥⎤=aa(10)
证毕。
2.2
∂xx∂(xxTxx)=2xx(11)
证明:
∂xx∂(xxTxx)=∂xx∂(x12+x22+⋯+xn2)=⎣⎢⎢⎢⎢⎢⎢⎡∂x1∂(x12+x22+⋯+xn2)∂x2∂(x12+x22+⋯+xn2)⋮∂xn∂(x12+x22+⋯+xn2)⎦⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡2x12x2⋮2xn⎦⎥⎥⎥⎥⎤=2⎣⎢⎢⎢⎢⎡x1x2⋮xn⎦⎥⎥⎥⎥⎤=2xx(12)
证毕。
2.3
∂xx∂(xxTAAxx)=AAxx+AATxx(13)
其中, AAn×n是常数矩阵,AAn×n=(aij)i=1,j=1n,n 。
证明:
\frac{\partial( \pmb{x}^T \pmb{A}\pmb{x})}{\partial{\pmb{x}}} = \frac{\partial(a_{11}x_1x_1+a_{12}x_1x_2+\cdots+a_{1n}x_1x_n \ +a_{21}x_2x_1+a_{22}x_2x_2+\cdots+a_{2n}x_2x_n \ + \cdots \ +a_{n1}x_nx_1+a_{n2}x_nx_2+\cdots+a_{nn}x_nx_n)}{\partial{\pmb{x}}} \=\=\=+\=+= \pmb{A}\pmb{x}+\pmb{A}^T \pmb{x} (14)
证毕。
2.4
∂xx∂(aaTxxxxTbb)=aabbTxx+bbaaTxx(15)
其中, aa,bb 为常数向量, aa=(a1,a2,⋯,an)T,bb=(b1,b2,⋯,bn)T 。
证明:
因为 aaTxx=xxTaa,xxTbb=bbTxx ,所以有
∂xx∂(aaTxxxxTbb)=∂xx∂(xxTaabbTxx)(16)
又因为 aabbT是n×n 常数矩阵,由 (13) 式得:
∂xx∂(aaTxxxxTbb)=∂xx∂(xxTaabbTxx)=aabbTxx+bbaaTxx(17)
证毕。
矩阵变元的实值标量函数
f(XX),XXm×n=(xij)i=1,j=1m,n
我们使用梯度矩阵形式,即 (本质篇_11) 式
∇XXf(XX)=∂XXm×n∂f(XX)=⎣⎢⎢⎢⎢⎢⎡∂x11∂f∂x21∂f⋮∂xm1∂f∂x12∂f∂x22∂f⋮∂xm2∂f⋯⋯⋮⋯∂x1n∂f∂x2n∂f⋮∂xmn∂f⎦⎥⎥⎥⎥⎥⎤m×n (本质篇_11)
1、四个法则
1.1 常数求导:
与一元函数常数求导相同:结果为零矩阵
∂XX∂c=00m×n(18)
其中, c 为常数。
证明:
∂XX∂c=⎣⎢⎢⎢⎢⎡∂x11∂c∂x21∂c⋮∂xm1∂c∂x12∂c∂x22∂c⋮∂xm2∂c⋯⋯⋮⋯∂x1n∂c∂x2n∂c⋮∂xmn∂c⎦⎥⎥⎥⎥⎤m×n=⎣⎢⎢⎢⎢⎡00⋮000⋮0⋯⋯⋮⋯00⋮0⎦⎥⎥⎥⎥⎤m×n=00m×n(19)
证毕。
1.2 线性法则
与一元函数求导线性法则相同:相加再求导等于求导再相加,常数提外面
∂XX∂[c1f(XX)+c2g(XX)]=c1∂XX∂f(XX)+c2∂XX∂g(XX)(20)
其中, c1,c2 为常数。
证明:
∂XX∂[c1f(XX)+c2g(XX)]=⎣⎢⎢⎢⎢⎢⎡∂x11∂(c1f+c2g)∂x21∂(c1f+c2g)⋮∂xm1∂(c1f+c2g)∂x12∂(c1f+c2g)∂x22∂(c1f+c2g)⋮∂xm2∂(c1f+c2g)⋯⋯⋮⋯∂x1n∂(c1f+c2g)∂x2n∂(c1f+c2g)⋮∂xmn∂(c1f+c2g)⎦⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎡c1∂x11∂f+c2∂x11∂gc1∂x21∂f+c2∂x21∂g⋮c1∂xm1∂f+c2∂xm1∂gc1∂x12∂f+c2∂x12∂gc1∂x22∂f+c2∂x22∂g⋮c1∂xm2∂f+c2∂xm2∂g⋯⋯⋮⋯c1∂x1n∂f+c2∂x1n∂gc1∂x2n∂f+c2∂x2n∂g⋮c1∂xmn∂f+c2∂xmn∂g⎦⎥⎥⎥⎥⎥⎤=c1⎣⎢⎢⎢⎢⎢⎡∂x11∂f∂x21∂f⋮∂xm1∂f∂x12∂f∂x22∂f⋮∂xm2∂f⋯⋯⋮⋯∂x1n∂f∂x2n∂f⋮∂xmn∂f⎦⎥⎥⎥⎥⎥⎤+c2⎣⎢⎢⎢⎢⎢⎡∂x11∂g∂x21∂g⋮∂xm1∂g∂x12∂g∂x22∂g⋮∂xm2∂g⋯⋯⋮⋯∂x1n∂g∂x2n∂g⋮∂xmn∂g⎦⎥⎥⎥⎥⎥⎤=c1∂XX∂f(XX)+c2∂XX∂g(XX)(21)
证毕。
1.3 乘积法则[1]
与一元函数求导乘积法则相同:前导后不导 加 前不导后导
∂XX∂[f(XX)g(XX)]=∂XX∂f(XX)g(XX)+f(XX)∂XX∂g(XX)(22)
证明:
∂XX∂[f(XX)g(XX)]=⎣⎢⎢⎢⎢⎢⎡∂x11∂(fg)∂x21∂(fg)⋮∂xm1∂(fg)∂x12∂(fg)∂x22∂(fg)⋮∂xm2∂(fg)⋯⋯⋮⋯∂x1n∂(fg)∂x2n∂(fg)⋮∂xmn∂(fg)⎦⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎡∂x11∂fg+f∂x11∂g∂x21∂fg+f∂x21∂g⋮∂xm1∂fg+f∂xm1∂g∂x12∂fg+f∂x12∂g∂x22∂fg+f∂x22∂g⋮∂xm2∂fg+f∂xm2∂g⋯⋯⋮⋯∂x1n∂fg+f∂x1n∂g∂x2n∂fg+f∂x2n∂g⋮∂xmn∂fg+f∂xmn∂g⎦⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎡∂x11∂f∂x21∂f⋮∂xm1∂f∂x12∂f∂x22∂f⋮∂xm2∂f⋯⋯⋮⋯∂x1n∂f∂x2n∂f⋮∂xmn∂f⎦⎥⎥⎥⎥⎥⎤g+f⎣⎢⎢⎢⎢⎢⎡∂x11∂g∂x21∂g⋮∂xm1∂g∂x12∂g∂x22∂g⋮∂xm2∂g⋯⋯⋮⋯∂x1n∂g∂x2n∂g⋮∂xmn∂g⎦⎥⎥⎥⎥⎥⎤=∂XX∂f(XX)g(XX)+f(XX)∂XX∂g(XX)(23)
证毕。
1.4 商法则[1]
与一元函数求导商法则相同:(上导下不导 减 上不导下导)除以(下的平方):
∂XX∂[g(XX)f(XX)]=g2(XX)1[∂XX∂f(XX)g(XX)−f(XX)∂XX∂g(XX)](24)
其中, g(XX)=0 。
证明:
∂XX∂[g(XX)f(XX)]=⎣⎢⎢⎢⎢⎢⎢⎢⎡∂x11∂(gf)∂x21∂(gf)⋮∂xm1∂(gf)∂x12∂(gf)∂x22∂(gf)⋮∂xm2∂(gf)⋯⋯⋮⋯∂x1n∂(gf)∂x2n∂(gf)⋮∂xmn∂(gf)⎦⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎡g21(∂x11∂fg−f∂x11∂g)g21(∂x21∂fg−f∂x21∂g)⋮g21(∂xm1∂fg−f∂xm1∂g)g21(∂x12∂fg−f∂x12∂g)g21(∂x22∂fg−f∂x22∂g)⋮g21(∂xm2∂fg−f∂xm2∂g)⋯⋯⋮⋯g21(∂x1n∂fg−f∂x1n∂g)g21(∂x2n∂fg−f∂x2n∂g)⋮g21(∂xmn∂fg−f∂xmn∂g)⎦⎥⎥⎥⎥⎥⎤=g21⎝⎜⎜⎜⎜⎜⎛⎣⎢⎢⎢⎢⎢⎡∂x11∂f∂x21∂f⋮∂xm1∂f∂x12∂f∂x22∂f⋮∂xm2∂f⋯⋯⋮⋯∂x1n∂f∂x2n∂f⋮∂xmn∂f⎦⎥⎥⎥⎥⎥⎤g−f⎣⎢⎢⎢⎢⎢⎡∂x11∂g∂x21∂g⋮∂xm1∂g∂x12∂g∂x22∂g⋮∂xm2∂g⋯⋯⋮⋯∂x1n∂g∂x2n∂g⋮∂xmn∂g⎦⎥⎥⎥⎥⎥⎤⎠⎟⎟⎟⎟⎟⎞=g2(XX)1[∂XX∂f(XX)g(XX)−f(XX)∂XX∂g(XX)](25)
证毕。
2、几个公式
2.1
∂XX∂(aaTXXbb)=aabbT(26)
其中, aam×1,bbn×1为常数向量,aa=(a1,a2,⋯,am)T,bb=(b1,b2,⋯,bn)T。
证明(右击公式,选择在新标签页中打开图片,公式就可以放大了~):
\frac{\partial( \pmb{a}^T\pmb{X}\pmb{b})}{\partial{\pmb{X}}} = \frac{\partial(a_1b_1x_{11}+a_1b_2x_{12}+\cdots+a_1b_nx_{1n} \ +a_2b_1x_{21}+a_2b_2x_{22}+\cdots+a_2b_nx_{2n}\ +\cdots \ +a_mb_1x_{m1}+a_mb_2x_{m2}+\cdots+a_mb_nx_{mn})}{\partial{\pmb{X}}} =_{m \times n} =_{m \times n} =[b_1,b_2,\cdots,b_n] = \pmb{a}\pmb{b}^T (27)
证毕。
2.2
∂XX∂(aaTXXTbb)=bbaaT(28)
其中, aan×1,bbm×1为常数向量,aa=(a1,a2,⋯,an)T,bb=(b1,b2,⋯,bm)T。
证明:
因为标量的转置等于标量自己,所以有
∂XX∂(aaTXXTbb)=∂XX∂(aaTXXTbb)T=∂XX∂(bbTXXaa)(29)
由 (26) 式得:
∂XX∂(aaTXXTbb)=∂XX∂(bbTXXaa)=bbaaT(30)
证毕。
2.3
∂XX∂(aaTXXXXTbb)=aabbTXX+bbaaTXX(31)
其中, aam×1,bbm×1为常数向量,aa=(a1,a2,⋯,am)T,bb=(b1,b2,⋯,bm)T。
证明(右击公式,选择在新标签页中打开图片,公式就可以放大了~):
\frac{\partial( \pmb{a}^T\pmb{X}\pmb{X}^T\pmb{b})}{\partial{\pmb{X}}} = \frac{\partial( [(a_1b_1)(x_{11}x_{11}+x_{12}x_{12}+\cdots+x_{1n}x_{1n})]+[(a_1b_2)(x_{11}x_{21}+x_{12}x_{22}+\cdots+x_{1n}x_{2n})]+\cdots+[(a_1b_m)(x_{11}x_{m1}+x_{12}x_{m2}+\cdots+x_{1n}x_{mn})] \ +[(a_2b_1)(x_{21}x_{11}+x_{22}x_{12}+\cdots+x_{2n}x_{1n})]+[(a_2b_2)(x_{21}x_{21}+x_{22}x_{22}+\cdots+x_{2n}x_{2n})]+\cdots+[(a_2b_m)(x_{21}x_{m1}+x_{22}x_{m2}+\cdots+x_{2n}x_{mn})] \ +\cdots \ +[(a_mb_1)(x_{m1}x_{11}+x_{m2}x_{12}+\cdots+x_{mn}x_{1n})]+[(a_mb_2)(x_{m1}x_{21}+x_{m2}x_{22}+\cdots+x_{mn}x_{2n})]+\cdots+[(a_mb_m)(x_{m1}x_{m1}+x_{m2}x_{m2}+\cdots+x_{mn}x_{mn})] )}{\partial{\pmb{X}}} \=_{m \times n} \=\=+=+=[b_1, b_2, \cdots, b_m]+[a_1, a_2, \cdots, a_m]= \pmb{a}\pmb{b}^T\pmb{X}+\pmb{b}\pmb{a}^T\pmb{X} (32)
证毕。
2.4
∂XX∂(aaTXXTXXbb)=XXbbaaT+XXaabbT(33)
其中, aan×1,bbn×1为常数向量,aa=(a1,a2,⋯,an)T,bb=(b1,b2,⋯,bn)T。
证明:
我们来看一下 (本质篇_9) 式:
DXXf(XX)=∂XXm×nT∂f(XX)=⎣⎢⎢⎢⎢⎢⎡∂x11∂f∂x12∂f⋮∂x1n∂f∂x21∂f∂x22∂f⋮∂x2n∂f⋯⋯⋮⋯∂xm1∂f∂xm2∂f⋮∂xmn∂f⎦⎥⎥⎥⎥⎥⎤n×m (本质篇_9)
再来看一下 (本质篇_11) 式:
∇XXf(XX)=∂XXm×n∂f(XX)=⎣⎢⎢⎢⎢⎢⎡∂x11∂f∂x21∂f⋮∂xm1∂f∂x12∂f∂x22∂f⋮∂xm2∂f⋯⋯⋮⋯∂x1n∂f∂x2n∂f⋮∂xmn∂f⎦⎥⎥⎥⎥⎥⎤m×n (本质篇_11)
正如本质篇_三._2.5.1 总结的那样,这两个结果互为转置,即:
∂XXm×nT∂f(XX)=(∂XXm×n∂f(XX))T(34)
所以,我们把 (31) 式中的分母的矩阵变元写为转置,就有:
∂XXT∂(aaTXXXXTbb)=(∂XX∂(aaTXXXXTbb))T=(aabbTXX+bbaaTXX)T=XXTbbaaT+XXTaabbT(35)
对于 (33) 式,我们将其写为如下形式:
∂XX∂(aaTXXTXXbb)=∂(XXT)T∂(aaT(XXT)(XXT)Tbb)(36)
然后对 (36) 式使用 (35) 式,得:
∂XX∂(aaTXXTXXbb)=∂(XXT)T∂(aaT(XXT)(XXT)Tbb)=(XXT)TbbaaT+(XXT)TaabbT=XXbbaaT+XXaabbT(37)
证毕。
完
本文到这里就结束了,相信大家也和我一样,会觉的后面那几个求导公式,如果按照定义去推导的话,十分的麻烦,而且容易出错。
所以, 在下一篇文章中,我们将介绍向量变元的实值标量函数、矩阵变元的实值标量函数进阶的矩阵求导的技巧:矩阵的迹 tr(AA) 与一阶实矩阵微分 dXX ,它们可以极大地化简我们的推导过程。
矩阵求导系列其他文章:
对称矩阵的求导,以多元正态分布的极大似然估计为例(矩阵求导——补充篇) - Iterator的文章 - 知乎
矩阵求导公式的数学推导(矩阵求导——进阶篇) - Iterator的文章 - 知乎
矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇) - Iterator的文章 - 知乎
参考
- (#ref_1_0)bcdefgh张贤达《矩阵分析与应用(第二版)》P147
前言
1、看本文之前请务必按照顺序先看这两篇文章:
下文以"本质篇",“基础篇”指代上面这两篇文章。
2、本文介绍向量变元的实值标量函数、矩阵变元的实值标量函数中进阶的矩阵求导的技巧:矩阵的迹 tr(AA) 与一阶实矩阵微分 dXX。(文中的推导过程会使用到矩阵变元的实矩阵函数,但矩阵变元的实矩阵函数的求导本文不会涉及)
**3、**本文章和前两篇文章的区别是什么,分别在什么时候使用:
答:我们知道,在高等数学中,导数的原始定义其实是在求极限,但我们在实际求导的过程中,不会真正去使用定义去求的,而是使用各种我们已知的比如幂函数、指数函数等的求导公式与乘积法则、复合法则等。矩阵求导也是类似的,我们在实际求导过程中,不会真正使用本质篇与基础篇的定义法去求,而是使用本文中的各种法则去求。
4、本文使用的符号与本质篇、基础篇相同。
5、看懂本文需要了解本质篇、基础篇所提及的知识,以及了解本科阶段线性代数中行列式、伴随矩阵、逆矩阵的知识**,以及了解本科阶段高等数学中的微分与全微分的知识,无需任何其他知识。**
6、本文前两节 一. 矩阵的迹 二. 微分与全微分是矩阵求导的前置知识,如果你已经很熟悉了,可以直接跳到 **三. 矩阵的微分。(**不过还是建议看一遍,加深印象)
**7、**有一个矩阵求导的网站,大家可以验证自己算的结果是否正确。
1、定义
n×n 的方阵 AAn×n 的主对角线元素之和就叫矩阵 AA 的迹(trace),记作 tr(AA) ,即:
AAn×n=⎣⎢⎢⎢⎢⎡a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann⎦⎥⎥⎥⎥⎤n×n
AA 的迹为:
tr(AA)=a11+a22+⋯+ann=i=1∑naii(1)
注意:只有方阵才有迹。
2、一些性质(很重要,下文需要用到,建议熟记)
2.1 标量的迹
对于一个标量 x ,可以看成是 1×1 的矩阵,它的迹就是它自己。
x=tr(x)(2)
2.2 线性法则
相加再求迹等于求迹再相加,标量提外面
tr(c1AA+c2BB)=c1tr(AA)+c2tr(BB)(3)
其中, c1,c2 为标量。
证明:
tr(c1AA+c2BB)=tr⎣⎢⎢⎢⎢⎡c1a11+c2b11c1a21+c2b21⋮c1an1+c2bn1c1a12+c2b12c1a22+c2b22⋮c1an2+c2bn2⋯⋯⋱⋯c1a1n+c2b1nc1a2n+c2b2n⋮c1ann+c2bnn⎦⎥⎥⎥⎥⎤=(c1a11+c2b11)+(c1a22+c2b22)+⋯+(c1ann+c2bnn)=c1(a11+a22+⋯+ann)+c2(b11+b22+⋯+bnn)=c1tr(AA)+c2tr(BB)(4)
证毕。
2.3 转置
转置的迹等于原矩阵的迹
tr(AA)=tr(AAT)(5)
证明:
因为转置不会改变主对角线的元素,故成立。
证毕。
2.4 乘积的迹的本质
对于两个阶数都是 m×n的矩阵AAm×n,BBm×n, 其中一个矩阵乘以(左乘右乘都可以)另一个矩阵的转置的迹,本质是 AAm×n,BBm×n 两个矩阵对应位置的元素相乘并相加,可以理解为向量的点积在矩阵上的推广,即:
tr(AABBT)=a11b11+a12b12+⋯+a1nb1n+a21b21+a22b22+⋯+a2nb2n+⋯+am1bm1+am2bm2+⋯+amnbmn(6)
证明:
tr(AABBT)=tr⎝⎜⎜⎜⎜⎛⎣⎢⎢⎢⎢⎡a11a21⋮am1a12a22⋮am2⋯⋯⋮⋯a1na2n⋮amn⎦⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎡b11b12⋮b1nb21b22⋮b2n⋯⋯⋮⋯bm1bm2⋮bmn⎦⎥⎥⎥⎥⎤⎠⎟⎟⎟⎟⎞=tr⎣⎢⎢⎢⎢⎢⎢⎢⎡a11b11+a12b12+⋯+a1nb1n不用管⋮ddots不用管不用管a21b21+a22b22+⋯+a2nb2n⋮⋮不用管⋯⋯⋯不用管不用管am1bm1+am2bm2+⋯+amnbmn⎦⎥⎥⎥⎥⎥⎥⎥⎤m×m=a11b11+a12b12+⋯+a1nb1n+a21b21+a22b22+⋯+a2nb2n+⋯+am1bm1+am2bm2+⋯+amnbmn(7)
证毕。
2.5 交换律
矩阵乘积位置互换,迹不变
tr(AABB)=tr(BBAA)(8)
其中, AAm×n,BBn×m 。
证明:
把 BBn×m看做是(BBT)m×n 的转置。由乘积的迹的本质,即 (6) 式可知,无论乘积怎么交换顺序, AAm×n与(BBT)m×n 对应位置的元素相乘并相加,永远是不变的。
证毕。
2.6 更多矩阵的交换律
tr(AABBCC)=tr(CCAABB)=tr(BBCCAA)(9)
其中, AAm×n,BBn×p,CCp×m 。
证明:
把两个矩阵的乘积看做一个矩阵,和另外的一个矩阵应用交换律即可。
证毕。
2.7 熟练使用
tr(AABBT)=tr(BBTAA)=tr(AATBB)=tr(BBAAT)(10)
其中, AAm×n,BBm×n 。
证明:
第一个和第二个是交换律,第二个和三个是转置,第三个和第四个是交换律。
证毕。
微分与全微分
我们先来复习一下本科阶段所学的高等数学中的微分与全微分。
1、一元函数的微分
1.1 普通函数的微分[2]
设 y=f(x),y 可导,则其微分为:
dy=df(x)=f′(x)dx(11)
1.2 复合函数的微分[3]
设 y=f(u),u=g(x) ,均可导,则 y 的微分为:
dy=df(u)=f′(u)du=f′(u)dg(x)=f′(u)g′(x)dx(12)
乍一看很复杂,其实举个例子就很简单了:
设 y=sin(2x+1),u=2x+1 ,则 y 的微分为:
dy=d(sinu)=cosudu=cos(2x+1)d(2x+1)=cos(2x+1)⋅2dx=2cos(2x+1)dx(13)
2、多元函数的全微分
2.1 普通函数的全微分[4]
设 z=f(x,y) , z 可微,则其全微分为:
dz=∂x∂zdx+∂y∂zdy(14)
2.2 复合函数的全微分
设 z=f(u),u=φ(x,y),z可导,u可微,则其全微分为:
dz=df(u)=f′(u)du=f′(u)(∂x∂udx+∂y∂udy)=f′(u)∂x∂udx+f′(u)∂y∂udy(15)
举个例子:
设 z=sin(2x+y2),u=2x+y2,则z 的全微分为:
dz=d(sinu)=cosudu=cos(2x+y2)d(2x+y2)=cos(2x+y2)(2dx+2ydy)=2cos(2x+y2)dx+2ycos(2x+y2)dy
3、微分/全微分的法则[5]
3.1 常数的微分
dc=0(16_1)
其中,c 为常数。
3.2 线性法则
相加再微分等于微分再相加,常数提外面
d(c1u+c2v)=c1du+c2dv(16_2)
其中, 一元函数 u=u(x),v=v(x) 或多元函数 u=u(x,y),v=v(x,y),c1,c2 为常数。
3.3 乘积法则
前微后不微 + 前不微后微
d(uv)=d(u)v+ud(v)(16_3)
其中, 一元函数 u=u(x),v=v(x) 或多元函数 u=u(x,y),v=v(x,y) 。
3.4 商法则
(上微下不微 减 上不微下微)除以(下的平方)
d(vu)=v21(d(u)v−ud(v))(16_4)
其中, 一元函数 v=v(x)=0,u=u(x) 或多元函数 v=v(x,y)=0,u=u(x,y) 。
矩阵的微分
1、向量变元的实值标量函数[6]
f(xx),xx=[x1,x2,⋯,xn]T
它其实就是多元函数,设其可微,则它的全微分,即 (14) 式:
df(xx)=∂x1∂fdx1+∂x2∂fdx2+⋯+∂xn∂fdxn=(∂x1∂f,∂x2∂f,⋯,∂xn∂f)⎣⎢⎢⎢⎢⎡dx1dx2⋮dxn⎦⎥⎥⎥⎥⎤(17)
结果是标量,由 (2) 式可知, (17) 式可以写成迹的形式,即:
df(xx)=(∂x1∂f,∂x2∂f,⋯,∂xn∂f)⎣⎢⎢⎢⎢⎡dx1dx2⋮dxn⎦⎥⎥⎥⎥⎤=tr((∂x1∂f,∂x2∂f,⋯,∂xn∂f)⎣⎢⎢⎢⎢⎡dx1dx2⋮dxn⎦⎥⎥⎥⎥⎤)(18)
2、矩阵变元的实值标量函数[7]
f(XX),XXm×n=(xij)i=1,j=1m,n
它也是多元函数,设其可微,则它的全微分,仍是 (14) 式:
df(XX)=∂x11∂fdx11+∂x12∂fdx12+⋯+∂x1n∂fdx1n+∂x21∂fdx21+∂x22∂fdx22+⋯+∂x2n∂fdx2n+⋯+∂xm1∂fdxm1+∂xm2∂fdxm2+⋯+∂xmn∂fdxmn(19)
我们从这个结果中发现,它其实就是矩阵 (∂xij∂f)i=1,j=1m,n 与矩阵 (dxij)i=1,j=1m,n **对应位置的元素相乘并相加,**由 (6) 式可知, (19) 式也可以写成迹的形式,即:
df(XX)=∂x11∂fdx11+∂x12∂fdx12+⋯+∂x1n∂fdx1n+∂x21∂fdx21+∂x22∂fdx22+⋯+∂x2n∂fdx2n+⋯+∂xm1∂fdxm1+∂xm2∂fdxm2+⋯+∂xmn∂fdxmn=tr(⎣⎢⎢⎢⎢⎢⎡∂x11∂f∂x12∂f⋮∂x1n∂f∂x21∂f∂x22∂f⋮∂x2n∂f⋯⋯⋮⋯∂xm1∂f∂xm2∂f⋮∂xmn∂f⎦⎥⎥⎥⎥⎥⎤n×m⎣⎢⎢⎢⎢⎡dx11dx21⋮dxm1dx12dx22⋮dxm2⋯⋯⋮⋯dx1ndx2n⋮dxmn⎦⎥⎥⎥⎥⎤m×n)(20)
3、矩阵变元的实矩阵函数[8]
FF(XX),FFp×q=(fij)i=1,j=1p,q,XXm×n=(xij)i=1,j=1m,n
由**本质篇_一._3_3.3 可知,矩阵变元的实矩阵函数,它的每个元素其实就是一个矩阵变元的实值标量函数 fij(XX) 。
我们定义:设 fij(XX) 可微,则矩阵变元的实矩阵函数的矩阵微分,就是对每个位置的元素 fij(XX) 求全微分,排列布局不变,即:
dFFp×q(XX)=⎣⎢⎢⎢⎢⎡df11(XX)df21(XX)⋮dfp1(XX)df12(XX)df22(XX)⋮dfp2(XX)⋯⋯⋮⋯df1q(XX)df2q(XX)⋮dfpq(XX)⎦⎥⎥⎥⎥⎤p×q(21)
3.1 四个法则(很重要,下文需要用到,建议熟记)
a. 常数矩阵的矩阵微分
dAAm×n=00m×n(22_1)
其中,AAm×n 为常数矩阵。
证明:
AA 的每个元素都是常数,由 (16_1) 得,每个元素的微分是 0 。
证毕。
b. 线性法则
相加再微分等于微分再相加,常数提外面
d(c1FF(XX)+c2GG(XX))=c1dFF(XX)+c2dGG(XX)(22_2)
其中,c1,c2 为常数。
证明:
c1FF(XX)+c2GG(XX) 的每个元素都是 c1fij(XX)+c2gij(XX) ,由 (16_2) 式可知,每个元素的全微分是 c1dfij(XX)+c2dgij(XX) 。
证毕。
c. 乘积法则
前微后不微 + 前不微后微
d(FF(XX)GG(XX))=d(FF(XX))GG(XX)+FF(XX)dGG(XX)(22_3_1)
其中, FFp×q(XX),GGq×s(XX) 为矩阵,且 p,q,s 为任意整数。
注意:此时的微分是矩阵,不能交换乘积的左右顺序。
证明:
FF(XX)GG(XX) 的每个元素都是 ∑k=1q[fik(XX)gkj(XX)] ,由 (16_2) 式、 (16_3) 式可知,每个元素的全微分是
d(k=1∑q[fik(XX)gkj(XX)])=k=1∑qd(fik(XX)gkj(XX))=k=1∑q[d(fik(XX))gkj(XX)+fik(XX)dgkj(XX)]=k=1∑q[d(fik(XX))gkj(XX)]+k=1∑q[fik(XX)dgkj(XX)](22_3_1_a)
结果左边的求和式,就是 d(FF(XX))GG(XX) 的每个元素,结果右边的求和式,就是 FF(XX)dGG(XX) 的每个元素。
证毕。
由此,很容易得到更多个乘积的法则:
d(FF(XX)GG(XX)HH(XX))=d(FF(XX))GG(XX)HH(XX)+FF(XX)d(GG(XX))HH(XX)+FF(XX)GG(XX)dHH(XX)(22_3_2)
证明:
d(FF(XX)GG(XX)HH(XX))=d(FF(XX))GG(XX)HH(XX)+FF(XX)d(GG(XX)HH(XX))=d(FF(XX))GG(XX)HH(XX)+FF(XX)[d(GG(XX))HH(XX)+GG(XX)dHH(XX)]=d(FF(XX))GG(XX)HH(XX)+FF(XX)d(GG(XX))HH(XX)+FF(XX)GG(XX)dHH(XX)(22_3_2_a)
证毕。
d. 转置法则
转置的矩阵微分等于矩阵微分的转置
dFFp×qT(XX)=(dFFp×q(XX))T(22_4_1)
其中, FFp×q(XX) 为矩阵。
证明:
dFFp×qT(XX)=d⎣⎢⎢⎢⎢⎡f11(XX)f12(XX)⋮f1q(XX)f21(XX)f22(XX)⋮f2q(XX)⋯⋯⋮⋯fp1(XX)fp2(XX)⋮fpq(XX)⎦⎥⎥⎥⎥⎤q×p=⎣⎢⎢⎢⎢⎡df11(XX)df12(XX)⋮df1q(XX)df21(XX)df22(XX)⋮df2q(XX)⋯⋯⋮⋯dfp1(XX)dfp2(XX)⋮dfpq(XX)⎦⎥⎥⎥⎥⎤q×p=⎣⎢⎢⎢⎢⎡df11(XX)df21(XX)⋮dfp1(XX)df12(XX)df22(XX)⋮dfp2(XX)⋯⋯⋮⋯df1q(XX)df2q(XX)⋮dfpq(XX)⎦⎥⎥⎥⎥⎤p×qT=(dFFp×q(XX))T(22_4_2)
证毕。
3.2 为什么要使用矩阵微分求导
XXm×n 自己就是矩阵变元为 XXm×n 的实矩阵函数,它的每个元素是 x_{ij} ,每个元素的全微分是 dxij 。
因此, XXm×n 的矩阵微分是:
dXXm×n=⎣⎢⎢⎢⎢⎡dx11dx21⋮dxm1dx12dx22⋮dxm2⋯⋯⋮⋯dx1ndx2n⋮dxmn⎦⎥⎥⎥⎥⎤m×n(23_1)
向量 xx=[x1,x2,⋯,xn]T 的矩阵微分是:
dxx=⎣⎢⎢⎢⎢⎡dx1dx2⋮dxn⎦⎥⎥⎥⎥⎤n×1(23_2)
于是,我们刚刚讲到的矩阵微分四个法则,对于 dXXm×n,dxx 也是适用的。
我们现在回到矩阵变元的实值标量函数的全微分,即 (20) 式:
df(XX)=∂x11∂fdx11+∂x12∂fdx12+⋯+∂x1n∂fdx1n+∂x21∂fdx21+∂x22∂fdx22+⋯+∂x2n∂fdx2n+⋯+∂xm1∂fdxm1+∂xm2∂fdxm2+⋯+∂xmn∂fdxmn=tr⎝⎜⎜⎜⎜⎜⎛⎣⎢⎢⎢⎢⎢⎡∂x11∂f∂x12∂f⋮∂x1n∂f∂x21∂f∂x22∂f⋮∂x2n∂f⋯⋯⋮⋯∂xm1∂f∂xm2∂f⋮∂xmn∂f⎦⎥⎥⎥⎥⎥⎤n×m⎣⎢⎢⎢⎢⎡dx11dx21⋮dxm1dx12dx22⋮dxm2⋯⋯⋮⋯dx1ndx2n⋮dxmn⎦⎥⎥⎥⎥⎤m×n⎠⎟⎟⎟⎟⎟⎞(20)
观察 (20) 式的结果,发现在 tr 中,左边的矩阵,其实就是 (本质篇_9) 式:
DXXf(XX)=∂XXm×nT∂f(XX)=⎣⎢⎢⎢⎢⎢⎡∂x11∂f∂x12∂f⋮∂x1n∂f∂x21∂f∂x22∂f⋮∂x2n∂f⋯⋯⋮⋯∂xm1∂f∂xm2∂f⋮∂xmn∂f⎦⎥⎥⎥⎥⎥⎤n×m (本质篇_9)
而右边的矩阵,其实就是 (23_1) 式:
dXXm×n=⎣⎢⎢⎢⎢⎡dx11dx21⋮dxm1dx12dx22⋮dxm2⋯⋯⋮⋯dx1ndx2n⋮dxmn⎦⎥⎥⎥⎥⎤m×n(23_1)
因此,矩阵变元的实值标量函数的**全微分,**即 (20) 式,可以写成:
df(XX)=tr(∂XXT∂f(XX)dXX)(24)
别忘了我们的目标是什么,其实就是要求 ∂XXT∂f(XX) 。所以,只要我们可以把一个矩阵变元的实值标量函数的全微分写成 (24) 式,我们就找到了矩阵求导的结果。(已经有人证明[9],这样的结果是唯一的。即若
df(XX)=tr(AA1dXX)=tr(AA2dXX),则AA1=AA2
对于向量变元的实值标量函数的全微分,即 (18) 式,同样可以写成:
df(xx)=tr(∂xxT∂f(xx)dxx)(25)
而由本质篇_三._2.5_2.5.2 指出的,当矩阵变元 XX 本身就是一个列向量xx 时
∂XXT∂f(XX)=∂xxT∂f(xx)(26)
同时,由 (23_1) 式、 (23_2) 式,当矩阵 XX 本身是列向量 xx 时,也有
dXX=dxx(27)
所以,矩阵变元或向量变元的实值标量函数的矩阵求导的结果,都可以通过 (24) 式得到:
df(XX)=tr(∂XXT∂f(XX)dXX)(24)
那么,我们该如何写成形如 (24) 式的结果呢,别急,让我们先给出 3×2=6 个你应该记住的公式(以后就直接用了)。
3.2.1[8]夹层饼
d(AAXXBB)=AAd(XX)BB(25_1_1)
其中, AAp×m,BBn×q 是常数矩阵。
证明:
由乘积法则 (22_3_2) 式得:
d(AAXXBB)=d(AA)XXBB+AAd(XX)BB+AAXXdBB(25_1_a)
由常数矩阵微分 (22_1) 式得:
dAA=00p×m,dBB=00n×q(25_1_b)
证毕。
XXm×n 可以代入其他任意的矩阵函数:
d(AAFF(XX)BB)=AAd(FF(XX))BB(25_1_2)
3.2.2[10] 行列式
d∣XX∣=∣XX∣tr(XX−1dXX)=tr(∣XX∣XX−1dXX)(25_2_1)
其中, XXn×n 是任意矩阵。
证明:
首先明确,行列式是一个实值标量函数,故可以使用 (24) 式。
我们知道,行列式可以按照一行展开,即一行中每个元素乘以他的代数余子式然后求和[11]。
我们按照元素 xij 所在的第 i 行展开:
∣XX∣=xi1Ai1+xi2Ai2+⋯+xinAin(25_2_a)
因此,行列式对元素 xij 的偏导,即为该元素对应的代数余子式。
∂xij∂∣XX∣=Aij(25_2_b)
因此,行列式对矩阵求导的结果为:
∂XXT∂∣XX∣=⎣⎢⎢⎢⎢⎡A11A12⋮A1nA21A22⋮A2n⋯⋯⋱⋯An1An2⋮Ann⎦⎥⎥⎥⎥⎤(25_2_c)
这个结果其实就是伴随矩阵[12] XX∗ 。
又因为伴随矩阵和逆矩阵的关系[13]:
XX−1=∣XX∣XX∗(25_2_d)
代入 (24) 式得:
d∣XX∣=tr(∂XXT∂∣XX∣dXX)=tr(∣XX∣XX−1dXX)
又因为行列式是标量,由 (3) 式,可以提到迹的外面,得:
d∣XX∣=∣XX∣tr(XX−1dXX)=tr(∣XX∣XX−1dXX)(25_2_1)
证毕。
XXn×n 可以代入其他任意的矩阵函数[10]:
d∣FF(XX)∣=∣FF(XX)∣tr(FF(XX)−1dFF(XX))=tr(∣FF(XX)∣FF(XX)−1dFF(XX))(25_2_2)
3.2.3[10] 逆矩阵
d(XX−1)=−XX−1d(XX)XX−1(25_3_1)
其中, XXn×n 。
证明:
因为 XXXX−1=EE
而常数矩阵微分为 00 ,两边同时取矩阵微分得:
d(XX)XX−1+XXd(XX−1)=00(25_3_1)
等式两边左乘 XX−1 即得到结果。
证毕。
XXn×n 可以代入其他任意的矩阵函数[10]:
d(FF(XX)−1)=−FF(XX)−1d(FF(XX))FF(XX)−1(25_3_2)
3.3 如何使用矩阵微分求导
对于实值标量函数 f(XX),tr(f(XX))=f(XX),df(XX)=tr(df(XX))
所以有
df(XX)=d(trf(XX))=tr(df(XX))(26)
如果实值标量函数本身就是某个矩阵函数 FFp×p(XX) 的迹,如 trFF(XX) ,则由全微分的线性法则 (16_2) 式,得:
d(trFFp×p(XX))=d(i=1∑pfii(XX))=i=1∑pd(fii(XX))=tr(dFp×p(XX))(27)
我们以 6 个例子来非常非常详细地说明如何使用矩阵微分求导,例子的结论不需要记忆,会推过程才是最重要的,用的时候推一下就好了。
3.3.1 例子1 (基础篇_31) 式
∂XX∂(aaTXXXXTbb)=aabbTXX+bbaaTXX(28)
证明:
**第一步:**写成 (26) 式的形式
d(aaTXXXXTbb)=tr(d(aaTXXXXTbb))(29)
**第二步:**使用矩阵微分法则 (22_1) 式~ (22_4_1) 式,迹的若干性质 (2) 式~ (10) 式,六个基础公式 (25_1_1) 式~ (25_3_2) 式,将 (29) 式化简成形如 (24) 式的形式
由 (25_1_2) 式得:
d(aaTXXXXTbb)=tr(d(aaTXXXXTbb))=tr(aaTd(XXXXT)bb)(30)
由 (22_3_1) 式得:
d(aaTXXXXTbb)=tr(aaTd(XXXXT)bb)=tr[aaT(d(XX)XXT+XXdXXT)bb](31)
由 (3) 式得:
d(aaTXXXXTbb)=tr[aaT(d(XX)XXT+XXdXXT)bb]=tr(aaTd(XX)XXTbb)+tr(aaTXXd(XXT)bb)(32)
由 (22_4_1) 式得:
d(aaTXXXXTbb)=tr(aaTd(XX)XXTbb)+tr(aaTXXd(XXT)bb)=tr(aaTd(XX)XXTbb)+tr(aaTXX(dXX)Tbb)(33)
由 (9) 式, (10) 式得:
d(aaTXXXXTbb)=tr(aaTd(XX)XXTbb)+tr(aaTXX(dXX)Tbb)=tr(XXTbbaaTdXX)+tr(bbaaTXX(dXX)T)=tr(XXTbbaaTdXX)+tr((bbaaTXX)TdXX)=tr(XXTbbaaTdXX)+tr(XXTaabbTdXX)(34)
由 (3) 式得:
d(aaTXXXXTbb)=tr(XXTbbaaTdXX)+tr(XXTaabbTdXX)=tr((XXTbbaaT+XXTaabbT)dXX)(35)
第三步:得出结果
∂XXT∂(aaTXXXXTbb)=XXTbbaaT+XXTaabbT(36)
∂XX∂(aaTXXXXTbb)=aabbTXX+bbaaTXX(28)
证毕。
3.3.2 例子2[9]
∂XX∂tr(XXTXX)=2XX(37)
**第一步:**写成 (27) 式的形式
d(tr(XXTXX))=tr(d(XXTXX))(38)
**第二步:**使用矩阵微分法则 (22_1) 式~ (22_4_1) 式,迹的若干性质 (2) 式~ (10) 式,六个基础公式 (25_1_1) 式~ (25_3_2) 式,将 (38) 式化简成形如 (24) 式的形式
由 (22_3_1) 式得:
d(tr(XXTXX))=tr(d(XXTXX))=tr(d(XXT)XX+XXTdXX)(39)
由 (3) 式得:
d(tr(XXTXX))=tr(d(XXT)XX+XXTdXX)=tr(d(XXT)XX)+tr(XXTdXX)
由 (22_4_1) 式得:
d(tr(XXTXX))=tr(d(XXT)XX)+tr(XXTdXX)=tr((dXX)TXX)+tr(XXTdXX)
由 (8) 式、 (10) 式得:
d(tr(XXTXX))=tr((dXX)TXX)+tr(XXTdXX)=tr(XX(dXX)T)+tr(XXTdXX)=tr(XXTdXX)+tr(XXTdXX)=2tr(XXTdXX)
由 (3) 式得:
d(tr(XXTXX))=2tr(XXTdXX)=tr(2XXTdXX)
第三步:得出结果
∂XXT∂tr(XXTXX)=2XXT∂XX∂tr(XXTXX)=2XX(40)
3.3.3 例子3[14]
∂XX∂log∣XX∣=(XX−1)T(41)
其中, XXn×n 。
**第一步:**写成 (26) 式的形式
d(log∣XX∣)=tr(d(log∣XX∣))(42)
**第二步:**使用矩阵微分法则 (22_1) 式~ (22_4_1) 式,迹的若干性质 (2) 式~ (10) 式,六个基础公式 (25_1_1) 式~ (25_3_2) 式,将 (42) 式化简成形如 (24) 式的形式
我们发现,这是一个复合函数的全微分, ∣XX∣ 是多元函数, logu 是一元函数,故由 (15) 式中的前两个等号,令 z=log∣XX∣,u=∣XX∣ ,则
d(log∣XX∣)=tr(d(log∣XX∣))=tr(dz)=tr(d(logu))=tr(u1(du))=tr(∣XX∣1d∣XX∣)(43)
由 (25_2_1) 式得:
d(log∣XX∣)=tr(∣XX∣1d∣XX∣)=tr(∣XX∣1∣XX∣tr(XX−1dXX))(44)
标量的迹还是标量,由 (2) 式得:
d(log∣XX∣)=tr(∣XX∣1∣XX∣tr(XX−1dXX))=∣XX∣1∣XX∣tr(XX−1dXX)=tr(XX−1dXX)(45)
第三步:得出结果
∂XXT∂log∣XX∣=XX−1∂XX∂log∣XX∣=(XX−1)T(46)
3.3.4 例子4[14]
∂XX∂∣XX−1∣=−∣XX−1∣(XX−1)T(47)
其中, XXn×n 。
**第一步:**写成 (26) 式的形式,由 (25\_2\_2) 式得:
d∣XX−1∣=∣XX−1∣tr((XX−1)−1d(XX−1))=∣XX−1∣tr(XXd(XX−1))(48)
**第二步:**使用矩阵微分法则 (22_1) 式~ (22_4_1) 式,迹的若干性质 (2) 式~ (10) 式,六个基础公式 (25_1_1) 式~ (25_3_2) 式,将 (48) 式化简成形如 (24) 式的形式
由 (25_3_1) 式得:
d∣XX−1∣=∣XX−1∣tr(XXd(XX−1))=∣XX−1∣tr(−XXXX−1d(XX)XX−1)=∣XX−1∣tr(−d(XX)XX−1)(49)
由 (3) 式得:
d∣XX−1∣=∣XX−1∣tr(−d(XX)XX−1)=−∣XX−1∣tr(d(XX)XX−1)(50)
由 (8) 式得:
d∣XX−1∣=−∣XX−1∣tr(d(XX)XX−1)=−∣XX−1∣tr(XX−1dXX)
由 (3) 式得:
d∣XX−1∣=−∣XX−1∣tr(XX−1dXX)=tr(−∣XX−1∣XX−1d(XX))(51)
第三步:得出结果
∂XXT∂∣XX−1∣=−∣XX−1∣XX−1∂XX∂∣XX−1∣=−∣XX−1∣(XX−1)T(52)
3.3.5 例子5[15]
∂XX∂tr(XX+AA)−1=−((XX+AA)−2)T(53)
其中, AAn×n 为常数矩阵, XXn×n,(XX+AA)−2=(XX+AA)−1(XX+AA)−1 。
**第一步:**写成 (27) 式的形式
d(tr(XX+AA)−1)=tr(d(XX+AA)−1)(54)
**第二步:**使用矩阵微分法则 (22_1) 式~ (22_4_1) 式,迹的若干性质 (2) 式~ (10) 式,六个基础公式 (25_1_1) 式~ (25_3_2) 式,将 (54) 式化简成形如 (24) 式的形式
由 (25_3_2) 式得:
d(tr(XX+AA)−1)=tr(d(XX+AA)−1)=tr(−(XX+AA)−1(d(XX+AA))(XX+AA)−1)(55)
由 (9) 式得:
d(tr(XX+AA)−1)=tr(−(XX+AA)−1(d(XX+AA))(XX+AA)−1)=tr(−(XX+AA)−1(XX+AA)−1d(XX+AA))=tr(−(XX+AA)−2d(XX+AA))(56)
由 (22_2) 式得:
d(tr(XX+AA)−1)=tr(−(XX+AA)−2d(XX+AA))=tr(−(XX+AA)−2(dXX+dAA))(57)
由 (22_1) 式得:
d(tr(XX+AA)−1)=tr(−(XX+AA)−2(dXX+dAA))=tr(−(XX+AA)−2dXX)(58)
第三步:得出结果
∂XXT∂tr(XX+AA)−1=−(XX+AA)−2∂XX∂tr(XX+AA)−1=−((XX+AA)−2)T(59)
3.3.6 例子6[15]
∂XX∂∣XX3∣=∂XX∂∣XX∣3=3∣XX∣3(XX−1)T=3∣XX3∣(XX−1)T(60)
**第一步:**写成 (26) 式的形式
我们知道,对于 n 阶矩阵 AA,BB ,有∣AABB∣=∣AA∣∣BB∣
因此,有
∣XX3∣=∣XXXXXX∣=∣XX∣∣XX∣∣XX∣=∣XX∣3(61)
所以
d∣XX3∣=d(∣XX∣3)=tr(d(∣XX∣3))(62)
**第二步:**使用矩阵微分法则 (22_1) 式~ (22_4_1) 式,迹的若干性质 (2) 式~ (10) 式,六个基础公式 (25_1_1) 式~ (25_3_2) 式,将 (62) 式化简成形如 (24) 式的形式
我们发现,这是一个复合函数的全微分, ∣XX∣ 是多元函数, u3 是一元函数,故由 (15) 式中的前两个等号,令 z=∣XX∣3,u=∣XX∣ ,则
d(tr(∣XX∣3))=tr(d(∣XX∣3))=tr(dz)=tr(d(u3))=tr(3u2du)=tr(3∣XX∣2d∣XX∣)(63)
由 (25_2_1) 式得:
d(tr(∣XX∣3))=tr(3∣XX∣2d∣XX∣)=tr(3∣XX∣2∣XX∣tr(XX−1dXX))=tr(3∣XX∣3tr(XX−1dXX))(64)
标量的迹还是标量,由 (2) 式得:
d(tr(∣XX∣3))=tr(3∣XX∣3tr(XX−1dXX))=3∣XX∣3tr(XX−1dXX)(65)
由 (3) 式得:
d(tr(∣XX∣3))=3∣XX∣3tr(XX−1dXX)=tr(3∣XX∣3XX−1dXX)=tr(3∣XX3∣XX−1dXX)
第三步:得出结果
∂XXT∂∣XX3∣=∂XXT∂∣XX∣3=3∣XX∣3XX−1=3∣XX3∣XX−1∂XX∂∣XX3∣=∂XX∂∣XX∣3=3∣XX∣3(XX−1)T=3∣XX3∣(XX−1)T(66)
完
本系列到这里就结束了,至此,我们遇到的所有的矩阵变元/向量变元的实值标量函数的一阶矩阵求导都可以用本文的方法进行计算。至于高阶求导、矩阵变元的实矩阵函数的求导,我目前还没有遇到,如果将来遇到了,我会考虑再写几篇的。
矩阵求导系列其他文章:
对称矩阵的求导,以多元正态分布的极大似然估计为例(矩阵求导——补充篇) - Iterator的文章 - 知乎
矩阵求导公式的数学推导(矩阵求导——基础篇) - Iterator的文章 - 知乎
矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇) - Iterator的文章 - 知乎
参考
- ^张贤达《矩阵分析与应用(第二版)》P50
- ^《高等数学 同济大学第七版 上册》P111
- ^《高等数学 同济大学第七版 上册》P115
- ^《高等数学 同济大学第七版 下册》P72
- ^《高等数学 同济大学第七版 下册》P114
- ^张贤达《矩阵分析与应用(第二版)》P154
- ^张贤达《矩阵分析与应用(第二版)》P155
- (#ref_8_0)b张贤达《矩阵分析与应用(第二版)》P152
- (#ref_9_0)b张贤达《矩阵分析与应用(第二版)》P156
- (#ref_10_0)bcd张贤达《矩阵分析与应用(第二版)》P153
- ^《工程数学线性代数 同济大学第六版》P17
- ^《工程数学线性代数 同济大学第六版》P38
- ^《工程数学线性代数 同济大学第六版》P40
- (#ref_14_0)b张贤达《矩阵分析与应用(第二版)》P160
- (#ref_15_0)b张贤达《矩阵分析与应用(第二版)》P158