定义

(1) 向量对标量求导 矩阵对标量求导





我们可以看到上述求导过程实际上就是不同函数对变量求导,然后按照向量或者矩阵的形式排列,注意这里结果的结构应该与函数的结构保持一致

(2)标量对向量求导 标量对矩阵求导





这里的理解使同一个函数对不同的变量求导,然后注意结果要和变量的形式保持一致,比如对向量求导,向量如果是$n \times 1$的列向量,结果也是$n \times 1$的列向量,如果是行向量结果也是行向量,如果是$m \times n$的矩阵,结果也是同样大小的矩阵

(3)向量对向量求导





我们可以将上述过程看作函数向量中的每个元素对变量向量求导,这样就是标量对向量求导,然后再把所有结果搭成一个矩阵

当x是行向量时,标量对向量求导得到一个$1 \times n$的行向量,因为有m个函数,所以有m个行向量,最后矩阵就是$m \times n$

当x是列向量时,标量对向量求导得到一个$n \times 1$的列向量,因为有m个函数,所以有m个列向量,最后矩阵就是$n \times m$

重要结论

应用上面的定义,我们可以得到一些十分有用的结论:





应用

下面推导一下在单应变换中使用拉格朗日乘子法得到的函数的驻点的推导:



这个式子:

$\frac{\partial \left [ \left | Ax \right | ^{2 }{2} + \lambda \left ( 1 - \left | x\right | ^{2 } \right ) \right ] }{\partial x} = 0$

我们把它展开可以得到:

$\frac{\partial\left ( Ax\right ) ^{T}Ax }{\partial x} - \lambda \frac{\partial x^{T}x }{\partial x} = 0 $

即$\frac{\partial x^{T} A^{T}Ax }{\partial x} - \lambda \frac{\partial x^{T}x }{\partial x} = 0 $

对于第一项我们应用重要结论中的第六条可以得到:

$\frac{\partial x^{T} A^{T}Ax }{\partial x} = 2 A^{T}A x$

第二项应用第二条得到:

$\lambda \frac{\partial x^{T}x }{\partial x} = 2\lambda x$

代回原式即得:

$A^{T}A x = \lambda x$

cv2 数学基础---矩阵微分的更多相关文章

  1. 矩阵微分(matrix derivatives)

    关于矩阵求导,得到的导数则是矩阵形式:关于矢量求导,得到的导数则是矢量形式:关于标量求导,得到的仍是标量形式.也即关于谁求导,得到的导数形式便和谁的维度信息一致. fx = f(x) grad = n ...

  2. 矩阵微分与向量函数Taylor展开

    参考博客:https://blog.csdn.net/a_big_pig/article/details/78994033

  3. 《神经网络的梯度推导与代码验证》之FNN(DNN)的前向传播和反向推导

    在<神经网络的梯度推导与代码验证>之数学基础篇:矩阵微分与求导中,我们总结了一些用于推导神经网络反向梯度求导的重要的数学技巧.此外,通过一个简单的demo,我们初步了解了使用矩阵求导来批量 ...

  4. 《神经网络的梯度推导与代码验证》之CNN的前向传播和反向梯度推导

    在FNN(DNN)的前向传播,反向梯度推导以及代码验证中,我们不仅总结了FNN(DNN)这种神经网络结构的前向传播和反向梯度求导公式,还通过tensorflow的自动求微分工具验证了其准确性.在本篇章 ...

  5. 《神经网络的梯度推导与代码验证》之vanilla RNN的前向传播和反向梯度推导

    在本篇章,我们将专门针对vanilla RNN,也就是所谓的原始RNN这种网络结构进行前向传播介绍和反向梯度推导.更多相关内容请见<神经网络的梯度推导与代码验证>系列介绍. 注意: 本系列 ...

  6. 《神经网络的梯度推导与代码验证》之LSTM的前向传播和反向梯度推导

    前言 在本篇章,我们将专门针对LSTM这种网络结构进行前向传播介绍和反向梯度推导. 关于LSTM的梯度推导,这一块确实挺不好掌握,原因有: 一些经典的deep learning 教程,例如花书缺乏相关 ...

  7. coursera机器学习笔记-多元线性回归,normal equation

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  8. 机器学习 —— 基础整理(七)前馈神经网络的BP反向传播算法步骤整理

    这里把按 [1] 推导的BP算法(Backpropagation)步骤整理一下.突然想整理这个的原因是知乎上看到了一个帅呆了的求矩阵微分的方法(也就是 [2]),不得不感叹作者的功力.[1] 中直接使 ...

  9. 从线性模型(linear model)衍生出的机器学习分类器(classifier)

    1. 线性模型简介 0x1:线性模型的现实意义 在一个理想的连续世界中,任何非线性的东西都可以被线性的东西来拟合(参考Taylor Expansion公式),所以理论上线性模型可以模拟物理世界中的绝大 ...

  10. 吴恩达机器学习CS229课程笔记学习

    监督学习(supervised learning) 假设我们有一个数据集(dataset),给出居住面积和房价的关系如下: 我们以居住面积为横坐标,房价为纵坐标,组成数据点,如(2104, 400), ...

