目录

  • 矩阵求导常用公式
  • 1.分母布局与分子布局
  • 2.分母布局与分子布局的矩阵求导公式
  • (1)向量对向量求导
  • (2)、标量对向量求导
  • (3)、向量对标量求导
  • 3.验证求导结果
  • 矩阵的模和矩阵的绝对值的求导
  • 1,矩阵的绝对值求导
  • (1)f是一个标量
  • (2)f是一个矢量
  • 2,矩阵的模求导

矩阵求导常用公式

1.分母布局与分子布局

(1) 前提:
1.分子分母都是向量,且一个是行向量,另一个是列向量
2.分子分母一个是标量,另一个是行向量或列向量
当满足1或2时,讨论分母布局/分子布局才有意义。
(2). 结论:谁是列向量就是什么布局。
分母是列向量,就是分母布局;分子是列向量,就是分子布局。
(3). 一个例子:定义一般的列向量x=(x1,x2,⋯,xn)Tx=(x_1,x_2,\cdots,x_n)^\mathrm{T}x=(x1​,x2​,⋯,xn​)T 的矩阵函数 a(x)=[a1(x),a2(x),⋯,as(x)]Ta(x)=[a_1(x),a_2(x),\cdots ,a_s(x)]^\mathrm{T}a(x)=[a1​(x),a2​(x),⋯,as​(x)]T
aaa对xTx^\mathrm{T}xT的导数为
dadxT=[∂a1∂x1∂a1∂x2⋯∂a1∂xn⋯⋯⋯⋯∂as∂x1∂as∂x2⋯∂as∂xn]\dfrac{da}{dx^\mathrm{T}}=\begin{bmatrix} \dfrac{\partial a_1}{\partial x_1}&\dfrac{\partial a_1}{\partial x_2}&\cdots&\dfrac{\partial a_1}{\partial x_n}\\ \cdots&\cdots&\cdots&\cdots\\ \dfrac{\partial a_s}{\partial x_1}&\dfrac{\partial a_s}{\partial x_2}&\cdots&\dfrac{\partial a_s}{\partial x_n}\\ \end{bmatrix}dxTda​=⎣⎢⎢⎢⎡​∂x1​∂a1​​⋯∂x1​∂as​​​∂x2​∂a1​​⋯∂x2​∂as​​​⋯⋯⋯​∂xn​∂a1​​⋯∂xn​∂as​​​⎦⎥⎥⎥⎤​
可以看到,此时为分子布局,因为aaa 是 s×1s \times 1s×1 的列向量, xTx^\mathrm{T}xT是 1×n1 \times n1×n 的行向量,所以结果是 s×ns \times ns×n 的。
而 aTa^\mathrm{T}aT对xxx 的导数为
daTdx=[∂a1∂x1∂a2∂x1⋯∂as∂x1⋯⋯⋯⋯∂a1∂xn∂a2∂xn⋯∂as∂xn]\dfrac{da^\mathrm{T}}{dx}=\begin{bmatrix} \dfrac{\partial a_1}{\partial x_1}&\dfrac{\partial a_2}{\partial x_1}&\cdots&\dfrac{\partial a_s}{\partial x_1}\\ \cdots&\cdots&\cdots&\cdots\\ \dfrac{\partial a_1}{\partial x_n}&\dfrac{\partial a_2}{\partial x_n}&\cdots&\dfrac{\partial a_s}{\partial x_n}\\ \end{bmatrix}dxdaT​=⎣⎢⎢⎢⎡​∂x1​∂a1​​⋯∂xn​∂a1​​​∂x1​∂a2​​⋯∂xn​∂a2​​​⋯⋯⋯​∂x1​∂as​​⋯∂xn​∂as​​​⎦⎥⎥⎥⎤​
可以看到,此时为分母布局,因为 xxx是 n×1n \times 1n×1 的列向量, aTa^\mathrm{T}aT 是 1×s1 \times s1×s的行向量,所以结果是 n×sn \times sn×s 的。
(4). 总结:直接去看别人的矩阵公式你得先知道自己的矩阵布局不然都搞错了

