算法推导核心!一次性梳理清楚,是时候搞定矩阵求导了!

2019 年 11 月 18 日 极市平台

加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~


前言与感谢


  • 以前就对矩阵求导有心理阴影,到底要不要转置,哪个矩阵放在前面,哪个矩阵放在后面,链式法则怎么搞,由产生此类一系列让人头大的问题。其中,最令人智熄的是经常网上的一些算法公式推导是错误的,因为矩阵维数根本不匹配,而这些无良的发布者可能根本就没有手推过,天天搞复制黏贴大法,很多时候都是大量重复错误的内容,污染网络学习环境。最近读了一些材料,感觉变得清晰了许多,因此想通过本文总结,一次性梳理清楚。是时候搞定矩阵求导了!


  • 在此,必须感谢为这个问题写下详细分析文章的人,尤其是参考资料[1,2,7,8,9]中的作者,他们是很用心的站在初学者的角度来考虑这些问题。的确如某位博主所言,我也认为矩阵微分是属于三不管区域,无论是数学分析、高等代数还是优化课程,前两者的老师觉得此问题不属于知识主线,不必系统地教,后一类课程的老师觉得这本质上还属于线性代数+微积分的内容,应该在基础课程内搞定,因此造就了当前有些尴尬的局面,话不多说赶紧开始!


符号与求导布局 的规定


  • 符号规定
    • :标量
    • 维向量
    • 维向量
    • :大小为 的矩阵


  • 分母布局    
    • 标量 对向量 求导得到的是 维向量,其中
    • 标量对矩阵 得到的是大小为 的矩阵,其中
    • 向量 对向量 求导得到的是矩阵,其行数与 的维数保持一致,其中
    • 注:全文默认为上述这种分母布局,另外还有一种分子布局,参看参考材料[2,8],事实上大多数的转置异常问题根本上来说是由于没有统一求导布局所导致的,同时不同的材料内可能布局不同,并无标准,因此在阅读文献时应当先弄清楚作者采用的哪一种



几个重要的向量对向量求导结论(利用定义容易验证)


  • 设向量 ,则 ,特别地:
  • 设向量 ,则 ,特别地:
  • 为按元素运算的函数,则



标量求导的迹方法(Trace Method)


  • 思想:
    由于
    ,故全微分 是导数 与微分矩阵 的内积,因此只要凑到这种形式下,等价于找到了标量 的导数


  • 回顾一下关于迹的重要性质,这在之后凑微分矩阵是非常重要的,其中第五条中的 表示 乘积
    • ,其中 为大小相等的矩阵

  • 将全微分的常用公式列在下方,详细说明可在参考材料[1,4,5]中找到,其中第七条中 表示逐元素标量运算
    •  - 
    • (此条经常与迹性质中的第五条结合使用)



乘法法则(Product Rule)




链式法则(Chain Rule)


  • 向量对向量求导(此种情况显然还包含了标量对向量求导和向量对标量求导)

    • 设多个向量之间存在依赖关系:
    • 计算方法:

  • 标量对矩阵求导

    • 若矩阵 ,矩阵
      ,标量
      ,则
    • 由上所述,若链式关系中存在有矩阵对矩阵求导,则难以直接写出标量对矩阵的导数,下面则给出常用的线性关系下的"链式"求导
    • 若存在关系:
      ,则   注 .若关系中改为 ,则计算结果变为   注 .在左乘 为向量时,则也同样结论成立 当 时,有 成立
    • 注: 此时由于链式法则不再成立,往往通过上文介绍的迹方法来求标量对矩阵的导数


  • 矩阵对矩阵求导

    • 有上面介绍的结果可以看到,对于矩阵(或向量)对矩阵求导并不具有向量对向量求导的链式法则形式
    • 这与矩阵的 积有关,详细关于矩阵对矩阵求导的内容可查看[10]中的详细叙述,本文不展开



一些常见技巧


  • 当目标值内多处含有自变量,可以每次只对一处求导数,最后将这些量相加,具体案例详见[7]中的第 28 页

  • 几种变化手段:- 一维下标求和则考虑写成内积的形式 - 二维下标求和则考虑写成 的形式 - 向量模长的平方则考虑内积运算,即  - 矩阵的 范数则考虑写成 的形式,即



实例


【例 1】求


【解】原式


【例 2】求

【解】由于

因此原式=


【例 3】设,求


【解】令

