ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

矩阵求导

2022-04-17 22:02:10  阅读:197  来源: 互联网

标签:转置 布局 矩阵 标量 求导 向量


https://zhuanlan.zhihu.com/p/137702347

这篇文章讲得不错

好像下面这篇文章也写得不错,之后有空再看

https://zhuanlan.zhihu.com/p/24709748

 

 

 

 

虽然说学过微积分理论上就能推导出矩阵求导的法则,但是矩阵求导的确是很麻烦,先不提张量相关,简单的来组合一下就很多可能:

向量对标量求导 (Vector-by-scalar)

向量 [公式] ,对标量 [公式] 求导,一般写为:

[公式]

常见例子是位移对时间求导, 速度对时间求导。

标量对向量求导(Scalar-by-vector)

标量 y 对 向量 [公式] 求导写作:

[公式]

这里可能会让人疑惑,为什么上面是列向量而这里则是行向量。

这是矩阵求导可能会比较麻烦的第二个地方,可能有不同的布局方式:

  • 分子布局(Numerator Layout):分子不变,分母转置
  • 分母布局(Denominator Layout):分母不变,分子转置

当然还有混合布局。

用分子布局因为 wikipedia 里就是这样做的,而且有些只能有分子布局表示。

这里可能会分子布局可能会有点让人不习惯,因为比如梯度,我们很经常会把它看成列向量:

[公式]

但实质上有些地方也把梯度看成/写成行向量,重要的是比如你在使用的时候根据自己所默认的认为是行向量还是列向量的不同在做不同的操作的时候稍加注意就ok了,比如下面这个式子列向量无所谓,因为是点乘,但是如果看成矩阵之间的乘法当然我们就需要转置作为列向量的梯度了:

[公式]

向量对向量求导(Vector-by-vector)

向量 [公式] 对向量 [公式] 求导,同样分子布局:

[公式]

正好是雅克比矩阵:

[公式]

这是使用分子布局的好处,否则就是雅克比的转置了。

这样的好处是写下这个式子也很自然:

[公式]

矩阵对标量求导 (Matrix-by-scalar)

[公式]

标量对矩阵求导(Scalar-by-matrix)

[公式]

例子

之所以说矩阵求导本质上还是对单个变量求导,来看一个例子,比如:

[公式]

先来计算 [公式] :

[公式]

[公式], 利用上面的向量对向量求导,使用雅克比矩阵:

[公式]

同时也可以尝试使用分母布局,求出来对应为 [公式]

计算

wikipedia 上的表格可以用来速查。除此之外还有一个网站可以用来计算矩阵求导:

Matrix Calculus​www.matrixcalculus.org

试一下:

[公式]

 

还可以导出为 Python code 或者 Latex , cool,再试一个:

[公式]

 

增加条件, [公式]为对称矩阵:

looks good, cool!

 

 

标签:转置,布局,矩阵,标量,求导,向量
来源: https://www.cnblogs.com/charlesblc/p/16157544.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有