在做算法处理时经常需要推导一些公式,而这些公式基本上都是矩阵形式的,对矩阵的求导和普通函数的求导不同,给出个简单的结果吧,查查算法、优化方面的书应该也挺多的
-----------------------------------------------------------------------------------------------------------------------
符号说明
• d/dx(y) 是一个向量,其第(i) 个元素是 dy(i)/dx
• d/dx(y) 是一个向量,其第(i) 个元素是 dy/dx(i)
• d/dx(yT) 是一个矩阵,其第(i,j)个元素是dy(j)/dx(i)
• d/dx(Y) 是一个矩阵,其第(i,j) 个元素是dy(i,j)/dx
• d/dX(y) 是一个矩阵,其第(i,j) 个元素是dy/dx(i,j)
注意 Hermitian 转置不能应用,因为复共轭不可解析,x,y 是向量,X,Y 是矩
阵,x,y 是标量。
在下面的表达中 A, B, C 是不依赖于 X 的矩阵,a,b 是不依赖于x 的向量,
线性积
• d/dx(AYB) =A * d/dx (Y) * B
o d/dx (Ay)=A * d/dx (y)
• d/dx(xTA)=A
o d/dx(xT) =I
o d/dx(xTa)= d/dx (aTx)= a
• d/dX(aTXb)= abT
o d/dX(aTXa)= d/dX (aTXTa)= aaT
• d/dX(aTXTb)= baT
• d/dx(YZ) =Y * d/dx (Z) + d/dx(Y) * Z
二次积
• d/dx(Ax+b)TC(Dx+e)= ATC(Dx+e) + DTCT(Ax+b)
o d/dx (xTCx)= (C+CT)x