此时

最后将变量逐个代入即得到结果,这里如果限制 向量,则可验证其等价于[1]中的多元 回归结果



参考材料


  1. 长躯鬼侠. 矩阵求导术(上), (https://zhuanlan.zhihu.com/p/24709748)
  2. 刘建平. 机器学习中的矩阵向量求导, (https://www.cnblogs.com/pinard/)
  3. Kaare Brandt Petersen, Michael Syskind Pedersen. "The Matrix Cookbook", 2008
  4. Thomas P. Minka. "Old and New Matrix Algebra Useful for Statistics", 2000
  5. Searle Shayle R. "Matrix Algebra Useful for Statistics", 1982
  6. Jan R. Magnus, Heinz Neudecker. "Matrix Differential Calculus with Applications in Statistics and Econometrics", 2007
  7. "Matrix Vector Derivatives for Machine Learning", (作者邮箱:ruanchong_ruby@163.com)
  8. 维基百科. Matrix calculus, (https://en.wikipedia.org/wiki/Matrix_calculus)
  9. 邱锡鹏. 神经网络与深度学习, (https://nndl.github.io/)
  10. 长躯鬼侠. 矩阵求导术(下), (https://zhuanlan.zhihu.com/p/24863977)



-End-


*延伸阅读





CV细分方向交流群


添加极市小助手微信(ID : cv-mart),备注:研究方向-姓名-学校/公司-城市(如:目标检测-小极-北大-深圳),即可申请加入目标检测、目标跟踪、人脸、工业检测、医学影像、三维&SLAM、图像分割等极市技术交流群(已经添加小助手的好友直接私信),更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流一起来让思想之光照的更远吧~



△长按添加极市小助手


△长按关注极市平台


觉得有用麻烦给个在看啦~  

登录查看更多
2

相关内容

还在修改博士论文?这份《博士论文写作技巧》为你指南
最新《自动微分手册》77页pdf
专知会员服务
100+阅读 · 2020年6月6日
最新《机器学习理论初探》概述
专知会员服务
44+阅读 · 2020年5月19日
《深度学习》圣经花书的数学推导、原理与Python代码实现
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
特征方程的物理意义
算法与数学之美
6+阅读 · 2019年5月13日
博客 | MIT—线性代数(下)
AI研习社
6+阅读 · 2018年12月20日
博客 | MIT—线性代数(上)
AI研习社
9+阅读 · 2018年12月18日
【干货】​深度学习中的线性代数
专知
21+阅读 · 2018年3月30日
【干货】理解深度学习中的矩阵运算
机器学习研究会
18+阅读 · 2018年2月12日
机器之心最干的文章:机器学习中的矩阵、向量求导
深度学习世界
12+阅读 · 2018年2月7日
CNN 反向传播算法推导
统计学习与视觉计算组
30+阅读 · 2017年12月29日
干货 | 深度学习之CNN反向传播算法详解
机器学习算法与Python学习
17+阅读 · 2017年11月21日
神经网络bp算法推导
统计学习与视觉计算组
11+阅读 · 2017年11月17日
图解高等数学|线性代数
遇见数学
39+阅读 · 2017年10月18日
Relational recurrent neural networks
Arxiv
8+阅读 · 2018年6月28日
Arxiv
4+阅读 · 2018年2月19日
VIP会员
相关资讯
特征方程的物理意义
算法与数学之美
6+阅读 · 2019年5月13日
博客 | MIT—线性代数(下)
AI研习社
6+阅读 · 2018年12月20日
博客 | MIT—线性代数(上)
AI研习社
9+阅读 · 2018年12月18日
【干货】​深度学习中的线性代数
专知
21+阅读 · 2018年3月30日
【干货】理解深度学习中的矩阵运算
机器学习研究会
18+阅读 · 2018年2月12日
机器之心最干的文章:机器学习中的矩阵、向量求导
深度学习世界
12+阅读 · 2018年2月7日
CNN 反向传播算法推导
统计学习与视觉计算组
30+阅读 · 2017年12月29日
干货 | 深度学习之CNN反向传播算法详解
机器学习算法与Python学习
17+阅读 · 2017年11月21日
神经网络bp算法推导
统计学习与视觉计算组
11+阅读 · 2017年11月17日
图解高等数学|线性代数
遇见数学
39+阅读 · 2017年10月18日
Top
微信扫码咨询专知VIP会员