向量和矩阵求导公式总结

向量和矩阵求导

先说规律

先说结论,从标量、向量、矩阵他们之间可以互相求导,排列组合共有九种(3x3),即标量对标量求导、标量对向量求导、标量对矩阵求导;向量对标量求导、向量对向量求导、向量对矩阵求导;矩阵对标量求导、矩阵对向量求导,矩阵对矩阵求导。这些求导也不是什么高深的理论,也就是多元函数的偏导数的组合而已,只是应用到不同场景有不同意义。

我们需要掌握的是这9种求导后,结果的形状,也就是求导后张量的形状。下面给出一张图,列出了所有情况。

9 kinds of differential

如图所示,横坐标表示自变量,纵坐标表示因变量,他们的排列组合有3x3共9种。

先说规律:求导的分母形状不变,分子的形状编程倒数,最后形状按照分子加分母的形状拼接,将形状为1的部分舍弃。举个例子,矩阵 \(Y_{m,l}\) 对向量\(x_{n,1}\)求导,分母形状不变为\((m,l)\),分子的形状变为倒数即\((1,n)\),然后拼接为\((m,l,1,n)\),舍弃1最终结果为\((m,l,n)\)。此方法叫做分子布局符号可以推广到更高维度,其实也就是一种计算方法,没有那么高深。

常见的求导(深度学习中)

1. 标量对标量求导

这种我们中学就学过的,一元函数求导。这里不在赘述。

2. 标量对向量求导

标量对向量求导,结果为向量。

这是机器学习里面最常见的,我们损失函数一般为标量,损失函数的输入为向量。说白了就是多元函数,

\[y = f(x_1,x_2,x_3) \]

这里的三个自变量组成向量,就成了标量对向量的求导。下面举个具体的例子:

设标量为\(y_{(1,)}\),向量为\(x_{(3,1)}\),根据上面的分子布局符号规则结果形状为\((1,3)\),写成公式为

\[\frac{\partial y}{\partial x} = [\frac{\partial y}{\partial x_1}, \frac{\partial y}{\partial x_2}, \frac{\partial y}{\partial x_2}] \]

这样我们就理解了,所有的向量和矩阵之间的求导,最终都转化为逐个因变量分量与自变量分量的偏导数,然后再按照一定规律组合成多维张量。

常见的标量对向量求导

  1. 向量内积求导

    \[令\space y = || x ||^{2} = <x,x> \space = x_{1}^{2}+x_{2}^{2}+x_{3}^{2} \\ 则 \space \frac{\partial y}{\partial x} = [2x_1,2x_2,2x_3] = 2x^{T} \\ \]

  2. 向量之和求导

    \[令\space y = sum(x)=x_1+x_2+x_3 \\ 则\space \frac{\partial y}{\partial x} = [1,1,1] \]

3. 向量对向量求导

向量对向量求导,结果为矩阵。

一般形式,设自变量为\(y_{(2,1)}\),因变量为\(x_{(3,1)}\),则根据分子布局符号规则,结果形状为\((2,3)\)

\[设\space y = \left[ \begin{matrix} y_1 \\ y_2 \\ \end{matrix} \right] \\ \\ 设\space x = \left[ \begin{matrix} x_1 \\ x_2 \\ x_3 \\ \end{matrix} \right] \]

则向量y对向量x求导为

\[\frac{\partial y}{\partial x} = \left[ \begin{matrix} \frac{\partial y_1}{\partial x_1} & \frac{\partial y_1}{\partial x_2} & \frac{\partial y_1}{\partial x_3} \\ \frac{\partial y_2}{\partial x_1} & \frac{\partial y_2}{\partial x_2} & \frac{\partial y_2}{\partial x_3} \\ \end{matrix} \right] \]

常见向量对向量求导

  1. 列向量对列向量求导

    \[令\space y_{(2,1)} = A_{(2,3)}x_{(3,1)} = \left[ \begin{matrix} a_{11}x_1+a_{12}x_2+a_{13}x_3 \\ a_{21}x_1+a_{22}x_2+a_{23}x_3 \end{matrix} \right] = \left[ \begin{matrix} y_1\\ y_2 \end{matrix} \right] \\ 则\space \frac{\partial y}{\partial x} = \left[ \begin{matrix} \frac{\partial y_1}{\partial x_1} & \frac{\partial y_1}{\partial x_2} &\frac{\partial y_1}{\partial x_3} \\ \frac{\partial y_2}{\partial x_1} & \frac{\partial y_2}{\partial x_2} &\frac{\partial y_2}{\partial x_3} \\ \end{matrix} \right]= \left[ \begin{matrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ \end{matrix} \right] = A \\ 总结: 令\space y = Ax, 则\space \frac{\partial y}{\partial x} = A,其中,x \in R^{n},y \in R^{m},\frac{\partial y}{\partial x} \in R^{m} \]

  2. 横向量对列向量求导

    \[令\space y = x^{T}A, 则\space \frac{\partial y}{\partial x} = A^T,其中,x \in R^{n},y \in R^{m},\frac{\partial y}{\partial x} \in R^{m,n} \]

参考链接

  1. 李沐男神的slides
  2. 机器学习的数学,雷明。
posted @ 2024-03-12 22:21  Ladisson-blog  阅读(2917)  评论(0)    收藏  举报