0、符号说明

本文会用到的几个量:
标量: c c \rm c
向量: n n n维列向量 x" role="presentation">xx\boldsymbol x, m m m维行向量 yT" role="presentation">yTyT\boldsymbol y^T

x=⎛⎝⎜⎜⎜⎜x1x2⋮xn⎞⎠⎟⎟⎟⎟ x = ( x 1 x 2 ⋮ x n )

\boldsymbol x= \left(\begin{matrix}x_1\\x_2\\\vdots\\x_n \end{matrix}\right)

yT=(y1,y2⋯ym) y T = ( y 1 , y 2 ⋯ y m )

\boldsymbol y^T=(y_1, y_2\cdots y_m)
矩阵: m×n m × n m\times n阶矩阵 A A \boldsymbol A

A=⎡⎣⎢⎢⎢⎢⎢a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn⎤⎦⎥⎥⎥⎥⎥ A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a m 1 a m 2 ⋯ a m n ]

\boldsymbol A= \left[ \begin{matrix}a_{11} & a_{12} & \cdots & a_{1n}\\a_{21} & a_{22} & \cdots & a_{2n}\\\vdots & \vdots & \ddots & \vdots\\a_{m1} & a_{m2} & \cdots & a_{mn}\\ \end{matrix} \right]

1、标量与向量之间的求导

1.1 标量对列向量

dcdx=⎛⎝⎜⎜⎜⎜⎜⎜dcdx1dcdx2⋮dcdxn⎞⎠⎟⎟⎟⎟⎟⎟(1) (1) d c d x = ( d c d x 1 d c d x 2 ⋮ d c d x n )

\frac{d\rm c}{d\boldsymbol x}= \left(\begin{matrix}\frac {d\rm c}{dx_1}\\\frac {d\rm c}{dx_2}\\\vdots\\\frac {d\rm c}{dx_n}\\ \end{matrix}\right)\tag 1

1.2 标量对行向量

dcdyT=(dcdy1,dcdy2⋯dcdym)(2) (2) d c d y T = ( d c d y 1 , d c d y 2 ⋯ d c d y m )

\frac{d\rm c}{d\boldsymbol y^T}=(\frac {d\rm c}{dy_1},\frac {d\rm c}{dy_2} \cdots \frac {d\rm c}{dy_m})\tag 2

1.3 标量对行、列向量求导的相互转化

(dcdx)T=dcdxT(3) (3) ( d c d x ) T = d c d x T

(\frac{d\rm c}{d\boldsymbol x})^T=\frac{d\rm c}{d\boldsymbol x^T}\tag 3

1.4 向量对标量

向量对标量的求导同前述原理类似, 即向量的每个分量对标量就行求导,最后所得依然是与原向量同维的向量,此处不再赘述。

2、标量与矩阵之间的求导

同样的,无论是标量对矩阵还是矩阵对标量都是遵循逐个分量进行的,与1.4所述同理,不再赘述

3、向量与向量之间的求导

3.1 行向量对列向量求导

1×m 1 × m 1\times m 维向量对 n×1 n × 1 n\times 1 维向量求导,最中得到 n×m n × m n\times m 阶矩阵

dyTdx=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢∂y1∂x1∂y1∂x2⋮∂y1∂xn∂y2∂x1∂y2∂x2⋮∂y2∂xn⋯⋯⋱⋯∂ym∂x1∂ym∂x2⋮∂ym∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥(4) (4) d y T d x = [ ∂ y 1 ∂ x 1 ∂ y 2 ∂ x 1 ⋯ ∂ y m ∂ x 1 ∂ y 1 ∂ x 2 ∂ y 2 ∂ x 2 ⋯ ∂ y m ∂ x 2 ⋮ ⋮ ⋱ ⋮ ∂ y 1 ∂ x n ∂ y 2 ∂ x n ⋯ ∂ y m ∂ x n ]

\frac{d\boldsymbol y^T}{d\boldsymbol x}= \left[ \begin{matrix}\frac{\partial y_1}{\partial x_1} & \frac{\partial y_2}{\partial x_1} & \cdots & \frac{\partial y_m}{\partial x_1}\\\frac{\partial y_1}{\partial x_2} & \frac{\partial y_2}{\partial x_2} & \cdots & \frac{\partial y_m}{\partial x_2}\\\vdots & \vdots & \ddots & \vdots\\\frac{\partial y_1}{\partial x_n} & \frac{\partial y_2}{\partial x_n} & \cdots & \frac{\partial y_m}{\partial x_n}\\ \end{matrix} \right]\tag 4
特殊地:

