矩阵的乘积
矩阵相乘的理解
矩阵是线性空间中的线性变换的一个描述。在一个线性空间中,只要我们选定一组基,那么对于任何一个线性变换,都能够用一个确定的矩阵来加以描述
左乘矩阵是进行行操作,右乘矩阵是进行列操作。
C=A×B中的B的列向量可以看作是以A的列向量为基的子空间坐标。
Hadamard哈达玛积(矩阵点乘)(Hadamard Product)
哈达玛积就是两个矩阵对应位置的元素相乘,布局不变。俗称矩阵点乘,符号是空心圆 ∘,两个矩阵的形状必须一样。
矩阵内积 (Iner Product of Matrices)
符号:⟨ . , . ⟩
目的:度量长度。
定义:列向量a与行向量b的内积是指:组成a的第一个元素与组成b的第一个元素的乘积,依次,m个这样的乘积的加和。例如,
<a,b>=a1b1+a2b2
矩阵A与矩阵B的内积是指:组成A的第一个向量与组成B的第一个向量的内积,依次,m个这样的内积的加和。
<A,B>=i=1∑nj=1∑naij∗bij
克罗内克积(Kronecker Product )
符号:⊗
LaTex: ⊗
定义:克罗内克积是两个任意大小的矩阵间的运算,它是张量积的特殊形式。给定A和B,则A和B的克罗内克积是一个在空间Rmp×nq的分块矩阵:
A⊗B=a11B⋮am1B⋯⋱⋯a1nB⋮amnB
矩阵求导
实值函数相对于实向量的梯度
相对于n×1向量x的梯度算子记作∇x,定义为:
∇x=[∂x1∂,∂x2∂,⋯,∂xn∂]T=∂x∂
因此,n×1实向量x为变元的实标量函数f(x)相对于x的梯度为n×1的列向量,定义为:
∇xf(x)=[∂x1∂f(x),∂x2∂f(x),⋯,∂xn∂f(x)]T=∂x∂f(x)
梯度方向的负方向成为变元x的梯度流(gradient flow),记为:
x˙=−∇xf(x)
从梯度的定义式可以 看出:
- 一个以向量为变元的变量函数的梯度为一向量。
- 梯度的每个分量给出了变量函数在该分量方向上的变化率
梯度向量最重要的性质之一是,它指出了当变元增大时函数ff的最大增大率。相反,梯度的负值(负梯度)指出了当变元增大时函数ff的最大减小率。根据这样一种性质,即可设计出求函数极小值的迭代算法。
类似地,实值函数f(x)相对于1×n行向量xT的梯度为1×n行向量,定义为:
∇xTf(x)=[∂x1∂f(x),∂x2∂f(x),…,∂xn∂f(x)]=∂xT∂f(x)
m维行向量函数f(x)=[f1(x),…,fm(x)],相对于n维实向量x的梯度为n×m矩阵定义为:
∂x∂f(x)=∂x1∂f1(x)∂x2∂f1(x)⋮∂xn∂f1(x)∂x1∂f2(x)∂x2∂f2(x)⋮∂xn∂f2(x)……⋱…∂x1∂fm(x)∂x2∂fm(x)⋮∂xn∂fm(x)=∇xf(x)
若m×1向量函数f(x)=y=[y1,…,ym]T,其中y1,y2,…,ym是向量的标量函数,一阶梯度:
∂xT∂y=∂x1∂y1∂x1∂y2⋮∂x1∂ym∂x2∂y1∂x2∂y2⋮∂x2∂ym⋯⋯⋱⋯∂xn∂y1∂xn∂y2⋮∂xn∂ym
∂xT∂y是一个m×n的矩阵,称为向量函数y=[y1,y2,…,ym]T的 Jacobi 矩阵。
若f(x)=[x1,x2,…,xn],则:
∂x∂xT=I
这个结论非常重要,将帮助我们导出更多有用的结论。
若A与y均和x无关,则:
∂x∂xTAy=∂x∂xTAy=Ay
因为yTAx=⟨ATy,x⟩=⟨x,ATy⟩=xTATy,则:
∂x∂yTAx=ATy
由于:
xTAx=i=1∑nj=1∑nAijxixj
所以梯度∂x∂xTAx的第k个分量为:
[∂x∂xTAx]k=∂xk∂i=1∑nj=1∑nAijxixj=i=1∑nAikxi+j=1∑nAkjxj
即有:
∂x∂xTAx=Ax+ATx
特别的如果A为对称矩阵则有:
∂x∂xTAx=2Ax
归纳 以上三个例子的结果以及其他结果,便得到实值函数f(x)相对于列向量x的一下几个常用的梯度公式。
若f(x)=c为常数,则梯度∂x∂c=0
线性法则:若f(x)和g(x)分别是向量x的实值函数,c1和c2为实常数,则:
∂x∂[c1f(x)+c2g(x)]=c1∂x∂f(x)+c2∂x∂g(x)
乘法法则:若f(x)和g(x)都是向量x的实值函数,则:
∂xf(x)g(x)=g(x)∂x∂f(x)+f(x)∂x∂g(x)
商法则:若g(x)=0,则:
∂x∂f(x)/g(x)=g2(x)1[g(x)∂x∂f(x)−f(x)∂x∂g(x)]
链式法则:若y(x)是x的向量值函数,则:
∂x∂f(y(x))=∂x∂yT(x)∂y∂f(y)
式中∂x∂yT(x)为n×n矩阵。
若n×1向量a与x是无关的常数向量,则:
∂x∂aTx=a∂x∂xTa=a
若n×1向量a与x是无关的常数向量,则:
∂x∂aTy(x)=∂x∂yT(x)a∂x∂yT(x)a=∂x∂yT(x)a
若A和y均与x无关,则:
∂x∂xTAy=Ay∂x∂yTAx=ATy
若A是与x无关,而y(x)与向量x的元素有关,则:
∂x∂[y(x)]TAy(x)=∂x∂[y(x)]T(A+AT)y(x)
若A是一个与向量x无关的矩阵,而y(x)和z(x)是与向量x的元素有关的列向量,则:
∂x[y(x)]TAz(x)=∂x[y(x)]TAz(x)+∂x[z(x)]TATy(x)
令x为n×1向量,a为m×1常数向量,A和B分别为m×n和m×m常数矩阵,且B为对称矩阵,则:
∂x∂(a−Ax)TB(a−Ax)=−2ATB(a−Ax)
实值函数的梯度矩阵
在最优化问题中,需要最优化的对象可能是某个加权矩阵。因此,有必要分析实值函数相对于矩阵变元的梯度。
实值函数f(A)相对于m×n是矩阵A的梯度为m×n矩阵,简称梯度矩阵,定义为:
∂A∂f(A)=∂A11∂f(A)∂A21∂f(A)⋮∂Am1∂f(A)∂A12∂f(A)∂A22∂f(A)⋮∂Am2∂f(A)……⋱…∂A1n∂f(A)∂A2n∂f(A)⋮∂Amn∂f(A)
式中Aij是A的元素。
实值函数相对于矩阵变元的梯度具有以下性质:
若f(A)=c是常数,其中A为m×n矩阵,则梯度∂A∂c=Om×n
线性法则:若f(A)和g(A)分别是矩阵A的实值函数,c1,c2均为实常数,则:
∂A∂[c1f(A)+c2g(A)]=c1∂A∂f(A)+c2∂A∂g(A)
乘积法则:若f(A),g(A)都是矩阵A的实值函数,则:
∂A∂f(A)g(A)=f(A)∂A∂g(A)+g(A)∂A∂f(A)
商法则:若g(A)=0,则:
∂A∂f(A)/g(A)=[g(A)]21[g(A)∂A∂f(A)−f(A)∂A∂g(A)]
链式法则:令A为m×n的矩阵,且y=f(A)和g(y)分别是以矩阵A和标量y为变元的实值函数,则:
∂A∂g(f(A))=dydg(y)∂A∂f(A)
若A∈Rm×n,x∈Rm×1,y∈Rn×1,则:
∂A∂xTAy=xyT
若A∈Rn×n非奇异,x∈Rn×1,y∈Rn×1,则:
∂A∂xTA−1y=−A−TxyTA−T
若A∈Rm×n,x∈Rn×1,y∈Rn×1,则:
∂A∂xTATAy=A(xyT+yxT)
若A∈Rm×n,x,y∈Rm×1,则:
∂A∂xTAATy=(xyT+yxT)A
指数函数的梯度:
∂A∂exp(xTAy)=xyTexp(xTAy)
迹函数的梯度矩阵
有时候,二次型目标函数可以利用矩阵的迹加以重写。因为一标量可以视为1×1的矩阵,所以二次型目标函数的迹直接等同于函数本身,即f(x)=xTAx=tr(xTAx) 利用迹的性质,又可以将目标函数进一步表示为:
f(x)=xTAx=tr(xTAx)=tr(AxxT)
因此,二次型目标函数xTAx等于核矩阵A和向量外积xxT的乘积的迹
tr(AxxT)
对于n×n矩阵A,由于tr(A)=∑i=1nAii,故梯度∂A∂tr(A)的(i,j)元素为:
[∂A∂tr(A)]ij=∂Aij∂k=1∑nAkk={10j=ij=i
所以有∂A∂tr(A)=I
考察目标函数f(A)=tr(AB),其中A和B分别为m×n和mn×m实矩阵。首先,矩阵乘积的元素为[AB]ij=∑l=1nAilBlj,故矩阵乘积的迹tr(AB)=∑p=1m∑l=1nAplBlp,于是,梯度∂A∂tr(AB)是一个m×n矩阵,其元素为:
[∂A∂tr(AB)]ij=∂Aij∂(p=1∑ml=1∑nAplBlp)=Bji
所以有:
∂A∂tr(AB)=∇Atr(AB)=BT
由于tr(BA)=tr(AB)所以:
∂A∂tr(AB)=∂A∂tr(BA)=BT
同理,由于tr(xyT)=tr(yxT)=xTy,所以有:
∂x∂tr(xyT)=∂x∂tr(yxT)=y
Hessian 矩阵
实值函数f(x)相对于m×1实向量x的二阶偏导是一个由m2个二阶偏导组成的矩阵,称为 Hessian 矩阵,定义为:
∂x∂xT∂2f(x)=∂xT∂[∂x∂f(x)]
或者简写为梯度的梯度:
∇x2f(x)=∇x(∇xf(x))
根据定义,Hessian 矩阵的第j列是梯度∂x∂f(x)=∇xf(x)第j个分量的梯度,即:
[∂x∂xT∂2f(x)]i,j=∂xi∂xj∂2f(x)
或者可以写作:
∂x∂xT∂2f(x)=∂x1∂x1∂2f∂x2∂x1∂2f⋮∂xn∂x1∂2f∂x1∂x2∂2f∂x2∂x2∂2f⋮∂xn∂x2∂2f……⋱…∂x1∂xn∂2f∂x2∂xn∂2f⋮∂xn∂xn∂2f
因此,Hessian 矩阵可以通过两个步骤计算得出:
- 求实值函数f(x)关于向量变元x的偏导数,得到实值函数的梯度∂x∂f(x)
- 再求梯度∂x∂f(x)相对于1×n行向量xT的偏导数,得到梯度的梯度即 Hessian 矩阵
根据以上步骤,得到 Hessian 矩阵的下列公式。
对于n×1的常数向量aT,有:
∂x∂xT∂2aTx=On×n
若A是n×n矩阵,则:
∂x∂xT∂2xTAx=A+AT
令x为n×1向量,a为m×1常数向量,A和B分别为m×n和m×m常数矩阵,且B为对称矩阵,则:
∂x∂xT∂2(a−Ax)TB(a−Ax)=2ATBA
利用全微分求导
矩阵的迹 tr(A)与一阶实矩阵微分dX
A=a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann
矩阵的迹:tr(A)=a11+a22+⋅⋅⋅+an=i=1∑naii
只有方阵才有迹
交换律:tr(AB)=tr(BA),Am×n,Bn×m
矩阵变元的实值标量函数的全微分:df(X)=tr(∂XT∂f(X)dX)
矩阵变元或向量变元的实值标量函数的矩阵求导的结果,都可以通过上式求解
使用矩阵微分求导:
对于实值标量函数f(X),tr(f(X))=f(X),df(X)=tr(df(X)),所以有df(X)=tr(df(X))=d(trf(X))
如果实值标量函数本身就是某个矩阵函数Fp×p(X)的迹,如reF(X),则由全微分的线性法则得:
d(trFp×p(X))=d(i=1∑pfii(X))=i=1∑pd(fii(X))=tr(dFp×p(X))
常见的求导
- ∂x∂(xTa)=∂x∂(aTx)=a
- ∂x∂(xTx)=2x
- ∂x∂(xTAx)=Ax+ATx,An×n=(aij)i=1,j=1n,n
- ∂x∂(aTxxTb)=abTx+baTx,a=(a1,a2,...,an)T,b=(b1,b2,...,bn)T
- ∂x∂(aTxb)=abT,am×1,bn×1,xm×n
- ∂x∂(aTxTb)=baT,am×1,bn×1,xm×n
- ∂x∂(aTxxTb)=abTx+baTx,am×1,bm×1,xm×m
- ∂x∂(aTxTxb)=xabT+xbaT,am×1,bm×1,xm×m
常用的结论:
证明:d∣X∣=∣X∣tr(X−1dX)
∣X∣=xi1Ai1+xi2Ai2+...+xinAin
∂xij∂∣X∣=Aij
∂XT∂∣X∣=A11A12⋮A1nA21A22⋮A2n⋯⋯⋱⋯An1An2⋮Ann=X∗=∣X∣X−1
d∣X∣=tr(∂XT∂∣X∣dX)=tr(∣X∣X−1dX)
d(X−1)=−X−1dX(X−1)
令A为在不考虑矩阵变元X是对称矩阵的前提下,得到的 Jacobian 矩阵
A=∂x11∂f∂x12∂f⋮∂x1n∂f∂x21∂f∂x22∂f⋮∂x2n∂f......⋱...∂xn1∂f∂xn2∂f⋮∂xn∂fn×n
对称矩阵变元的实值标量函数的求导公式
∂Xn×n∂f(X)=∂Xn×nT∂f(X)=AT+A−(A∘E)
设x∼Np(μ,∑),∑>0,∑为正定的协方差矩阵,则x的概率密度函数为
f(x)=(2π)2p∣∑∣211e−21(x−μ)T∑−1(x−μ)
对数似然函数:
lnL(μ,∑)=ln(i=1∏nf(xi))=−2pnln(2π)−21nln∑−21i=1∑n[(xi−μ)T∑−1(xi−μ)]
求导:∂μ∂(lnL(μ,∑))=∑−1i=1∑n(xi−μ)
∂∑∂(lnL(μ,∑))=∑−1(i=1∑n[(xi−μ)(xi−μ)T])∑−1−n∑−1−{[21(∑−1(i=1∑n[(xi−μ)(xi−μ)T])∑−1−n∑−1]∘E}
令导数为零,得:
μ=x=n1i=1∑nxi∑=n1i=1∑n[(xi−x)(xi−x)T]
Hermitian 矩阵的特征值和特征向量
在信号处理领域,经常碰到对称矩阵。复对称矩阵又称为Hermitian矩阵。比如对于实观测数据x(t),其自相关矩阵R=E[x(t)xT(t)]是实对称矩阵,而复观测信号的自相关矩阵是Hermitian矩阵。Hermitian在计算过程中有一系列重要特性,可以大大简化计算过程。本文总结Hermitian矩阵特征值和特征向量的一些性质。
重要性质
-
特征值的实数性
Hermitian 矩阵A的特征值一定是实的。
证明:令λ和u分别是Hermitian矩阵A的特征值和与之对应的特征向量,即Au=λu。两边同时左乘特征向量的共轭转置,得二次型标量值函数uTAu=λuTu,对其两边取共轭转置,得到uTAu=λTuTu。注意内积uTu总是实数,则有λ也一定是实数。
-
可逆矩阵的特征对关系
令λ,u是Hermitian矩阵A的特征对。若A可逆,则1/λ,u是逆矩阵A−1的特征对。
证明:因为Au=λu,则对两边左乘A−1,则有u=λA−1u,所以有λ−1u=A−1u
特征向量求解步骤
对于n×n的Hermitian矩阵A,若它所有不同的特征值λ1,λ2,…,λn都通过求解特征方程获得。那么求解其特征向量可以通过以下两个步骤完成:
-
利用高斯消元法求解方程:
(A−λI)x=0
得到与每个已知λ对应的非零解x
-
利用Gram-Schmidt正交化方法将x正交化,得到相互正交,并且具有单位范数的特征向量。
若λk是Hermitian矩阵A的多重特征值,并且其多重度为 mk,那么 rank(A−λkI)=n−mk,因此任何一个Hermitian矩阵都满足可对角化定理的充要条件。因此,有U−1AU=Σ。
重要定理
Hermitian矩阵的所有特征向量线性无关,并且相互正交。特征矩阵U=[u1,…,un]是酉矩阵,满足U−1=UT
证明过程:
-
首先证明不同特征值对应的特征向量是相互正交的
令λ1=λ2是Hermitian矩阵A对应的特征值,且其对应的特征向量分别是u1,u2,则有:
u2TAu1=λ1u2Tu1
u1TAu2=λ2u1Tu2
-
对前一个式子取共轭,则有:
u1TAu2=λ1u1Tu2
因此有:λ1u1Tu2=λ2u1Tu2,由于λ1=λ2,所以 u1和 u2 正交。
更进一步
对于若n×n矩阵A,若λk是Hermitian矩阵A的多重特征值,并且其多重度为 mk,那么 rank(A−λkI)=n−mk,并 且A−λkI是可逆的。于是,方程(A−λkI)u=0的线性无关解。这些线性无关解是正交的。由于特征矩阵U的所有特征向量即线性无关,又相互正交,故U为酉矩阵,满足UUT=I,即UT=U−1
矩阵表示形式
对于Hermitian矩阵有:
-
正交相似形式:
UTAU=diag(λ1,λ2,…,λn)
-
矩阵分解形式(正交相似下的范式):
A=UΣUT
-
求和形式:
A=i=1∑nλiuiuiT
二次型表示
在最优化理论和信号处理中,二次型函数可表示为:
XTAx=i=1∑nλixTui2
逆矩阵表示
A−1的级数展开形式:
A−1=i=1∑nλi−1uiuiT
因此若已知A的特征值分解,可以很容易求出A−1
定矩阵
给定一个Hermitian矩阵(即等于其共轭转置的复矩阵) M ,对于任意非零复列向量 z,都有zHMz都为正,则 M 是正定的。负定矩阵和负半定矩阵的定义类似,非正半定且非负半定的矩阵有时称为不定