随机推荐

  1. 从GaussDB(DWS)的技术演进,看数据仓库的积淀与新生

    摘要:随着云计算的兴起和渗透,云数仓成为了数仓技术演进的新阶段,并且逐渐成为了众多企业的共同选择. 本文分享自华为云社区<从GaussDB(DWS)的技术演进,看数据仓库的积淀与新生>,作 ...

  2. 计算机COM口数据测试

    计算机COM口数据测试一.基本使用流程 程序需要以管理员身份运行,COM口回路测试需短接2,3pin,测试时候使用控制台,配置测试相关路径,并在测试完成后 1.测试配置路径D:\bigdata\INI ...

  3. Python数据分析易错知识点归纳(四):Matplotlib

    四.matplotlib 基本特性 import matplotlib.pyplot as plt import numpy as np x = np.linspace(-3, 3, 50) y1 = ...

  4. Object.equals 和 String.equals的区别

    一.  源码展示: 1. Object.equals: ①引用类型地址值比较,直接返回结果:true || false public class Object { public boolean equ ...

  5. Lucene.Net  -全文检索引擎

    简介 Lucene.Net只是一个全文检索开发包,不是一个成型的搜索引擎,它的功能就是负责将文本数据按照某种分词算法进行切词,分词后的结果存储在索引库中,从索引库检索数据的速度灰常快 版本使用 3.0 ...

  6. Linux 命令:rpm查询选项

    rpm(8) System Manager's Manual rpm(8) 名称 rpm - RPM 软件包管理器 查询选项 rpm的查询命令通常的格式如下: rpm -q [query-option ...

  7. 2021-11-17 WPF初识

    StackPanel容器:默认竖直排列,Orientation="Horizontal"横向排列,超过就不会显示 wrapPanel:超过会自动换行 设置样式: <Windo ...

  8. git报错:error: Your local changes to the following files would be overwritten by checkout:

    原因 原本想切换到dev分支,拉取远程dev分支,但我将分支上的数据修改了,此时切换分支报错 解决方案 方法一: 存到暂存区 # 暂存 git add . git stash 之后切换分支到dev,执 ...

  9. VUE3、ElementPlus 重构若依vue2 表单构建功能

    Vue3 + ElementPlus + Vite 重构 若依Vue2 表单构建功能 若依官方的Vue3 版本发布已经有段时间了,就是这个表单构建功能一直没有安排计划去适配到Vue3! 前段时间公司需 ...

  10. 关于 ModelScope 的视频 “AI 换脸” 优化方案

    前言 前面一文,初步完成了一下 "AI 换脸" 视频处理程序.完成了视频拆帧,拆帧图片人脸融合,已经音频提取和最后的人脸融合图片的整合(也就是将图片和音频组成视频).但是在人脸融合 ...