dxTdx=d(x1,x2,⋯xn)d⎛⎝⎜⎜⎜⎜x1x2⋮xn⎞⎠⎟⎟⎟⎟=⎡⎣⎢⎢⎢⎢⎢10⋮001⋮0⋯⋯⋱⋯00⋮1⎤⎦⎥⎥⎥⎥⎥=I(5) (5) d x T d x = d ( x 1 , x 2 , ⋯ x n ) d ( x 1 x 2 ⋮ x n ) = [ 1 0 ⋯ 0 0 1 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 1 ] = I

\frac{d\boldsymbol x^T}{d\boldsymbol x}= \frac{d(x_1, x_2, \cdots x_n)} {d\left(\begin{matrix}x_1\\x_2\\\vdots\\x_n \end{matrix}\right)}= \left[ \begin{matrix}1 & 0 & \cdots & 0\\0 & 1 & \cdots & 0\\\vdots & \vdots & \ddots & \vdots\\0 & 0 & \cdots & 1\\ \end{matrix} \right]=\boldsymbol I\tag 5

d(Ax)Tdx=d(∑ni=1a1ixi,∑ni=1a2ixi,⋯,∑ni=1amixi,)dx=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢∂∑ni=1a1ixi∂x1∂∑ni=1a1ixi∂x2⋮∂∑ni=1a1ixi∂xn∂∑ni=1a2ixi∂x1∂∑ni=1a2ixi∂x2⋮∂∑ni=1a2ixi∂xn⋯⋯⋱⋯∂∑ni=1amixi∂x1∂∑ni=1amixi∂x2⋮∂∑ni=1amixi∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢a11a12⋮a1na21a22⋮a2n⋯⋯⋱⋯am1am2⋮amn⎤⎦⎥⎥⎥⎥⎥=AT(6) d ( A x ) T d x = d ( ∑ i = 1 n a 1 i x i , ∑ i = 1 n a 2 i x i , ⋯ , ∑ i = 1 n a m i x i , ) d x = [ ∂ ∑ i = 1 n a 1 i x i ∂ x 1 ∂ ∑ i = 1 n a 2 i x i ∂ x 1 ⋯ ∂ ∑ i = 1 n a m i x i ∂ x 1 ∂ ∑ i = 1 n a 1 i x i ∂ x 2 ∂ ∑ i = 1 n a 2 i x i ∂ x 2 ⋯ ∂ ∑ i = 1 n a m i x i ∂ x 2 ⋮ ⋮ ⋱ ⋮ ∂ ∑ i = 1 n a 1 i x i ∂ x n ∂ ∑ i = 1 n a 2 i x i ∂ x n ⋯ ∂ ∑ i = 1 n a m i x i ∂ x n ] (6) = [ a 11 a 21 ⋯ a m 1 a 12 a 22 ⋯ a m 2 ⋮ ⋮ ⋱ ⋮ a 1 n a 2 n ⋯ a m n ] = A T

\begin{align*} \frac {d(\boldsymbol{Ax})^T}{d\boldsymbol x}&= \frac {d(\sum_{i=1}^na_{1i}x_i, \sum_{i=1}^na_{2i}x_i,\cdots , \sum_{i=1}^na_{mi}x_i,)}{d\boldsymbol x}\\ &=\left[ \begin{matrix}\frac{\partial {\sum_{i=1}^na_{1i}x_i}}{\partial x_1} & \frac{\partial {\sum_{i=1}^na_{2i}x_i}}{\partial x_1} & \cdots & \frac{\partial{\sum_{i=1}^na_{mi}x_i}}{\partial x_1}\\\frac{\partial {\sum_{i=1}^na_{1i}x_i}}{\partial x_2} & \frac{\partial {\sum_{i=1}^na_{2i}x_i}}{\partial x_2} & \cdots & \frac{\partial{\sum_{i=1}^na_{mi}x_i}}{\partial x_2}\\\vdots & \vdots & \ddots & \vdots\\\frac{\partial {\sum_{i=1}^na_{1i}x_i}}{\partial x_n} & \frac{\partial {\sum_{i=1}^na_{2i}x_i}}{\partial x_n} & \cdots & \frac{\partial{\sum_{i=1}^na_{mi}x_i}}{\partial x_n}\\ \end{matrix} \right]\\ &=\left[ \begin{matrix}a_{11} & a_{21} & \cdots & a_{m1}\\a_{12} & a_{22} & \cdots & a_{m2}\\\vdots & \vdots & \ddots & \vdots\\a_{1n} & a_{2n} & \cdots & a_{mn}\\ \end{matrix} \right]=\boldsymbol A^T\tag 6 \end{align*}

