矩阵求导——只需要记住这个诀窍
1. 背景:
2. 正文开始
首先,按照博主的分类,所有的情况都可以暴力归结为以下三个问题:
- 矩阵对矩阵求导
- 行向量对列向量的求导
- 元素对元素的求导
当然大家可以有自己的记忆法则和分类,这里我只介绍我觉得好使的方法
2.1 矩阵对矩阵的求导
为什么一上来就讲这么复杂的问题呢?相必大家在学习的时候有这样的体会,尤其是在学习一种模型的时候:总的来说有两种方法,即一般到特殊或特殊到一般,至于具体选择哪一个,就要看这个模型的特性了。例如对于已经学过线性代数的同学,反正国内大部分学校都是先讲矩阵再讲向量,但我们知道向量其实是可以视为 1 × n 1×n 1×n 或者 n × 1 n×1 n×1 的矩阵,它是一种特殊的矩阵。之所以先讲矩阵,是因为矩阵这个数学模型有非常良好的性质,这些性质方便学者们记忆并灵活使用。当学习完矩阵后,向量这个子类完全可以套用矩阵所具有的性质(在一定条件下),所以根据这种思路,我想直接讲矩阵的矩阵的求导
∂ Y ∂ X = [ ∂ y 1 T ∂ x 1 ⋯ ∂ y 1 T ∂ x q ⋮ ⋱ ⋮ ∂ y m T ∂ x 1 ⋯ ∂ y m T ∂ x q ] \frac{\partial {\bm{Y}}}{\partial{\bm{X}}} = \left[ \begin{matrix} \frac{\partial {\bm{y_1^T}}}{\partial{\bm{x_1}}} & \cdots & \frac{\partial {\bm{y_1^T}}}{\partial{\bm{x_q}}} \\ \vdots & \ddots & \vdots \\ \frac{\partial {\bm{y_m^T}}}{\partial{\bm{x_1}}} & \cdots & \frac{\partial {\bm{y_m^T}}}{\partial{\bm{x_q}}} \\ \end{matrix} \right] ∂X∂Y=⎣⎢⎢⎡∂x1∂y1T⋮∂x1∂ymT⋯⋱⋯∂xq∂y1T⋮∂xq∂ymT⎦⎥⎥⎤
故,矩阵对矩阵求导,第一步就是要化成 m × q m×q m×q 的大矩阵,其中第 i i i 行第 j j j 列的元素为 ∂ y i T ∂ x j \frac{\partial {\bm{y_i^T}}}{\partial{\bm{x_j}}} ∂xj∂yiT,可知这是一个行向量对一个列向量进行求导。
2.2 行向量对列向量的求导
2.3 元素对元素的求导
这个没有什么可说的了,就是微积分的知识。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232274.html原文链接:https://javaforall.net
