点击上方“计算机视觉life”,选择“星标”
快速获得最新干货
1. 前言与感谢
-
以前就对矩阵求导有心理阴影,到底要不要转置,哪个矩阵放在前面,哪个矩阵放在后面,链式法则怎么搞,由产生此类一系列让人头大的问题。其中,最令人智熄的是经常网上的一些算法公式推导是错误的,因为矩阵维数根本不匹配,而这些无良的发布者可能根本就没有手推过,天天搞复制黏贴大法,很多时候都是大量重复错误的内容,污染网络学习环境。最近读了一些材料,感觉变得清晰了许多,因此想通过本文总结,一次性梳理清楚。是时候搞定矩阵求导了!
-
在此,必须感谢为这个问题写下详细分析文章的人,尤其是参考资料[1,2,7,8,9]中的作者,他们是很用心的站在初学者的角度来考虑这些问题。的确如某位博主所言,我也认为矩阵微分是属于三不管区域,无论是数学分析、高等代数还是优化课程,前两者的老师觉得此问题不属于知识主线,不必系统地教,后一类课程的老师觉得这本质上还属于线性代数+微积分的内容,应该在基础课程内搞定,因此造就了当前有些尴尬的局面,话不多说赶紧开始!
-
注:本文主要是做一个梳理,具体的证明过程都可在参考资料中找到
2. 符号与求导布局
的规定
-
-
-
-
-
向量
对向量
求导得到的是矩阵,其行数与
的维数保持一致,其中
-
注:全文默认为上述这种分母布局,另外还有一种分子布局,参看参考材料[2,8],事实上大多数的转置异常问题根本上来说是由于没有统一求导布局所导致的,同时不同的材料内可能布局不同,并无标准,因此在阅读文献时应当先弄清楚作者采用的哪一种
3. 几个重要的向量对向量求导结论(利用定义容易验证)
4. 标量求导的迹方法
-
-
回顾一下关于迹的重要性质,这在之后凑微分矩阵是非常重要的,其中第五条中的
表示
乘积
-
将全微分的常用公式列在下方,详细说明可在参考材料[1,4,5]中找到,其中第七条中
表示逐元素标量运算
5. 乘法法则
6. 链式法则
-
向量对向量求导(此种情况显然还包含了标量对向量求导和向量对标量求导)
-
-
-
由上所述,若链式关系中存在有矩阵对矩阵求导,则难以直接写出标量对矩阵的导数,下面则给出常用的线性关系下的"链式"求导
-
若存在关系:
,则
注
.若关系中改为
,则计算结果变为
注
.在左乘
且
为向量时,则也同样结论成立 当
时,有
成立
-
注:此时由于链式法则不再成立,往往通过上文介绍的迹方法来求标量对矩阵的导数
-
-
有上面介绍的结果可以看到,对于矩阵(或向量)对矩阵求导并不具有向量对向量求导的链式法则形式
-
这与矩阵的
积有关,详细关于矩阵对矩阵求导的内容可查看[10]中的详细叙述,本文不展开
7. 一些常见技巧
-
当目标值内多处含有自变量,可以每次只对一处求导数,最后将这些量相加,具体案例详见[7]中的第 28 页
-
几种变化手段:- 一维下标求和则考虑写成内积的形式 - 二维下标求和则考虑写成
的形式 - 向量模长的平方则考虑内积运算,即
- 矩阵的
范数则考虑写成
的形式,即
8. 实例
【例 1】求
【解】原式
【例 2】求
【解】由于
因此原式
【例 3】设
【解】令
此时
最后将变量逐个代入即得到结果,这里如果限制
是
向量,则可验证其等价于[1]中的多元
回归结果
9. 参考材料
-
长躯鬼侠. 矩阵求导术(上), (https://zhuanlan.zhihu.com/p/24709748)
-
刘建平. 机器学习中的矩阵向量求导, (https://www.cnblogs.com/pinard/)
-
Kaare Brandt Petersen, Michael Syskind Pedersen. "The Matrix Cookbook", 2008
-
Thomas P. Minka. "Old and New Matrix Algebra Useful for Statistics", 2000
-
Searle Shayle R. "Matrix Algebra Useful for Statistics", 1982
-
Jan R. Magnus, Heinz Neudecker. "Matrix Differential Calculus with Applications in Statistics and Econometrics", 2007
-
"Matrix Vector Derivatives for Machine Learning", (作者邮箱:ruanchong_ruby@163.com)
-
维基百科. Matrix calculus, (https://en.wikipedia.org/wiki/Matrix_calculus)
-
邱锡鹏. 神经网络与深度学习, (https://nndl.github.io/)
-
长躯鬼侠. 矩阵求导术(下), (https://zhuanlan.zhihu.com/p/24863977)
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、检测分割识别、三维视觉、医学影像、GAN、自动驾驶、计算摄影、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
合作欢迎联系:simiter@126.com
推荐阅读
原来CNN是这样提取图像特征的。。。
有哪些靠谱的deep learning网络调参经验?
深度学习中最常见GAN模型应用与解读
CNN系列模型发展简史(附代码,已全部跑通)
盘点卷积神经网络中十大变革操作:变形卷积核、可分离卷积。。。
深度学习,怎么知道你的训练数据真的够了?
重磅!MobileNetV3 来了!
最佳机器/深度学习课程 Top 5 ,吴恩达占了俩
机器学习必学十大算法
YOLO简史
这可能是「多模态机器学习」最通俗易懂的介绍
算力限制场景下的目标检测实战浅谈
开源 | 用深度学习让你的照片变得美丽
面试时让你手推公式不在害怕 | 线性回归
面试时让你手推公式不在害怕 | 梯度下降
深度学习在计算机视觉各项任务中的应用
干货 | 深入理解深度学习中的激活函数
何恺明组又出神作!最新论文提出全景分割新方法
Android手机移植TensorFlow,实现物体识别、行人检测、图像风格迁移
没有人工标注,如何实现互联网图像中的像素级语义识别?
详解如何将TensorFlow训练的模型移植到安卓手机
有趣又有料:任意操控静态图片中人的眼球
深度学习+几何结构:1+1>2?
机器学习工程师第一年的 12 点体会
万字长文总结机器学习的模型评估与调参,附代码下载
如何配置一台深度学习工作站?
最新AI干货,我在看