机器学习中常用的矩阵求导

首先以一个网上很多博文引用的例子来开篇,例子见下图
例子1

问题初试

在了解向量和向量求导的时候,我看过以下一些公式:
在这里插入图片描述
在这里插入图片描述
首先Ax是个m维的列向量,它对x求偏导是个列向量对列向量求偏导的格式,所以可以套用上述公式(10),那么得到的是:
∂ A x ∂ x = ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ ⎜ ∂ ( a 11 x 1 + a 12 x 2 + ⋯   + a 1 n x n ) ∂ x ∂ ( a 21 x 1 + a 22 x 2 + ⋯   + a 2 n x n ) ∂ x ⋯   ∂ ( a m 1 x 1 + a m 2 x 2 + ⋯   + a m n x n ) ∂ x ⎞ ⎠ ⎟ ⎟ ⎟ ⎟ ⎟ m × 1 ∂ A x ∂ x = ( ∂ ( a 11 x 1 + a 12 x 2 + ⋯   + a 1 n x n ) ∂ x ∂ ( a 21 x 1 + a 22 x 2 + ⋯   + a 2 n x n ) ∂ x ⋯   ∂ ( a m 1 x 1 + a m 2 x 2 + ⋯   + a m n x n ) ∂ x ) m × 1 ∂ A x ∂ x = ( ∂ ( a 11 x 1 + a 12 x 2 + ⋯   + a 1 n x n ) ∂ x ∂ ( a 21 x 1 + a 22 x 2 + ⋯   + a 2 n x n ) ∂ x ⋯   ∂ ( a m 1 x 1 + a m 2 x 2 + ⋯   + a m n x n ) ∂ x ) m × 1 ∂Ax∂x=⎛⎝⎜⎜⎜⎜⎜∂(a11x1+a12x2+⋯ +a1nxn)∂x∂(a21x1+a22x2+⋯ +a2nxn)∂x⋯ ∂(am1x1+am2x2+⋯ +amnxn)∂x⎞⎠⎟⎟⎟⎟⎟m×1∂Ax∂x=(∂(a11x1+a12x2+⋯ +a1nxn)∂x∂(a21x1+a22x2+⋯ +a2nxn)∂x⋯ ∂(am1x1+am2x2+⋯ +amnxn)∂x)m×1 \frac{\partial Ax}{\partial x}=\left(\begin{matrix}\frac{\partial (a_{11}x_{1}+a_{12}x_2+ \cdots\ +a_{1n}x_n)}{\partial x}\\\frac{\partial (a_{21}x_{1}+a_{22}x_2+ \cdots\ +a_{2n}x_n)}{\partial x}\\\cdots\ \\\frac{\partial (a_{m1}x_{1}+a_{m2}x_2+ \cdots\ +a_{mn}x_n)}{\partial x}\\\end{matrix}\right)_{m\times1} Axx=(a11x1+a12x2+ +a1nxn)x(a21x1+a22x2+ +a2nxn)x (am1x1+am2x2+ +amnxn)xm×1Axx=((a11x1+a12x2+ +a1nxn)x(a21x1+a22x2+ +a2nxn)x (am1x1+am2x2+ +amnxn)x)m×1xAx=x(a11x1+a12x2+ +a1nxn)x(a21x1+a22x2+ +a2nxn) x(am1x1+am2x2+ +amnxn)m×1xAx=x1(a11x1+a12x2+ +a1nxn)x1(am1x1+am2x2+ +amnxn)xn(a11x1+a12x2+ +a1nxn)xn(am1x1+am2x2+ +amnxn)(mn)
这样最后得到的化简结果是一个m*n维的列向量和网上得到的答案AT不一致,那么我这个答案有没有错呢?讲道理按照公式来推应该也没有问题,然后看到了这篇文章:知乎链接。所以我按照公式推其实也没错,只是表现的形式不一样。(应该是把?)
那么怎么去得到AT这个答案呢?于是我就上网找资料以及向同学请教,找到了一个可能的答案:是因为布局方式的问题

布局方式

布局方式分分子布局和分母布局。
分子布局: 分子为 y 或者分母为 xT (即,分子为列向量或者分母为行向量)
分母布局: 分子为 yT 或者分母为 x (即,分子为行向量或者分母为列向量)

按照不同的布局方式,有几种情形,比如在分子布局方式下计算:标量/向量,向量/标量,向量/向量,标量/矩阵,矩阵/标量。

分子布局下

标量/向量(分母是向量,且是分子布局,则把分母的向量按照行向量铺开):
在这里插入图片描述
向量/标量:(分子是向量,且是分子布局,则把分子按照列向量铺开)
在这里插入图片描述
向量/向量:(分子分母都是向量,且是分子布局,则分子向量按照列向量铺开,分母向量按照行向量铺开):
在这里插入图片描述
标量/矩阵(分子布局下,X矩阵是转置后铺开的):
在这里插入图片描述

分母布局下

标量/向量(分母是向量,且是分母布局,则把分母的向量按照列向量铺开):
在这里插入图片描述
向量/标量:(分子是向量,且是分母布局,则把分子按照行向量铺开):
在这里插入图片描述
向量/向量:(分子分母都是向量,且是分母布局,则分子向量按照行向量铺开,分母向量按照列向量铺开):
在这里插入图片描述
标量/矩阵(分母布局下,X矩阵无需转置,就是原矩阵):
在这里插入图片描述

问题解决

那么回到我们刚开始引入的例子来:
在这里插入图片描述
这里它这个答案得到AT应该是因为它采用的是分母布局。
那么下面我分别按照分母布局和分子布局来计算一遍它的答案。

分子布局下将分子看成列向量展开,分母看成行向量展开:

在这里插入图片描述

分母布局下将分子看成行向量展开,分母看成列向量展开:

在这里插入图片描述

以上博文信息是自己的一点点学习总结,实属抛砖引玉,有不对的地方麻烦各位不吝赐教。

参考博文:
https://blog.csdn.net/uncle_gy/article/details/78879131
https://blog.csdn.net/nomadlx53/article/details/50849941
https://blog.csdn.net/shouhuxianjian/article/details/46669365

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值