2.分母布局与分子布局的矩阵求导公式

Denominator layout 是分母布局Numerator layout是分子布局
常用的是分母布局,图中标红

(1)向量对向量求导

(2)、标量对向量求导


(3)、向量对标量求导

3.验证求导结果

在这里同时给出一个自动求导的网站链接:链接: link 可以验证你的求导结果。

矩阵的模和矩阵的绝对值的求导

最近推导一些公式,对矩阵求导遇到一些问题,在这里纪录一下

1,矩阵的绝对值求导

(1)f是一个标量

假设函数f=f(x)f=f(x)f=f(x),对∣f∣|f|∣f∣求导:
结论:∣f∣′=f∣f∣⋅f′|f|'=\dfrac{f}{|f|} \cdot f'∣f∣′=∣f∣f​⋅f′
推导:
向两边平方
∣f∣2=f2|f|^2=f^2∣f∣2=f2
再两边求导
2∣f∣′∣f∣=2f′f2|f|'|f|=2f'f2∣f∣′∣f∣=2f′f
⇒\Rightarrow⇒∣f∣′=f∣f∣⋅f′|f|'=\dfrac{f}{|f|} \cdot f'∣f∣′=∣f∣f​⋅f′

(2)f是一个矢量

当f是一个矢量仍然有类似的结果
结论:∣f⃗∣′=f⃗∣f⃗∣⋅f⃗′|\vec f|'=\dfrac{\vec f}{|\vec f|} \cdot \vec f'∣f​∣′=∣f​∣f​​⋅f​′
推导:
向两边平方
∣f⃗∣2=f⃗2|\vec f|^2=\vec f^2∣f​∣2=f​2
再两边求导
2∣f⃗∣′∣f⃗∣=2f⃗′f⃗2|\vec f|'|\vec f|=2\vec f'\vec f2∣f​∣′∣f​∣=2f​′f​
⇒\Rightarrow⇒ ∣f⃗∣′=f⃗∣f⃗∣⋅f⃗′|\vec f|'=\dfrac{\vec f}{|\vec f|} \cdot \vec f'∣f​∣′=∣f​∣f​​⋅f​′

2,矩阵的模求导

注意这里是模的导数,不是模的平方的导数!!!
这里是分母布局
∥AX∥=(AX)T(AX)=(XTATAX)12\|AX\|=\sqrt{(AX)^\mathrm{T}(AX)}=(X^\mathrm{T}A^\mathrm{T}AX)^\frac{1}{2}∥AX∥=(AX)T(AX)​=(XTATAX)21​
求导 ⇒\Rightarrow⇒
12(XTATAX)−12(2ATAX)\dfrac{1}{2}(X^\mathrm{T}A^\mathrm{T}AX)^{-\frac{1}{2}}(2A^\mathrm{T}AX)21​(XTATAX)−21​(2ATAX)
⇒ATAX∥AX∥\Rightarrow \dfrac{A^\mathrm{T}AX}{\|AX\|}⇒∥AX∥ATAX​
参考:
https://blog.csdn.net/daaikuaichuan/article/details/80620518
https://zhuanlan.zhihu.com/p/491935204
https://www.zhihu.com/question/352174717
https://en.wikipedia.org/wiki/Matrix_calculus

