矩阵运算_SLAM中用到的矩阵计算_基本公式及知识汇总
目录
1. 矩阵转置
2. 矩阵正定
3. 协方差矩阵
4. 矩阵求导
4.1 矩阵微分的运算法则
4.2 矩阵迹的运算法则
4.3 标量对矩阵的求导
4.3.1 矩阵导数与微分的联系
4.3.2 例1:标量 f 对矩阵 Y=AXB的导数
4.3.3 例2:标量 f=a^T X b 对矩阵X的导数
4.3.4 例3:标量 f=△x^T H △x 对向量△x的导数
4.4 矩阵对矩阵的求导
5. 雅克比矩阵J
5.1 定义
5.2 举个例子
5.3 意义及应用
6. Hessian矩阵
6.1 举个例子
6.1.1 一元函数求极值点
6.1.2 多元函数中求极值点
6.2 Hessian矩阵求极值
6.3 Hessian矩阵的性质
6.4 Hessian矩阵的应用
参考
1. 矩阵转置相关
设A和B为两个mxn的矩阵,为一个常数,则:
2. 矩阵正定相关
[正定矩阵定义]
给定一个大小为 nxn 的实对称矩阵A,若对于任意长度为n的非零向量x,有
恒成立,则矩阵A是一个正定矩阵。若是上式 ≥ 0,则A是半正定矩阵。
[性质]
对于任意的矩阵 A ≠0,矩阵为正定或半正定矩阵。
3. 协方差矩阵相关
参考:SLAM_信息矩阵&协方差矩阵
4. 矩阵求导相关
参考:矩阵求导术(上)
矩阵的求导不能简单地使用标量的求导法则进行,而是从矩阵的微分和矩阵的迹的性质推导而来的。所以一些矩阵的微分运算和迹的性质需要熟知。
4.1 矩阵微分的运算法则
设矩阵X、Y维度(至少在加减运算中应该)相同,则
- 加减法:
- 两个矩阵和的微分=两个矩阵分别微分的和
- 两矩阵乘积的微分=两矩单独分别微分后乘另一矩再求和
- 矩阵转置的微分=其微分的转置
- 迹:
- 矩阵迹的微分=其微分的迹
- 逆:
- 矩阵逆的微分,可由d(XY)公式退出
- 行列式:
- 矩阵对应的行列式的微分=其伴随矩阵乘以其微分后的迹
- 若X可逆,又可写成
- 矩阵对应的行列式的微分=其伴随矩阵乘以其微分后的迹
- 逐元素相乘:
- 两个元素逐元素相乘的微分=...
- 逐元素函数:
- ,
- 其中, 是逐元素标量函数运算,
- 是逐元素求导
- 例子:
- ,
4.2 矩阵迹的运算法则
设 a 为一个标量,矩阵A 、B维度相同,则
- 标量的迹=标量本身
- 矩阵转置前后迹相等
- 两个矩阵和的迹=矩阵各自的迹再求和
- 矩阵在求迹运算中,交换顺序对应乘积的迹不变,
- 其中A与尺寸相同,两侧都等于.
- , 其中A/B/C尺寸相同。等式两侧都等于.
- 另外,参考 矩阵运算_迹的相关性质
4.3 标量对矩阵的求导
对于标量函数f, 其对矩阵X的导数表示为 .
4.3.1 矩阵导数与微分的联系
标量f的微分,等于该标量f对矩阵X的导数的转置乘以该矩阵X的微分dX然后再求迹(当成定义,记住即可),如下式所示:
对于标量函数f, 其对矩阵X的导数经加减乘法、逆、行列式、逐元素函数等运算构成,则使用相应的运算法则对f求微分,再使用迹技巧给df套上迹并将其它项交换至dX左侧,对照导数与微分的联系,即能得到导数。
4.3.2 例1:标量 f 对矩阵 Y=AXB的导数
已知标量 f,矩阵 , 则 f 对矩阵 的导数是什么?
从微分入手建立复合法则:先写出式,再将dY用dX表示出来代入,并使用迹技巧将其他项交换至dX左侧,即可得到 。即
所以可得:
其中 ,因为 dA=dB=0
4.3.3 例2:标量 f=a^T X b 对矩阵X的导数
已知 ,求 。其中 a是mx1列向量,X是mxn矩阵,b是nx1行向量,f是标量。
所以: , a、b是常量,所以 da=db=0
又因为:
所以:, 对比矩阵导数与微分的定义可知:
4.3.4 例3:标量 f=△x^T H △x 对向量△x的导数
SLAM中的应用:已知标量 ,其中H为hessian矩阵(设为nxn,为对称矩阵),△x为偏移变量(向量nx1),
求标量 f对偏移量△x 的导数
因为: ,
此处H为常量,所以 dH=0;
又因为: ,, , ,
所以:
所以:, 所以可得:
4.4 矩阵对矩阵的求导
参考:矩阵求导术(下) 矩阵对数是怎么算的
例子:vec(A)表示对矩阵进行向量化操作,即把所有元素排成一行, 表示Kronecker积(张量积),同样的也是先定义微分形式,然后对照矩阵导数和微分的关系,得出矩阵对矩阵的导数。
5. 雅克比矩阵J
参考:雅克比矩阵理解,雅克比矩阵记录
在向量的微积分中,雅克比矩阵是一个一阶偏导数排列成的矩阵,其行列式是雅克比行列式。雅克比矩阵类似于多元函数的导数。
5.1 定义
一种分子布局方式的定义:
由于矩阵描述了向量空间中的运动变换,而雅克比矩阵看作是将点 ( x1 , . . . , xn )转换到点 ( y1 , . . . , yn ),或者说是从一个 n 维的欧氏空间转换到 m 维的欧氏空间。 注意,在某些约定中,雅可比矩阵是上述矩阵的转置(分母布局)。
感性理解:
在一维几何上,由于一维上度量dx可以反映任意自由度为1的变量的全部特征,所述一阶微分不变性。可以想象在一个绳子上前进(一个维度),移动路程实际上只要一个变量即可确定。
在二维的情况下,可以理解为一种平面之间的投影关系。
任意一组非直线参数下的面积投影到平面正交参数上,可写成雅克比矩阵的行列式。(来源链接)
理论说明:微分其实就是线性化,导数其实是线性空间之间的线性变换,雅克比矩阵本质上就是导数。如果这么说,积分换元需要 求原本元对新元的雅克比矩阵行列式 就说得通了。如下t=f(u,v) s=g(u,v) ,det||表示求里面雅克比矩阵的行列式,d表示微分。
比如,映射 在x处的导数 就是 M 在 x 处的切空间 到 N 在 f(x) 处的切空间 之间的线性映射。(M为x的向量空间,N为f(x)向量空间)
切空间都是矢量空间,都有基底,这个线性变换就是一个矩阵。因此雅克比矩阵实质上是切空间之间的基底之间的线性变换,因而积分中变换坐标时,会在前面乘以一个雅克比矩阵的行列式,行列式就是一个数值了,积分本身也是数值计算,而不是矢量计算吧,所以会是行列式。
5.2 举个例子
5.3 意义及应用
如果 是 中的一个点,函数F在 处可微分,成为一个线性映射,即为 F在点 附近的最优线性逼近(局部线性),即当 足够靠近 时,存在
雅克比矩阵的意义:可以体现出一个可微方程在给定点的最优线性逼近,因此雅克比行列式可以用来求解点的微分方程组的近似解。
一阶泰勒展开:
雅克比矩阵是多元向量值函数(vector-valued multivariate funciton) 泰勒展开的一阶项系数。
一阶项 中的乘法是矩阵乘法。高阶项中的乘法涉及到张量乘法。
可以对比,当m=1时候,f退化为多元标量值函数(scalar-valued multivaiate function) ,这个时候雅克比矩阵退化为行向量,是梯度的转置
二阶泰勒展开:
这时候一阶项中的乘法是矩阵乘法,二阶项中的乘法也是矩阵乘法。
这里矩阵值函数 被称为海森矩阵(Hessian matrix,又称 黑塞矩阵、海瑟矩阵、海塞矩阵)。类似地,高阶项中的乘法涉及到张量乘法。
应用:如 高斯牛顿法求解最小二乘问题
6. Hessian矩阵
标量(或者向量)对矩阵的二阶导数,又称Hessian矩阵(或称黑森矩阵、海森矩阵)。设X为mxn矩阵,f为以标量, 为标量 f 对矩阵 X 的一阶导数,则f 对矩阵 X 的Hessian矩阵为:
先求一阶导数,再求一次导数得到Hessian矩阵。
6.1 举个例子
6.1.1 一元函数求极值点
例如函数
通常先求其一阶导数,根据费马定理极值点处的一阶导数一定等于0。但这仅仅是一个必要条件而非充分条件。对于f(x)=x^2 来说,函数的确在一阶导数为0点取得了极值。
但对于下面函数来说:
显然只检查一阶导数是不能下此结论的。
这时需要再求一次导,如果二阶导数f’’ (x)<0,那么说明函数在该点取得局部极大值;如果二阶导数f’’ (x)>0,则说明函数在该点取得局部极小值;如果f’’ (x)=0,则结果仍然是不确定的,就不得不通过其它方式来确定函数的极值性。
6.1.2 多元函数中求极值点
如果要在多元函数中求极值点,方法与此类似。以三个变量函数 f
来作为示例。首先,对于函数中的每个变量分别求偏导数,这时可知函数的极值点可能出现在哪里,即
接下来,需要继续求二阶导数,此时包含混合偏导数的情况一共有9个,如果用矩阵形式来表示,则可得到
这个矩阵就称为Hessian矩阵。当然上面给出的仅仅是一个三阶的Hessian矩阵。其它的海塞矩阵与此类似。当一元函数的二阶导数等于0时,并不能确定函数在该点的极值性。
类似的,面对Hessian矩阵,仍然存在无法判定多元函数极值性的情况,即当Hessian矩阵的行列式为0时,无法确定函数是否能取得极值。甚至可能会得到一个鞍点,也就是一个即非极大值也非极小值的点。
6.2 Hessian矩阵求极值
基于Hessian矩阵,可以判断多元函数的极值情况,结论如下:
- (1)如果是正定矩阵,则临界点处是一个局部极小值
- (2)如果是负定矩阵,则临界点处是一个局部极大值
- (3)如果是不定矩阵,则临界点处不是极值
如何判断一个矩阵是否是正定的,负定的,还是不定的?
一个最常用的方法就是借助其顺序主子式:
- 实对称矩阵为正定矩阵的充要条件是各顺序主子式都大于0。
- 顺序主子式:
当然这个判定方法的计算量比较大。对于实二次型矩阵还有一个判定方法:
- 实二次型矩阵为正定二次型的充要条件是矩阵的特征值全大于0。
- 为负定二次型的充要条件是矩阵的特征值全小于0,
- 否则是不定的。
6.3 Hessian矩阵的性质
6.4 Hessian矩阵的应用
Hessian Matrix,它有着广泛的应用,如在牛顿方法、求极值以及边缘检测、消除边缘响应等方面的应用,图像处理里,可以抽取图像特征,在金融里可以用来作量化分析。
1. 用Hessian矩阵提出图片的关键特征
2. 用Hessian矩阵进行量化分析
3. 边缘检测以及边缘响应消除 (如SIFT算法中的边缘响应的消除可根据hessian矩阵进行判定)
牛顿法
一般来说, 牛顿法主要应用在两个方面, 1, 求方程的根; 2, 最优化。
牛顿法是收敛速度最快的方法,其缺点在于要求Hessian矩阵(二阶导数矩阵)。牛顿法大致的思路是采用泰勒展开的二阶近似。若Hessian矩阵是正定的,函数的局部最小值可以通过使上面的二次型(比如三个变量的二次型:)的一阶导数等于0来获取。
hreto——0309 以14讲为大纲,再看最小二乘法优化!
参考
SLAM基础——聊一聊信息矩阵
Hessian 矩阵(黑塞矩阵)以及hessian矩阵奇异的用法
矩阵求导术(上)
Ch4. Least Squares - An Informal Introduction - Sensing and State Estimation II - uni-bonn
雅克比矩阵的简单理解(手稿)
雅克比矩阵理解
雅可比矩阵和雅可比行列式
Hessian矩阵(黑塞矩阵)
Hessian矩阵
矩阵运算_SLAM中用到的矩阵计算_基本公式及知识汇总相关推荐
- powershell设置了权限依旧无法运行脚本_没用的知识汇总+1 Windows 权限维持汇总...
文中所提到的利用方式均在WIN10与2016中进行了测试.文中所提技术仅用于内部测试,请勿进行非法利用. Windows 启动目录: Windows 启动目录分为,用户启动目录,与系统启动目录. 用户 ...
- 图灵机二义性_编译原理知识汇总
编译原理 第一章 引言 1.从面向机器的语言到面向人类的语言 汇编指令:用符号表示的指令被称为汇编指令 汇编语言:汇编指令的集合称为汇编语言 2.语言之间的翻译 转换(也被称为预处理):高级语言之间的 ...
- 计算机基础知识_计算机基础知识汇总
计算机专业的那六大件:组成原理,操作系统,数据库,编译原理,计算机网络,数据结构, 其次还得加上分布式的基础知识, 因为现在的系统都变成分布式的了.如果你是做应用层开发的,那几门课程中的有些内容和日常 ...
- 计算机术语中CPU是指______,试题题库_计算机基础知识考试试卷全套.doc
试题题库_计算机基础知识考试试卷全套.doc 第一部分 计算机基础知识 (一)单项选择题 1. 世界上第一台计算机使用的物理器件是( ). A)电子管 B)继电器 C)晶体管 D)集成电路 2. 第四 ...
- dell电脑计算机专业,戴尔Dell专用英语_电脑基础知识_IT计算机_专业资料.doc
戴尔Dell专用英语_电脑基础知识_IT计算机_专业资料 英文縮寫英文全名中文字義5COne methodology of solving problem, 5C including: Charact ...
- 专题_期权交易必备知识
原创博客地址,专题_期权交易必备知识 关注名词:到期日,行权,自对冲 欧式美式 行权灵活性不同:欧式期权是只能到期日当天才能行权交割:美式期权是在到期日之前的任何一天都可以行权交割. 由于有时间价值的 ...
- 计算机word文档无法工作,word无法打开(WORD文档打不开_解决方法_电脑基础知识_IT/计算机_专业资料)...
word无法打开(WORD文档打不开_解决方法_电脑基础知识_IT/计算机_专业资料),哪吒游戏网给大家带来详细的word无法打开(WORD文档打不开_解决方法_电脑基础知识_IT/计算机_专业资料) ...
- excel宏计算机,excel宏教程_电脑基础知识_IT计算机_专业资料.doc
excel宏教程_电脑基础知识_IT计算机_专业资料 Excel宏教程 一.?? 选中单个单元格 Range("").Select ? 例:Range("C9" ...
- 计算机PPT教材教法,小语教材教法讲义课件_电脑基础知识_it计算机_专业资料.ppt...
小语教材教法讲义课件_电脑基础知识_it计算机_专业资料 绪 论 课堂观察的内涵 课堂观察,顾名思义,就是通过观察者对课 堂的运行状况进行记录.分析和研究,并在此基 础上谋求师范生课堂学习的改善.促进 ...
- 计算机专业高级知识,高级选择_电脑基础知识_IT计算机_专业资料
高级选择_电脑基础知识_IT计算机_专业资料 (79页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 21.9 积分 1.注水泥塞丿施T时,从配水泥浆到反洗 ...
最新文章
- Java IO系列之字节流拷贝文件性能比较
- String.Format格式说明
- ant models 内获取 url 的参数传递到组件
- 区块链软件公司用区块链技能重塑科学出书社
- 偶然发现静态函数与性能一例
- CentOS与RedHat的关系
- 现代密码学4.2--消息验证码/MAC
- 认知计算机语言学,什么是认知语言学
- iOS开发内购图文教程
- bettertouchtool闪退_BetterTouchTool for Mac 3.238 无闪退 触控板增强工具
- java build返回空值_OKHTTP拦截器不断返回空值并使应用程序崩溃
- worker mpm php,Ubuntu 16.04 安裝 Apache2.4 + mpm_worker + fastcgi + php7.0
- git commit撤销_Git commit 提交一堆记录?试试撤回 commit 操作,你会爱上它
- 60-10-015-集成-(kylin On Druid)-Build CUBE的时候每一步都做了什么
- 第十六:Allure-pytest功能特性介绍
- UVA12207 LA4493 That is Your Queue【双端队列】
- Parts of a URL
- 一文总结熵,交叉熵与交叉熵损失
- 诚毅学院的计算机专业,诚毅学院计算机专业JAVA题目
- 关于M0内核MCU的Bootloader编写