机器学习许多算法推导的过程中都用到了矩阵求导的知识,这些知识多且杂,于是在网上找了一些资料研究了一下,现在将自己的总结分享给大家,希望帮助大家更好地理解机器学习的算法。
由于本人水平有限,文章里不正确的地方还望大家指出。
行向量对列向量求导
设 yT=[y1,y2,...,yn] 是 n 维行向量, x=[x1,x2,...,xn]T 是 p 维列向量,则
矩阵对矩阵求导
设 Y=⎡⎣⎢y11...ym1......y1n...ymn⎤⎦⎥=⎡⎣⎢yT1...yTm⎤⎦⎥ 是 m∗n 矩阵, X=⎡⎣⎢x11...xp1......x1q...xpq⎤⎦⎥=[x1,...,xq] 是 p∗q 矩阵,则
设 Y=[adbecf] , X=⎡⎣⎢uvwxyz⎤⎦⎥ ,则有
对于 Y 按行分,对于 X 按列分,依次求导。
求导结果按行分块为 yT1,...,YTm 依次对 X 求导。
求导结果按列分块为 Y 依次对 x1,...,xq 求导。
当矩阵为行向量,列向量,或者是元素时,以上的结论都成立。