矩阵求导公式

2023-11-13

基本公式:
Y = A * X --> DY/DX = A'
Y = X * A --> DY/DX = A
Y = A' * X * B --> DY/DX = A * B'
Y = A' * X' * B --> DY/DX = B * A'

1. 矩阵Y对标量x求导:

相当于每个元素求导数后转置一下,注意M×N矩阵求导后变成N×M了

Y = [y(ij)] --> dY/dx = [dy(ji)/dx]

2. 标量y对列向量X求导:

注意与上面不同,这次括号内是求偏导,不转置,对N×1向量求导后还是N×1向量

y = f(x1,x2,..,xn) --> dy/dX = (Dy/Dx1,Dy/Dx2,..,Dy/Dxn)'

3. 行向量Y'对列向量X求导:

注意1×M向量对N×1向量求导后是N×M矩阵。

将Y的每一列对X求偏导,将各列构成一个矩阵。

重要结论:

dX'/dX = I

d(AX)'/dX = A'

4. 列向量Y对行向量X’求导:

转化为行向量Y’对列向量X的导数,然后转置。

注意M×1向量对1×N向量求导结果为M×N矩阵。

dY/dX' = (dY'/dX)'

5. 向量积对列向量X求导运算法则:

注意与标量求导有点不同。

d(UV')/dX = (dU/dX)V' + U(dV'/dX)

d(U'V)/dX = (dU'/dX)V + (dV'/dX)U'

重要结论:

d(X'A)/dX = (dX'/dX)A + (dA/dX)X' = IA + 0X' = A

d(AX)/dX' = (d(X'A')/dX)' = (A')' = A

d(X'AX)/dX = (dX'/dX)AX + (d(AX)'/dX)X = AX + A'X

6. 矩阵Y对列向量X求导:

将Y对X的每一个分量求偏导,构成一个超向量。

注意该向量的每一个元素都是一个矩阵。

7. 矩阵积对列向量求导法则:

d(uV)/dX = (du/dX)V + u(dV/dX)

d(UV)/dX = (dU/dX)V + U(dV/dX)

重要结论:

d(X'A)/dX = (dX'/dX)A + X'(dA/dX) = IA + X'0 = A

8. 标量y对矩阵X的导数:

类似标量y对列向量X的导数,

把y对每个X的元素求偏导,不用转置。

dy/dX = [ Dy/Dx(ij) ]

重要结论:

y = U'XV = ΣΣu(i)x(ij)v(j) 于是 dy/dX = [u(i)v(j)] = UV'

y = U'X'XU 则 dy/dX = 2XUU'

y = (XU-V)'(XU-V) 则 dy/dX = d(U'X'XU - 2V'XU + V'V)/dX = 2XUU' - 2VU' + 0 = 2(XU-V)U'

9. 矩阵Y对矩阵X的导数:

将Y的每个元素对X求导,然后排在一起形成超级矩阵。

 

10.乘积的导数

d(f*g)/dx=(df'/dx)g+(dg/dx)f'

结论

d(x'Ax)=(d(x'')/dx)Ax+(d(Ax)/dx)(x'')=Ax+A'x   (注意:''是表示两次转置)



比较详细点的如下:


http://lzh21cen.blog.163.com/blog/static/145880136201051113615571/

http://hi.baidu.com/wangwen926/blog/item/eb189bf6b0fb702b720eec94.html


其他参考:

 

Contents

  • Notation
  • Derivatives of Linear Products
  • Derivatives of Quadratic Products

Notation

  • d/dx (y) is a vector whose (i) element is dy(i)/dx
  • d/dx (y) is a vector whose (i) element is dy/dx(i)
  • d/dx (yT) is a matrix whose (i,j) element is dy(j)/dx(i)
  • d/dx (Y) is a matrix whose (i,j) element is dy(i,j)/dx
  • d/dX (y) is a matrix whose (i,j) element is dy/dx(i,j)

Note that the Hermitian transpose is not used because complex conjugates are not analytic.

In the expressions below matrices and vectors ABC do not depend on X.

Derivatives of Linear Products

  • d/dx (AYB) =A * d/dx (Y) * B
    • d/dx (Ay) =A * d/dx (y)
  • d/dx (xTA) =A
    • d/dx (xT) =I
    • d/dx (xTa) = d/dx (aTx) = a
  • d/dX (aTXb) = abT
    • d/dX (aTXa) = d/dX (aTXTa) = aaT
  • d/dX (aTXTb) = baT
  • d/dx (YZ) =Y * d/dx (Z) + d/dx (Y) * Z

Derivatives of Quadratic Products

  • d/dx (Ax+b)TC(Dx+e) = ATC(Dx+e) DTCT(Ax+b)
    • d/dx (xTCx) = (C+CT)x
      • [C: symmetric]: d/dx (xTCx) = 2Cx
      • d/dx (xTx) = 2x
    • d/dx (Ax+b)T (Dx+e) = AT (Dx+e) DT (Ax+b)
      • d/dx (Ax+b)T (Ax+b) = 2AT (Ax+b)
    • [C: symmetric]: d/dx (Ax+b)TC(Ax+b) = 2ATC(Ax+b)
  • d/dX (aTXTXb) = X(abT + baT)
    • d/dX (aTXTXa) = 2XaaT
  • d/dX (aTXTCXb) = CTXabT + CXbaT
    • d/dX (aTXTCXa) = (C + CT)XaaT
    • [C:Symmetric] d/dX (aTXTCXa) = 2CXaaT
  • d/dX ((Xa+b)TC(Xa+b)) = (C+CT)(Xa+b)aT

Derivatives of Cubic Products

  • d/dx (xTAxxT) = (A+AT)xxT+xTAxI

Derivatives of Inverses

  • d/dx (Y-1) = -Y-1d/dx (Y)Y-1

Derivative of Trace

Note: matrix dimensions must result in an n*n argument for tr().

  • d/dX (tr(X)) = I
  • d/dX (tr(Xk)) =k(Xk-1)T
  • d/dX (tr(AXk)) = SUMr=0:k-1(XrAXk-r-1)T
  • d/dX (tr(AX-1B)) = -(X-1BAX-1)T
    • d/dX (tr(AX-1)) =d/dX (tr(X-1A)) = -X-TATX-T
  • d/dX (tr(ATXBT)) = d/dX (tr(BXTA)) = AB
    • d/dX (tr(XAT)) = d/dX (tr(ATX)) =d/dX (tr(XTA)) = d/dX (tr(AXT)= A
  • d/dX (tr(AXBXT)) = ATXBT AXB
    • d/dX (tr(XAXT)) = X(A+AT)
    • d/dX (tr(XTAX)) = XT(A+AT)
    • d/dX (tr(AXTX)) = (A+AT)X
  • d/dX (tr(AXBX)) = ATXTBT BTXTAT
  • [C:symmetric] d/dX (tr((XTCX)-1A) = d/dX (tr(A (XTCX)-1) = -(CX(XTCX)-1)(A+AT)(XTCX)-1
  • [B,C:symmetric] d/dX (tr((XTCX)-1(XTBX)) = d/dX (tr( (XTBX)(XTCX)-1) = -2(CX(XTCX)-1)XTBX(XTCX)-1 + 2BX(XTCX)-1

Derivative of Determinant

Note: matrix dimensions must result in an n*n argument for det().

  • d/dX (det(X)) = d/dX (det(XT)) = det(X)*X-T
    • d/dX (det(AXB)) = det(AXB)*X-T
    • d/dX (ln(det(AXB))) = X-T
  • d/dX (det(Xk)) = k*det(Xk)*X-T
    • d/dX (ln(det(Xk))) = kX-T
  • [Real] d/dX (det(XTCX)) = det(XTCX)*(C+CT)X(XTCX)-1
    • [CReal,Symmetric] d/dX (det(XTCX)) = 2det(XTCX)* CX(XTCX)-1
  • [CReal,Symmetricc] d/dX (ln(det(XTCX))) = 2CX(XTCX)-1

Jacobian

If y is a function of x, then dyT/dx is the Jacobian matrix of y with respect to x.

Its determinant, |dyT/dx|, is the Jacobian of y with respect to x and represents the ratio of the hyper-volumes dy and dx. The Jacobian occurs when changing variables in an integration: Integral(f(y)dy)=Integral(f(y(x)) |dyT/dx| dx).

Hessian matrix

If f is a function of x then the symmetric matrix d2f/dx2 d/dxT(df/dx) is the Hessian matrix of f(x). A value of x for which df/dx 0 corresponds to a minimum, maximum or saddle point according to whether the Hessian is positive definite, negative definite or indefinite.

  • d2/dx2 (aTx) = 0
  • d2/dx2 (Ax+b)TC(Dx+e) = ATCD DTCTA
    • d2/dx2 (xTCx) = C+CT
      • d2/dx2 (xTx) = 2I
    • d2/dx2 (Ax+b)T (Dx+e) = ATD DTA
      • d2/dx2 (Ax+b)T (Ax+b) = 2ATA
    • [C: symmetric]: d2/dx2 (Ax+b)TC(Ax+b) = 2ATCA  
http://www.psi.toronto.edu/matrix/calculus.html

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

矩阵求导公式 的相关文章

  • pixi.js 导出部分区域裁剪图片

    方案 先通过api到出image对象 在通过canvas绘制图片 在导出数据 代码 const x y this app stage getBounds 超出的x y const stageImage this app renderer p
  • mybatis ---- 级联查询 一对多 (集合映射)

    关联有嵌套查询和嵌套结果两种方式 本文是按照嵌套结果这种方式来说明的 上一章介绍了多对一的关系 用到了
  • 订单管理实现功能

    一 目标以及实现思路 商家 查看订单 发货 订单状态 1未发货 2已发货 3已签收 4已撤单 默认值1 订单项查看 思路 订单表的查询 将订单表的订单状态由1改为2通过订单的id到订单项表查询出对应的订单 买家 查看订单 撤单 签收 思路
  • Cocos2d-x 3.x部署

    这是我第一次写技术文章 这里只是分享一下我的部署经验 请各位参考 谢谢 我简单的写写我的部署步骤 只参考了官方的readme 环境 win7 64位 1 打开控制台cmd 2 进入到cocos2d x引擎目录 键入setup py 键入的前
  • CSAPP Lab4- PerfLab

    代码优化 typedef struct unsigned short red R value unsigned short green G value unsigned short blue B value pixel 图像用一维数组表示
  • 树莓派4B安装64位系统 以及基础配置

    最近在使用一个SDK时发现只提供了linux64版本的 而我用的树莓派系统是32位的 查了一下发现官方有提供64位版本的 开始了重装系统 总结了一下基础配置包括换源 远程连接 中文输入法 摄像头等配置 大纲 准备工具 1 SD卡格式化 2
  • “起床困难综合症”「NOI2014」【题解】

    起床困难综合症 洛谷 题目 题目描述 drd的防御战线由n扇防御门组成 每扇防御门包括一个运算op和一个参数t 其中运算一定是OR XOR AND中的一种 参数则一定为非负整数 如果还未通过防御门时攻击力为x 则其通过这扇防御门后攻击力将变
  • Kafka 安装与部署(单机版)与kafkaDemo调试测试(包含JAVA Demo)

    部署需要的包 http download csdn net download liangmaoxuan 10228805 1 kafka 2 10 0 10 2 0 tar 1 解压kafka 2 10 0 10 2 0安装包 tar xv
  • React生命周期getDerivedStateFromProps&getSnapshotBeforeUpdate

    getDerivedStateFromProps getDerivedStateFromProps nextProps preState nextProps 与componentWillReceiveProps的nextProps参数相同
  • 《Android开发——Android Studio的下载、安装与配置》

    Android开发 Android Studio的下载 安装与配置 一 下载 Android Studio最新的版本有一些BUG 不稳定 推荐安装老版本 在正式安装Android Studio之前 需要安装JDK 同学们可以参考下面这个博客
  • 链路追踪jaeger

    这里的链路指的是客户端向服务发起一个请求 该请求所经过的路线 也可以说是该请求经过的流量 例如 客户端发起一个下订单的请求其流量过程 request gt service gt order web gt order srv gt mysql
  • 《面向对象程序设计》教学资源汇总(2023)

    面向对象程序设计 教学资源汇总 2023 一 教学网站 blog csdn net bigleo 二 课堂派加课码 加课码 M274UN QRCode 三 课件下载 课件下载 长期有效 提取密码 tqucqx 四 本课程课件 二套 及实验
  • Sequence Modeling: Recurrent and Recursive Nets(3)

    CONTENTS Leaky Units and Other Strategies for Multiple Time Scales One way to deal with long term dependencies is to des
  • I2C软件模拟中的IO方向设置问题

    例程 STM32F103系列 I2C软件模拟实验 战舰例程 问题 下面两行关于 IO方向 的代码不太明白 之前一直看的例程都是库函数的代码 突然间冒出来两行寄存器的代码一时间手足无措 define SDA IN GPIOB gt CRL 0
  • Linux安装docker,在docker上安装mysql

    一 linux安装docker 1 下载安装包 下载地址 Index of linux centos 7 x86 64 stable Packages 我用的操作系统是centos7 根据自己操作系统找到相应版本下载 2 上传安装包 我用的
  • Docker学习笔记(三)-编写自己的Dockerfile

    Dockerfile是什么 Dockerfile用于快速创建自定义的Docker镜像 在上一篇博客中我们知道常见的三种创建image的手法 一般情况我们可以通过在基础镜像的基础上通过docker commit的方式生成新的image 但是对
  • IDEAweb项目文件夹没有蓝色小点

    问题原因 idea没有识别web文件夹为一个web项目 解决方案 需要手动选中该moudle 主动add web文件夹即可
  • centos7 kvm 设置桥接网卡br0

    centos kvm 设置桥接网卡br0 一 关于kvm的操作 1 查看CPU是否支持VT egrep vmx svm color always proc cpuinfo 2 检查内核模块是否加载 lsmod grep kvm 3 查看Se
  • Java的垃圾回收机制简述

    Java垃圾回收机制简述 一 由谁来做 Java的垃圾回收是由JVM Java虚拟机 来做的 二 什么时候做 1 CPU空闲的时候 自动进行回收 2 在堆内存存储满了之后 自动进行回收 3 程序调用System gc 主动尝试进行回收 三
  • Docker目录迁移

    问题 系统 根目录空间满 导致docker容器停用 df lh 显示已占用100 而 home目录还有1T空间未用 需求 将docker目录移动到 home目录 docker默认位置 var lib docker 查看Docker目录 do

随机推荐

  • STM32------ADC(模/数转换器)

    文章目录 前言 一 ADC定义 二 模拟信号 三 数字信号 四 模数转换的过程 五 特性 六 硬件电路 1 原理图 2 可调电阻用到的引脚 3 不同的引脚支持的ADC是不一样的 4 存储对齐方式 七 思考题 八 源码下载 总结 前言 STM
  • LeetCode题目笔记——1233. 删除子文件夹,写法妙哉妙哉

    文章目录 题目描述 题目难度 中等 方法一 排序 代码 C 代码 Python 方法二 字典树 总结 题目描述 你是一位系统管理员 手里有一份文件夹列表 folder 你的任务是要删除该列表中的所有 子文件夹 并以 任意顺序 返回剩下的文件
  • 记录“conda添加清华镜像源”问题--查看添加删除

    conda查看添加加删除清华镜像源 一 查看镜像源 二 添加新镜像源 三 删除旧镜像源 四 切回默认源 一 查看镜像源 查看conda镜像源的命令有两个 1 conda info 镜像源显示在channel URLs属性中 2 conda
  • 简述gitee使用及创建仓库及远程连接

    第一步 找到gitee网址 进入 Gitee 基于 Git 的代码托管和研发协作平台 第二步 点击右上角注册按钮 第三步 登录 第四步 点击右上角加号图标 下拉菜单的新建仓库 第五步 新建仓库 取一个仓库名 点击创建按钮 第六步 跳转至新建
  • Javascript制作简易计算器并实现其功能

    使用JS的函数功能 制作一个简易的计算器 包括加 减 乘 除的功能 并使用函数传参的方式完成计算器的功能 输入任意操作数 通过四则运算计算出结果 使用函数传参的方式完成计算器的功能 CSS部分
  • 至少有一位重复数字--动态规划

    leetcode 1012 至少有一位重复的数字 题目描述 给定正整数 N 返回小于等于 N 且具有至少 1 位重复数字的正整数的个数 示例1 输入 20 输出 1 解释 具有至少 1 位重复数字的正数 lt 20 只有 11 示例2 输入
  • python大数据分析代码案例

    查询用户余额代码案例 import sys import MySQLdb import pandas as pd optmap dbuser aduser dbpass 123654 dbhost 192 168 10 14 dbport
  • vite打包报错解决

    在tsconfig json中添加skipLibCheck true 已解决问题 请参考配置 compilerOptions target esnext useDefineForClassFields true module esnext
  • 【VS2010学习笔记】【错误调试】error LNK1123:转换到COFF期间失败;文件无效或者损坏

    在调试串口通信程序的过程中 将以前能够成功运行的程序在电脑上重新运行的时候 出现下面的错误 如下图所示 解决方法 连接器LNK是通过调用cvtres exe完成文件向coff格式的转换的 所以出现这种错误的原因就是cvtres exe出现了
  • 作为一名数据分析师,都需要掌握哪些工具?

    在身边偶尔会听到别人说做数据分析师 工具不是很重要 重要的是那些软实力 其实这一点我并不敢苟同 俗话说工欲善其事必先利其器 所以工具用的好 其实是可以极大的提升工作效率的 那么作为一名数据分析师 都需要掌握哪些工具呢 这里先列出使用频率最高
  • Photoshop神器插件Alpaca安装与使用指南

    Alpaca是一款Photoshop的插件 它可以自动生成各种图片 大大提高我们的工作效率 今天就为大家介绍如何安装和使用Alpaca这个好用的插件 一 下载并安装Alpaca 在Chrome浏览器中打开Alpaca的官网 点击join a
  • 03 链表的删除:删除链表中与目标值相等的元素(Linked List 链表)

    采用C语言完整实现 原链表为1 gt 2 gt 3 现在要删除与目标值2相等的元素 删除后 链表变为1 gt 3 include
  • Mac 抓包工具 Charles瓷器瓶破解版安装和破解教程

    1 环境 mac 10 12 6 charles 4 2最新的版本都可以 2 安装 官方地址 https www charlesproxy com 3 破解 可以参考CSDN博客上面的破解教程 比如修改charles jar文件或者替换掉原
  • 最新react面试题汇总--持续更新

    HTML篇 CSS篇 JS篇 Vue篇 React篇 微信小程序篇 前端面试题汇总大全 含答案超详细 HTML JS CSS汇总篇 持续更新 前端面试题汇总大全二 Vue TypeScript React 微信小程序 Webpack 汇总篇
  • 我想转行

    本人是一名机械电子专业的小硕 由于本科的年少无知 很是排斥互联网方面的东西 上了研究生之后才慢慢开始觉悟 觉得搞纯机械太没意思 像是一潭死水 一点活力也没有 所以萌生了搞计算机电子的想法 觉悟是有点慢哈 刚入学的时候 自学了C语言 C Pr
  • 【android studio】 the logging tag can be at most 23 characters

    今天写代码的时候 突然发现平时用的好好的Log竟然报错 提示信息为 the logging tag can be at most 23 characters was 27 当前Android studio版本为1 4 1 sdk版本为23
  • 数据分析案例--淘宝用户行为分析

    一 项目背景 对淘宝用户行为进行分析 从而探索淘宝用户的行为模式 具体指标包括 日PV和日UV分析 付费率分析 复购行为分析 漏斗流失分析和用户价值RFM分布 二 数据来源 https tianchi aliyun com dataset
  • Unity的C#编程教程_30_switch语句挑战2

    用不同按键 控制 cube 的颜色 1 红 2 黄 3 蓝 4 绿 使用 switch 语句 创建一个 C 脚本命名为 ColorChange 创建 public GameObject cube 变量 在 Unity 中把 cube 拖动进
  • 找出二维数组中的最大数和最小数,并输出下标

    include
  • 矩阵求导公式

    基本公式 Y A X gt DY DX A Y X A gt DY DX A Y A X B gt DY DX A B Y A X B gt DY DX B A 1 矩阵Y对标量x求导 相当于每个元素求导数后转置一下 注意M N矩阵求导后变