矩阵及向量常用操作

矩阵求导

矩阵求导的本质

矩阵A对矩阵B求导: 矩阵A中的每一个元素分别对矩阵B中的每个元素进行求导。
A 1 × 1 A_{1\times1} A1×1, B 1 × 1 B_{1\times1} B1×1: d A d B \frac{dA}{dB} dBdA 一个导数
A m × 1 A_{m\times1} Am×1, B 1 × 1 B_{1\times1} B1×1: d A d B \frac{dA}{dB} dBdA m个导数
A m × 1 A_{m\times1} Am×1, B p × 1 B_{p\times1} Bp×1: d A d B \frac{dA}{dB} dBdA m × p {m\times{p}} m×p个导数
A m × n A_{m\times{n}} Am×n, B p × q B_{p\times{q}} Bp×q: d A d B \frac{dA}{dB} dBdA m × n × p × q {m\times{n}\times{p}\times{q}} m×n×p×q个导数
求导的本质只是把标量求导的结果排列起来,至于是按行排列还是按列排列都是可以的。但是如果行向量或者列向量随便写,那么结果就不唯一,乱套了。
为了解决矩阵向量求导的结果不唯一,我们引入求导布局。最基本的求导布局有两个:分子布局(numerator layout)分母布局(denominator layout )

以分母布局进行求导

对于分母布局来说,求导结果的维度以分母为主
∂ f < = = 分 子 ∂ x < = = 分 母 \frac{\partial{f}<==分子}{\partial{x}<==分母} x<==f<==

标量对向量求导

f为标量函数:
f ( x 1 , x 2 … … x p ) f(x_1,x_2……x_p) f(x1,x2xp)
如果x为列向量:
x = [ x 1 x 2 ⋮ x p ] p × 1 x= \left[ \begin{matrix} x_1 \\ x_2 \\ \vdots \\ x_p \end{matrix}\right] _{p\times1} x=x1x2xpp×1
那么定义导数为:
∂ f ∂ x = [ ∂ f ∂ x 1 ∂ f ∂ x 2 ⋮ ∂ f ∂ x p ] p × 1 \frac{\partial{f}}{\partial{x}}= \left[ \begin{matrix} \frac{\partial{f}}{\partial{x_1}} \\ \frac{\partial{f}}{\partial{x_2}}\\ \vdots \\ \frac{\partial{f}}{\partial{x_p}} \end{matrix}\right] _{p\times1} xf=x1fx2fxpfp×1

如果x为行向量
x = [ x 1 x 2 ⋯ x p ] 1 × p x= \left[ \begin{matrix} x_1& x_2 & \cdots & x_p \end{matrix}\right] _{1\times{p}} x=[x1x2xp]1×p
那么
∂ f ∂ x = [ ∂ f ∂ x 1 ∂ f ∂ x 2 ⋯ ∂ f ∂ x p ] 1 × p \frac{\partial{f}}{\partial{x}}= \left[ \begin{matrix} \frac{\partial{f}}{\partial{x_1}} & \frac{\partial{f}}{\partial{x_2}}& \cdots& \frac{\partial{f}}{\partial{x_p}} \end{matrix}\right] _{1\times{p}} xf=[x1fx2fxpf]1×p

向量对标量求导

设f为列向量
f = [ f 1 ( x ) f 2 ( x ) ⋮ f m ( x ) ] m × 1 f= \left[ \begin{matrix} f_1(x) \\ f_2(x) \\ \vdots \\ f_m(x) \end{matrix}\right] _{m\times1} f=f1(x)f2(x)fm(x)m×1
分母x为标量
那么导数定义为:
∂ f m × 1 ∂ x = [ ∂ f 1 ( x ) ∂ x , ∂ f 2 ( x ) ∂ x , ⋯   , ∂ f m ( x ) ∂ x ] 1 × m = ∂ f T ∂ x \frac{\partial{f}_{m\times1}}{\partial{x}}=[\frac{\partial{f_1(x)}}{\partial{x}},\frac{\partial{f_2(x)}}{\partial{x}},\cdots,\frac{\partial{f_m(x)}}{\partial{x}}]_{1\times{m}}=\frac{\partial{f^T}}{\partial{x}} xfm×1=[xf1(x),xf2(x),,xfm(x)]1×m=xfT

