http://www.cnblogs.com/xuxm2007/p/3332035.html
http://www.iwenchao.com/mathematics/matrix-differential.html
http://en.wikipedia.org/wiki/Matrix_calculus
http://www.atmos.washington.edu/~dennis/MatrixCalculus.pdf
https://ccrma.stanford.edu/~dattorro/matrixcalc.pdf
http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=3274 里面的电子书 不错很全面
矩阵微分(Matrix Differential)也称矩阵求导(Matrix Derivative),在机器学习、图像处理、最优化等领域的公式推导过程中经常用到。本文将对各种形式下的矩阵微分进行详细的推导。
1. 符号说明
接下来的微分计算中,假定 A, B, C是常矩阵与 X无关, Y, Z与 X相关。
d(y)/d(x) 是一个列向量,其中的元素 (i) 为 d(yi)/d(x)
d(y)/d(x) 是一个列向量,其中的元素 (i) 为 d(y)/d(xi)
d(yT)/d(x) 是一个矩阵,其中的元素 (i,j) 为 d(yj)/d(xi)
d(Y)/d(x) 是一个矩阵,其中的元素 (i,j) 为 d(Yi,j)/d(x)
d(y)/d(X) 是一个矩阵,其中的元素 (i,j) 为 d(y)/d(Xi,j)
2. 一次函数的微分(Linear Products)
首先介绍一个重要的性质(类似于函数的求导): d(YZ)/d(x)=Y*d(Z)/d(x)+d(Y)/d(x)*Z,注意到分母中的x是标量(Scalar)。在微分中分母是向量的情况下,个人经验是:若d(行向量)/d(列向量)或者d(列向量)/d(行向量),则也适合这个公式,如下面的前两个公式。
注意,有些书上有这些公式:d(xA)/d(x)=A; d(Ax)/d(x)=AT。考虑到x为列向量,则Ax也为列向量,列向量对列向量的求导按照《矩阵论》中的公式,结果会是一个列向量而不是公式中的AT。这些特殊的情况就让数学家去钻研吧,应用研究很少遇到。
3. 二次函数的微分(Quadratic Products)
下面的讨论主要针对分子为二次的情况,分母还是向量或者矩阵。分母为高阶的情况较少,典型的例子有Hessian矩阵,在文章最后会介绍。
4. 矩阵的迹的微分(Trace)
在矩阵的迹tr()中的矩阵必须为方阵。设有N阶矩阵A,那么矩阵的迹tr(A)就等于A的特征值的总和,也为A矩阵的主对角线元素的总和,tr(AB)=tr(BA)。
5. 雅可比矩阵(Jacobian)
雅可比矩阵也可以看做是向量对向量的求导而得到的,如果y=f(x),则对应的雅可比矩阵J=d(y)/d(xT)。
6. 海森矩阵(Hessian matrix)
如果y=f(x),则d[d(f)/d(x)]/d(x)是海森矩阵。在最优化中海森矩阵有诸多用途,如求最大值,最小值,鞍点等。