矩阵求导常用公式(避坑)+矩阵的模和矩阵的绝对值的求导相关推荐

  1. Matrix Differentiation(矩阵求导)以及矩阵求导常用公式

    Matrix Differentiation(矩阵求导) References: Matrix Differentiation,Rabdak J.Barnes 注: 本文直接从Matrix Diffe ...

  2. LATEX公式(入门、矩阵、多行公式、常用字符、特殊符号)

    文章目录 0.前言 1.行内公示(inline equation) 2.行间公式(displayed equation) 2.1 最基本的行间公式(不带编号) 2.2 equation 行间公式(带编 ...

  3. LaTeX数学公式的矩阵、多行公式

    LaTeX数学公式的矩阵.多行公式 目录 矩阵公式 数学公式的多行公式 矩阵公式 % 导言区 \documentclass{article} \usepackage{ctex}\usepackage{ ...

  4. python的常见矩阵除法_numpy常用矩阵运算方法【转】

    目录: 对于python中的numpy模块,一般用其提供的ndarray对象. 创建一个ndarray对象很简单,只要将一个list作为参数即可. 例如 import numpy as np #引入n ...

  5. CNN之性能指标:卷积神经网络中常用的性能指标(IOU/AP/mAP、混淆矩阵)简介、使用方法之详细攻略

    CNN之性能指标:卷积神经网络中常用的性能指标(IOU/AP/mAP.混淆矩阵)简介.使用方法之详细攻略 目录 CNN中常用的性能指标(IOU/AP/mAP.混淆矩阵)简介 IOU 1.IOU简介 2 ...

  6. Java黑皮书课后题第8章:*8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和。编写一个程序,读取一个4*4的矩阵,显示主对角线和

    *8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和.编写一个程序,读取一个4*4的矩阵,显示主对角线和 题目 题目描述与运行示例 破题 ...

  7. c编程:求出4#215;4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和。...

    //求出4×4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和 #include <stdio.h> int main() {int sum=0;int max,mi ...

  8. 运用雅可比和高斯赛德尔迭代公式求解方程组,并尝试将矩阵变为主对角占优矩阵

    程序描述 首先要求用户输入矩阵的大小n(默认不超过10),然后再提示用户输入大小为n的方阵.因为输入的方阵可能含有较多的0元素,因此用了数据结构上的矩阵的压缩方法来存储稀疏矩阵.矩阵的每一个非零元用一 ...

  9. Python~Pandas 小白避坑之常用笔记

    Python~Pandas 小白避坑之常用笔记 提示:该文章仅适合小白同学,如有错误的地方欢迎大佬在评论处赐教 文章目录 Python~Pandas 小白避坑之常用笔记 前言 一.pandas安装 二 ...

最新文章

  1. 如何使用机器学习进行异常检测和状态监控?
  2. 绕了一圈,重回邗江区的怀抱
  3. cpu烤机工具_MySQL常用工具选择和建议
  4. 线程的应用-如何应用多线程
  5. java中抽象类,abstract关键字
  6. WPF自定义控件与样式(4)-CheckBox/RadioButton自定义样式
  7. 如何动态获取UILabel的高度、宽度
  8. Docker教程小白实操入门(13)--如何使用COPY和ADD复制文件到容器内
  9. 一个C#控制台小游戏(源码解析)
  10. 【MODBUS】组态王通过串口与MODBUS RTU设备通讯
  11. ROS机器人语音交互(一)
  12. youtube上下载vr立体声视频及其处理
  13. Json-Handle插件下载安装使用
  14. 非IT企业的IT经理如何管理IT人力资源
  15. UCK将信任建立在安全之上 让生态价值源远流长
  16. 桥梁防船撞智能预警系统方案讨论
  17. 探讨 C++ 虚函数 virtual
  18. 4399游戏测试实习生面试
  19. 通过一个场景实例 了解前端处理大数据的无限可能
  20. win10下基于wsl-Ubuntu 的LAMMPS超便捷安装

热门文章

  1. win10彻底禁用wsappx的方法
  2. Win10开机wsappx进程占用CPU资源过高,最全的解决方法总结。
  3. 解决关于mbp132018 parallessls desktop下安装windows虚拟机2880X1800分辨率下鼠标指针过大的问题
  4. 关于GPL和LGPL
  5. 斯坦福cs231n课程记录——assignment2 BatchNormalization
  6. 哔哩哔哩用户数据采集及数据分析
  7. cad注释比例和打印比例不一样_关于CAD里的比例问题我一直有疑问1:1与1:100的比例究竟有什么差别?标注时又怎样不影响?...
  8. 德标Y型过滤器特质及安装
  9. 快捷方式变白块解决方法
  10. python设计一个小游戏、定义一个top score_python实现滑雪者小游戏