向量对向量求导

函数f为列向量
f = [ f 1 ( x ) f 2 ( x ) ⋮ f m ( x ) ] m × 1 f= \left[ \begin{matrix} f_1(x) \\ f_2(x) \\ \vdots \\ f_m(x) \end{matrix}\right] _{m\times1} f=f1(x)f2(x)fm(x)m×1
分母为列向量
x = [ x 1 x 2 ⋮ x p ] p × 1 x= \left[ \begin{matrix} x_1 \\ x_2 \\ \vdots \\ x_p \end{matrix}\right] _{p\times1} x=x1x2xpp×1
首先推出
∂ f ∂ x = [ ∂ f ∂ x 1 ∂ f ∂ x 2 ⋮ ∂ f ∂ x p ] p × 1 \frac{\partial{f}}{\partial{x}}= \left[ \begin{matrix} \frac{\partial{f}}{\partial{x_1}} \\ \frac{\partial{f}}{\partial{x_2}}\\ \vdots \\ \frac{\partial{f}}{\partial{x_p}} \end{matrix}\right] _{p\times1} xf=x1fx2fxpfp×1
之后由向量对标量的求导原则可以推出

∂ f ∂ x = [ ∂ f 1 ∂ x 1 ∂ f 2 ∂ x 1 ⋯ ∂ f m ∂ x 1 ∂ f 1 ∂ x 2 ∂ f 2 ∂ x 2 ⋯ ∂ f m ∂ x 2 ⋮ ⋮ ⋱ ⋮ ∂ f 1 ∂ x p ∂ f 2 ∂ x p ⋯ ∂ f m ∂ x p ] p × m \frac{\partial{f}}{\partial{x}}= \left[ \begin{matrix} \frac{\partial{f_1}}{\partial{x_1}} & \frac{\partial{f_2}}{\partial{x_1}}&\cdots& \frac{\partial{f_m}}{\partial{x_1}}\\ \frac{\partial{f_1}}{\partial{x_2}} & \frac{\partial{f_2}}{\partial{x_2}}&\cdots& \frac{\partial{f_m}}{\partial{x_2}}\\ \vdots& \vdots&\ddots&\vdots\\ \frac{\partial{f_1}}{\partial{x_p}} & \frac{\partial{f_2}}{\partial{x_p}}&\cdots& \frac{\partial{f_m}}{\partial{x_p}} \end{matrix}\right] _{p\times{m}} xf=x1f1x2f1xpf1x1f2x2f2xpf2x1fmx2fmxpfmp×m

以分子布局进行求导

对于分子布局来说,我们求导结果的维度以分子为主,比如对于我们上面对标量求导的例子,结果的维度和分子的维度是一致的。也就是说,如果向量f 是一个m维的列向量,那么求导结果 ∂ f ∂ x \frac{\partial{f}}{\partial{x}} xf
也是一个m维列向量。如果如果向量f 是一个m维的行向量,那么求导结果 ∂ f ∂ x \frac{\partial{f}}{\partial{x}} xf 也是一个m维行向量。可见,对于分子布局和分母布局的结果来说,两者相差一个转置。

但是在机器学习算法原理的资料推导里,我们并没有看到说正在使用什么布局,也就是说布局被隐含了,这就需要自己去推演,比较麻烦。但是一般来说我们会使用一种叫混合布局的思路,即如果是向量或者矩阵对标量求导,则使用分子布局为准,如果是标量对向量或者矩阵求导,则以分母布局为准。对于向量对对向量求导,有些分歧以分子布局的雅克比矩阵为主。
在这里插入图片描述

常用矩阵求导公式

向量对向量求导
在这里插入图片描述
标量对向量求导
在这里插入图片描述
在这里插入图片描述
向量对标量求导
在这里插入图片描述

几种重要的求导矩阵

梯度
在这里插入图片描述
在这里插入图片描述
雅可比矩阵
下边这个按分子布局的向量对向量求导的结果矩阵,我们一般叫做雅克比 (Jacobian)矩阵。有的资料上会使用 ∂ f ( x ) ∂ x T \frac{\partial{f(x)}}{\partial{x}^T} xTf(x)来定义雅克比矩阵,意义是一样
在这里插入图片描述
在这里插入图片描述
海森矩阵
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值