矩阵求导

MIT:矩阵乘法的三种看法

二、为什么需要矩阵求导?

  1. 数据向量化
    优点:简洁

  2. 求导在优化算法中的广泛应用

    损失函数,目标函数进行优化,大部分要求算法可导

损失函数,目标函数等中包括矩阵,自然而然的会出现矩阵求导

三、向量函数

3.1 标量函数:

输入为标量、向量或者矩阵等
输出为标量的函数即为标量函数

  1. \(f(x) = x^2\)

    \(R \rightarrow R\)
    \(x \rightarrow x^2\)

  2. \(f(\vec{x}) = x_1^2+x_2^2\)

    \(R^2 \rightarrow R\)
    \(\begin {bmatrix} x_1\\x_2 \end{bmatrix} \rightarrow x_1^2+x_2^2\)

3.2 向量函数:

输入为标量、向量或者矩阵等
输出为 向量 、矩阵或者张量

  1. \(f(x) = \begin {bmatrix} f_1(x)=x\\[2ex]f_2(x)=x^2 \end{bmatrix}\)

    \(R \rightarrow R^2\)
    $ x \rightarrow \begin {bmatrix} x\x^2 \end{bmatrix}$

  2. \(f(x) = \begin {bmatrix} f_{11}(x)=x & f_{12}(x)=x^2\\[2ex]f_{21}(x)=x^3 & f_{22}(x)=x^4\end{bmatrix}\)

    \(R \rightarrow R^{2 \times 2}\)
    $ x \rightarrow \begin {bmatrix} x & x2\[2ex]x3 & x^4\end{bmatrix}$

  3. \(f(\vec{x}) = \begin {bmatrix} f_{11}(x)=x_1+x_2 & f_{12}(x)=x_1^2+x_2^2\\[2ex]f_{21}(x)=x_1^3+x_2^3 & f_{22}(x)=x_1^4+x_2^4\end{bmatrix}\)

    \(R^2 \rightarrow R^{2 \times 2}\)
    \(\begin {bmatrix} x_1\\x_2 \end{bmatrix} \rightarrow \begin {bmatrix} x_1+x_2 & x_1^2+x_2^2\\[2ex]x_1^3+x_2^3 & x_1^4+x_2^4\end{bmatrix}\)

3.3 总结

$ x \rightarrow \(**<font color='red'>标量、向量</font>**或者矩阵等 \) f(x) \rightarrow \(**<font color='red'>标量、向量</font>**或者矩阵等 \) \large \frac{\mathrm{d} f(x) }{\mathrm{d} x}=? $

重点讨论四种情况:

  1. 标量对标量
  2. 标量对向量
  3. 向量对标量
  4. 向量对向量

四、矩阵求导的本质:

$ \Large \frac{\mathrm{d} A }{\mathrm{d} B}$$, \ A=f(x),\ B=x $

矩阵A对矩阵B求导:

矩阵A中的每一个元素对矩阵B中的每一个元素求导
一种遍历的过程

求导后元素的个数角度:

A B \(\frac{\mathrm{d} A }{\mathrm{d} B}\)
1x1 1X1 1x1

A中1个元素,B中1个元素
求导结果还是只有1个元素

+++

A(向量) B(向量) \(\frac{\mathrm{d} A }{\mathrm{d} B}\)
1xp 1 x n p x n

A中p个元素,B中n个元素
A中的每一个元素对B中的每一个元素求导
排列组合:

求导后会有 p x n 个元素

+++

A(向量) B(向量) \(\frac{\mathrm{d} A }{\mathrm{d} B}\)
\(q \times p\) \(m \times n\) \(q \times p \times m\times n\)

A中\(q \times p\)个元素,B中\(m \times n\)个元素
A中的每一个元素对B中的每一个元素求导
排列组合:

求导后会有 \(q \times p \times m\times n\) 个元素

+++

上一篇:判断数据是数组还是对象的方法


下一篇:从C#到Objective-C的构造函数代码