3.2 列向量对行向量求导

m×1 m × 1 m\times 1 维向量对 1×n 1 × n 1\times n 维向量求导,最中得到 m×n m × n m\times n 阶矩阵

dydxT=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢∂y1∂x1∂y2∂x1⋮∂ym∂x1∂y1∂x2∂y2∂x2⋮∂ym∂x2⋯⋯⋱⋯∂y1∂xn∂y2∂xn⋮∂ym∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥(7) (7) d y d x T = [ ∂ y 1 ∂ x 1 ∂ y 1 ∂ x 2 ⋯ ∂ y 1 ∂ x n ∂ y 2 ∂ x 1 ∂ y 2 ∂ x 2 ⋯ ∂ y 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ y m ∂ x 1 ∂ y m ∂ x 2 ⋯ ∂ y m ∂ x n ]

\frac{d\boldsymbol y}{d\boldsymbol x^T}= \left[ \begin{matrix}\frac{\partial y_1}{\partial x_1} & \frac{\partial y_1}{\partial x_2} & \cdots & \frac{\partial y_1}{\partial x_n}\\\frac{\partial y_2}{\partial x_1} & \frac{\partial y_2}{\partial x_2} & \cdots & \frac{\partial y_2}{\partial x_n}\\\vdots & \vdots & \ddots & \vdots\\\frac{\partial y_m}{\partial x_1} & \frac{\partial y_m}{\partial x_2} & \cdots & \frac{\partial y_m}{\partial x_n}\\ \end{matrix} \right]\tag 7
对比式(4)(7)结果,不难发现二者互为转置,故有:

dydxT=(dyTdx)T d y d x T = ( d y T d x ) T

\frac{d\boldsymbol y}{d\boldsymbol x^T}= \biggl(\frac{d\boldsymbol y^T}{d\boldsymbol x}\biggr)^T

4、向量内积对向量的求导

对于同维度的两个列向量 u u \boldsymbol u 和 v v \boldsymbol v,二者的向量内积对任意维列向量 x x \boldsymbol x 求导有:

d(uTv)dx=d(uT)dxv+d(vT)dxu d ( u T v ) d x = d ( u T ) d x v + d ( v T ) d x u

\frac{d(\boldsymbol u^T\boldsymbol v)}{d \boldsymbol x}=\frac{d(\boldsymbol u^T)}{d\boldsymbol x}\boldsymbol v+\frac{d(\boldsymbol v^T)}{d\boldsymbol x}\boldsymbol u
根据上式结论可以得到:

d(xTx)dx=d(xT)dxx+d(xT)dxx=2Ix=2x(8) d ( x T x ) d x = d ( x T ) d x x + d ( x T ) d x x = 2 I x (8) = 2 x

\begin{align*} \frac{d(\boldsymbol x^T\boldsymbol x)}{d \boldsymbol x}&=\frac{d(\boldsymbol x^T)}{d\boldsymbol x}\boldsymbol x+\frac{d(\boldsymbol x^T)}{d\boldsymbol x}\boldsymbol x\\ &=2\boldsymbol I\boldsymbol x\\ &=2\boldsymbol x\tag 8 \end{align*}

d(xTx)dy=d(xT)dyx+d(xT)dyx=2d(xT)dyx(9) d ( x T x ) d y = d ( x T ) d y x + d ( x T ) d y x (9) = 2 d ( x T ) d y x

\begin{align*} \frac{d(\boldsymbol x^T\boldsymbol x)}{d \boldsymbol y}&=\frac{d(\boldsymbol x^T)}{d\boldsymbol y}\boldsymbol x+\frac{d(\boldsymbol x^T)}{d\boldsymbol y}\boldsymbol x\\ &=2\frac{d(\boldsymbol x^T)}{d\boldsymbol y}\boldsymbol x\tag 9 \end{align*}

参考文献:

矩阵、向量求导法则

矩阵求导术

