问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

向量和矩阵求导公式总结

创作时间:
作者:
@小白创作中心

向量和矩阵求导公式总结

引用
1
来源
1.
https://www.cnblogs.com/LadissonLai/p/18069504

向量和矩阵求导

先说规律

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

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

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

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

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

1. 标量对标量求导

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

2. 标量对向量求导

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

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

$y=f\left({x}_{1},{x}_{2},{x}_{3}\right)$

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

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

$\frac{\mathrm{\partial }y}{\mathrm{\partial }x}=\left[\frac{\mathrm{\partial }y}{\mathrm{\partial }{x}_{1}},\frac{\mathrm{\partial }y}{\mathrm{\partial }{x}_{2}},\frac{\mathrm{\partial }y}{\mathrm{\partial }{x}_{2}}\right]$

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

常见的标量对向量求导

  1. 向量内积求导

    $令\text{}y=||x|{|}^{2}=<x,x>\text{}={x}_{1}^{2}+{x}_{2}^{2}+{x}_{3}^{2}\phantom{\rule{0ex}{0ex}}则\text{}\frac{\mathrm{\partial }y}{\mathrm{\partial }x}=\left[2{x}_{1},2{x}_{2},2{x}_{3}\right]=2{x}^{T}\phantom{\rule{0ex}{0ex}}$

  2. 向量之和求导

    $令\text{}y=sum\left(x\right)={x}_{1}+{x}_{2}+{x}_{3}\phantom{\rule{0ex}{0ex}}则\text{}\frac{\mathrm{\partial }y}{\mathrm{\partial }x}=\left[1,1,1\right]$

3. 向量对向量求导

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

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

$设\text{}y=\left[\begin{array}{c}{y}_{1}\\ {y}_{2}\end{array}\right]\phantom{\rule{0ex}{0ex}}\phantom{\rule{0ex}{0ex}}设\text{}x=\left[\begin{array}{c}{x}_{1}\\ {x}_{2}\\ {x}_{3}\end{array}\right]$

则向量y对向量x求导为

$\frac{\mathrm{\partial }y}{\mathrm{\partial }x}=\left[\begin{array}{ccc}\frac{\mathrm{\partial }{y}_{1}}{\mathrm{\partial }{x}_{1}}& \frac{\mathrm{\partial }{y}_{1}}{\mathrm{\partial }{x}_{2}}& \frac{\mathrm{\partial }{y}_{1}}{\mathrm{\partial }{x}_{3}}\\ \frac{\mathrm{\partial }{y}_{2}}{\mathrm{\partial }{x}_{1}}& \frac{\mathrm{\partial }{y}_{2}}{\mathrm{\partial }{x}_{2}}& \frac{\mathrm{\partial }{y}_{2}}{\mathrm{\partial }{x}_{3}}\end{array}\right]$

常见向量对向量求导

  1. 列向量对列向量求导

    $令\text{}{y}_{\left(2,1\right)}={A}_{\left(2,3\right)}{x}_{\left(3,1\right)}=\left[\begin{array}{c}{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{array}\right]=\left[\begin{array}{c}{y}_{1}\\ {y}_{2}\end{array}\right]\phantom{\rule{0ex}{0ex}}则\text{}\frac{\mathrm{\partial }y}{\mathrm{\partial }x}=\left[\begin{array}{ccc}\frac{\mathrm{\partial }{y}_{1}}{\mathrm{\partial }{x}_{1}}& \frac{\mathrm{\partial }{y}_{1}}{\mathrm{\partial }{x}_{2}}& \frac{\mathrm{\partial }{y}_{1}}{\mathrm{\partial }{x}_{3}}\\ \frac{\mathrm{\partial }{y}_{2}}{\mathrm{\partial }{x}_{1}}& \frac{\mathrm{\partial }{y}_{2}}{\mathrm{\partial }{x}_{2}}& \frac{\mathrm{\partial }{y}_{2}}{\mathrm{\partial }{x}_{3}}\end{array}\right]=\left[\begin{array}{ccc}{a}_{11}& {a}_{12}& {a}_{13}\\ {a}_{21}& {a}_{22}& {a}_{23}\end{array}\right]=A\phantom{\rule{0ex}{0ex}}总结:令\text{}y=Ax,则\text{}\frac{\mathrm{\partial }y}{\mathrm{\partial }x}=A,其中,x\in {R}^{n},y\in {R}^{m},\frac{\mathrm{\partial }y}{\mathrm{\partial }x}\in {R}^{m}$

  2. 横向量对列向量求导

    $令\text{}y={x}^{T}A,则\text{}\frac{\mathrm{\partial }y}{\mathrm{\partial }x}={A}^{T},其中,x\in {R}^{n},y\in {R}^{m},\frac{\mathrm{\partial }y}{\mathrm{\partial }x}\in {R}^{m,n}$

参考链接

  1. 李沐男神的slides。

  2. 机器学习的数学,雷明。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号