矩阵求导常用公式(避坑)+矩阵的模和矩阵的绝对值的求导
目录
- 矩阵求导常用公式
- 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=f2
再两边求导
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
矩阵求导常用公式(避坑)+矩阵的模和矩阵的绝对值的求导相关推荐
- Matrix Differentiation(矩阵求导)以及矩阵求导常用公式
Matrix Differentiation(矩阵求导) References: Matrix Differentiation,Rabdak J.Barnes 注: 本文直接从Matrix Diffe ...
- LATEX公式(入门、矩阵、多行公式、常用字符、特殊符号)
文章目录 0.前言 1.行内公示(inline equation) 2.行间公式(displayed equation) 2.1 最基本的行间公式(不带编号) 2.2 equation 行间公式(带编 ...
- LaTeX数学公式的矩阵、多行公式
LaTeX数学公式的矩阵.多行公式 目录 矩阵公式 数学公式的多行公式 矩阵公式 % 导言区 \documentclass{article} \usepackage{ctex}\usepackage{ ...
- python的常见矩阵除法_numpy常用矩阵运算方法【转】
目录: 对于python中的numpy模块,一般用其提供的ndarray对象. 创建一个ndarray对象很简单,只要将一个list作为参数即可. 例如 import numpy as np #引入n ...
- CNN之性能指标:卷积神经网络中常用的性能指标(IOU/AP/mAP、混淆矩阵)简介、使用方法之详细攻略
CNN之性能指标:卷积神经网络中常用的性能指标(IOU/AP/mAP.混淆矩阵)简介.使用方法之详细攻略 目录 CNN中常用的性能指标(IOU/AP/mAP.混淆矩阵)简介 IOU 1.IOU简介 2 ...
- Java黑皮书课后题第8章:*8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和。编写一个程序,读取一个4*4的矩阵,显示主对角线和
*8.2(求矩阵对角线元素的和)使用下面的方法头编写一个方法,求n*n的double类型矩阵中主对角线上所有数字的和.编写一个程序,读取一个4*4的矩阵,显示主对角线和 题目 题目描述与运行示例 破题 ...
- c编程:求出4#215;4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和。...
//求出4×4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和 #include <stdio.h> int main() {int sum=0;int max,mi ...
- 运用雅可比和高斯赛德尔迭代公式求解方程组,并尝试将矩阵变为主对角占优矩阵
程序描述 首先要求用户输入矩阵的大小n(默认不超过10),然后再提示用户输入大小为n的方阵.因为输入的方阵可能含有较多的0元素,因此用了数据结构上的矩阵的压缩方法来存储稀疏矩阵.矩阵的每一个非零元用一 ...
- Python~Pandas 小白避坑之常用笔记
Python~Pandas 小白避坑之常用笔记 提示:该文章仅适合小白同学,如有错误的地方欢迎大佬在评论处赐教 文章目录 Python~Pandas 小白避坑之常用笔记 前言 一.pandas安装 二 ...
最新文章
- 如何使用机器学习进行异常检测和状态监控?
- 绕了一圈,重回邗江区的怀抱
- cpu烤机工具_MySQL常用工具选择和建议
- 线程的应用-如何应用多线程
- java中抽象类,abstract关键字
- WPF自定义控件与样式(4)-CheckBox/RadioButton自定义样式
- 如何动态获取UILabel的高度、宽度
- Docker教程小白实操入门(13)--如何使用COPY和ADD复制文件到容器内
- 一个C#控制台小游戏(源码解析)
- 【MODBUS】组态王通过串口与MODBUS RTU设备通讯
- ROS机器人语音交互(一)
- youtube上下载vr立体声视频及其处理
- Json-Handle插件下载安装使用
- 非IT企业的IT经理如何管理IT人力资源
- UCK将信任建立在安全之上 让生态价值源远流长
- 桥梁防船撞智能预警系统方案讨论
- 探讨 C++ 虚函数 virtual
- 4399游戏测试实习生面试
- 通过一个场景实例 了解前端处理大数据的无限可能
- win10下基于wsl-Ubuntu 的LAMMPS超便捷安装
热门文章
- win10彻底禁用wsappx的方法
- Win10开机wsappx进程占用CPU资源过高,最全的解决方法总结。
- 解决关于mbp132018 parallessls desktop下安装windows虚拟机2880X1800分辨率下鼠标指针过大的问题
- 关于GPL和LGPL
- 斯坦福cs231n课程记录——assignment2 BatchNormalization
- 哔哩哔哩用户数据采集及数据分析
- cad注释比例和打印比例不一样_关于CAD里的比例问题我一直有疑问1:1与1:100的比例究竟有什么差别?标注时又怎样不影响?...
- 德标Y型过滤器特质及安装
- 快捷方式变白块解决方法
- python设计一个小游戏、定义一个top score_python实现滑雪者小游戏