标量、向量、矩阵求导相关推荐

  1. 标量/向量/矩阵求导方法

    这篇博客源于在看论文时遇到了一个误差向量欧氏距离的求导,如下: 在看了一堆资料后得出以下结论: 这个结论是怎么来的呢?这就涉及标量/向量/矩阵的求导了.由于标量.向量都可以看做特殊的矩阵,因此就统称为 ...

  2. 复数 标量/向量/矩阵 求导

    Wirtinger derivative: 对复标量求导 Wirtinger derivative: 令 z=x+jyz=x+jyz=x+jy,则 f(z)f(z)f(z) 对 zzz 和 zzz 的 ...

  3. 矩阵对矩阵求导,标量对矩阵求导,链式法则

    Z∈R,Ym∗n,Xa∗bZ \in R,Y_{m*n},X_{a*b} Z∈R,Ym∗n​,Xa∗b​dZdX=dZdY∗dYdX\frac{dZ}{dX}=\frac{dZ}{dY}*\frac{ ...

  4. 【必读】3分钟带你了解标量对矩阵求导方法

    这是个人学习笔记,不是原创.来源请查看 "参考文档" 文章目录 标量对矩阵的求导 基础推导 复合函数 例题 参考文档 标量对矩阵的求导 基础推导 定义 标量f对矩阵X的导数,定义为 ...

  5. 矩阵/向量/标量间相互求导

    矩阵.向量都可以表示成张量的形式,向量是矩阵的特殊形式,按实际应用可分为标量对向量求导,标量对矩阵求导.向量对向量求导.矩阵对标量求导.矩阵对向量求导.矩阵对矩阵求导等,在深度学习的反向传播(BP)中 ...

  6. 线性代数之 矩阵求导(2)标量函数求导基本法则与公式

    线性代数之 矩阵求导(2)基本法则与公式 前言 基本约定 标量对向量求导 基本法则 公式 标量对矩阵求导 基本法则 公式 后记 前言 上篇矩阵求导(1)解决了求导时的布局问题,也是矩阵求导最基础的求导 ...

  7. 向量转置的怎么求导_机器学习中的向量求导和矩阵求导

    在机器学习的各种关于向量或者矩阵的求导中,经常会出现各种需要转置或者不需要转置的地方,经常会看得人晕头转向.今天我对机器学习中关于这部分的常识性处理方法进行整理并记录下来方便大家参考. 一些约定 首先 ...

  8. 二阶矩阵转置怎么求_矩阵求导术(下)

    本文承接上篇 https://zhuanlan.zhihu.com/p/24709748,来讲矩阵对矩阵的求导术.使用小写字母x表示标量,粗体小写字母 表示列向量,大写字母X表示矩阵.矩阵对矩阵的求导 ...

  9. 矩阵求导术(上、下)

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 矩阵求导的技术,在统计学.控制论.机器学习等领域有广泛的应用.鉴于我看过的一些资料或言 ...

  10. 矩阵求导公式,及MathJax公式编辑

    最近学到线性回归中要用到向量,矩阵求导,所以就搜集了下资料,总结如下: 矩阵求导有两种布局: 分子布局(numerator layout) 分母布局(denominator layout) 下面用向量 ...

最新文章

  1. 2022-2028年中国电动牙刷行业深度调研及投资前景预测报告(全卷)
  2. matlab 注意事项
  3. bug之bootstrap switch Uncaught TypeError: Cannot read property 'apply' of undefined
  4. [网络开发]同步与线程安全方案
  5. db2 本地db 到实例_如何登录到FreeCodeCamp的本地实例
  6. Java 面试 1 小时,我看出了和月薪 3w 的差距
  7. admysqlslap压力测试
  8. SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型
  9. 林锐:《高质量的C/C++编程》
  10. 微信如何收发企业邮箱邮件
  11. 基于QT和DCMTK的Dicom 图像浏览器---目录
  12. TalkingData的移动大数据探索:联合Kochava发布移动广告监测国际版
  13. h5将数字翻译为大写汉字_js 将阿拉伯数字翻译成中文的大写数字
  14. 初谜无钢圈内衣,女性健康的好选择
  15. 如何在国内开设美元账户进行美元投资?
  16. Android基本常识、技术
  17. 个人电脑做外网服务器(一)
  18. 黑客攻击五种手段,其实要避免也不难,终究离不开骗术
  19. parallel desktop 17 安装win7 科来抓包 无网络适配器可用
  20. Sqlite3小结(小型数据库中增删改查的操作)

热门文章

  1. 什么是依赖注入,vue的依赖注入如何实现的
  2. Android.AsyncTask
  3. zookeeper介绍
  4. MATLAB数组相除
  5. 海外区块链投融资持续火热 | 产业区块链发展周报
  6. libGDX的启动类和配置
  7. 基于jquery的搜索框输入提示
  8. 小小知识点(三十七)OFDM和OFDMA的区别以及OFDMA与SC-FDMA的区别
  9. 使用LaTeX输入矩阵
  10. 第一个C编译器的诞生图