[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)

协方差矩阵/协方差矩阵的意义

基本的统计学概念,即均值、标准差、方差协方差

协方差的定义

对于一般的分布,直接代入E(X)之类的就可以计算出来了,但真给你一个具体数值的分布,要计算协方差矩阵,根据这个公式来计算,还真不容易反应过来。网上值得参考的资料也不多,这里用一个例子说明协方差矩阵是怎么计算出来的吧。

记住,X、Y是一个列向量,它表示了每种情况下每个样本可能出现的数。比如给定则X表示x轴可能出现的数,Y表示y轴可能出现的。

用中文来描述,就是:协方差(i,j)=(第i列的所有元素-第i列的均值)*(第j列的所有元素-第j列的均值).

协方差矩阵本身的含义,即随机变量之间的线性相关关系(当然,相关系数矩阵在此处更为贴切),也利用了协方差矩阵为半正定矩阵的性质。


矩阵

矩阵其实就是一种将某个向量变换为另一个的方法,另外我们也可以将矩阵看作作用于所有数据并朝向某个方向的力。同时我们还知道了变量间的相关性可以由方差和协方差表达,并且我们希望保留最大方差以实现最优的降维。因此我们希望能将方差和协方差统一表示,并且两者均可以表示为内积的形式,而内积又与矩阵乘法密切相关。因此我们可以采用矩阵乘法的形式表示。若输入矩阵 X 有两个特征 a 和 b,且共有 m 个样本,那么有:

如果我们用 X 左乘 X 的转置,那么就可以得出协方差矩阵

这个矩阵对角线上的两个元素分别是两特征的方差,而其它元素是 a 和 b 的协方差。两者被统一到了一个矩阵的,因此我们可以利用协方差矩阵描述数据点之间的方差和协方差,即经验性地描述我们观察到的数据。

寻找协方差矩阵的特征向量和特征值就等价于拟合一条能保留最大方差的直线或主成分。因为特征向量追踪到了主成分的方向,而最大方差和协方差的轴线表明了数据最容易改变的方向。根据上述推导,我们发现达到优化目标就等价于将协方差矩阵对角化:即除对角线外的其它元素化为 0,并且在对角线上将特征值按大小从上到下排列。协方差矩阵作为实对称矩阵,其主要性质之一就是可以正交对角化,因此就一定可以分解为特征向量和特征值。

当协方差矩阵分解为特征向量和特征值之后,特征向量表示着变换方向,而特征值表示着伸缩尺度。在本例中,特征值描述着数据间的协方差。我们可以按照特征值的大小降序排列特征向量,如此我们就按照重要性的次序得到了主成分排列。

对于 2 阶方阵,一个协方差矩阵可能如下所示:

在上面的协方差矩阵中,1.07 和 0.64 分别代表变量 x 和变量 y 的方差,而副对角线上的 0.63 代表着变量 x 和 y 之间的协方差。因为协方差矩阵为实对称矩阵(即 Aij=Aji),所以其必定可以通过正交化相似对角化。因为这两个变量的协方差为正值,所以这两个变量的分布成正相关性。如下图所示,如果协方差为负值,那么变量间就成负相关性。

[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第1张图片

注意如果变量间的协方差为零,那么变量是没有相关性的,并且也没有线性关系。因此,如果两个变量的协方差越大,相关性越大,投影到主成分后的损失就越小。我们同时可以考虑协方差和方差的计算式而了解他们的关系:

[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第2张图片

计算协方差的优处在于我们可以通过协方差的正值、负值或零值考察两个变量在高维空间中相互关系。总的来说,协方差矩阵定义了数据的形状,协方差决定了沿对角线对称分布的强度,而方差决定了沿 x 轴或 y 轴对称分布的趋势。

基变换

因为协方差矩阵的特征向量都是彼此正交的,所以变换就相当于将 x 轴和 y 轴两个基轴换为主成分一个基轴。也就是将数据集的坐标系重新变换为由主成分作为基轴的新空间,当然这些主成分都保留了最大的方差。

我们上面所述的 x 轴和 y 轴称之为矩阵的基,即矩阵所有的值都是在这两个基上度量而来的。但矩阵的基是可以改变的,通常一组特征向量就可以组成该矩阵一组不同的基坐标,原矩阵的元素可以在这一组新的基中表达。

[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第3张图片

在上图中,我们展示了相同向量 v 如何在不同的坐标系中有不同的表达。黑色实线代表 x-y 轴坐标系而红色虚线是另外一个坐标系。在第一个坐标系中 v = (1,1),而在第二个坐标系中 v = (1,0)。因此矩阵和向量可以在不同坐标系中等价变换。在数学上,n 维空间并没有唯一的描述,所以等价转换矩阵的基也许可以令问题更容易解决。


协方差矩阵

[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第4张图片
[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第5张图片


在向量微积分中,雅可比矩阵是一阶偏导数以一定方式排列成的矩阵,其行列式称为雅可比行列式。雅可比矩阵的重要性在于它体现了一个可微方程与给出点的最优线性逼近。因此,雅可比矩阵类似于多元函数的导数。

求微分其实就是线性化,导数其实就是线性空间之间的线性变换,Jaocibian矩阵本质上就是导数。

[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第6张图片

因此,Jacobian矩阵实质上就是切空间之间的基底之间的线性变换,这也是为什么积分中变换坐标时前面会乘以一个Jacobian矩阵的行列式

雅可比矩阵就是微分映射的坐标表示,就像我们在学习线性代数的时候,线性映射是一个抽象的概念。所以如果我们想具体的计算一些与线性映射有关的量,就需要引入坐标表示——矩阵。要知道微分映射本身也是一个线性映射,既然是线性映射我们就可以把它坐标化成一个矩阵,这就是雅可比矩阵。

[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第7张图片[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第8张图片[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第9张图片

局部线性化,可以考虑泰勒展开到第一阶的形式。对于向量函数Y=f(X),在X=X0附近的性质可以用f(X0)+A*(X-X0)来逼近.

线性变换

在线性代数中,矩阵就是一个由各种标量或变量构成的表格,它和 Excel 表格并没有什么本质上的区别。只不过数学上定义了一些矩阵间的运算,矩阵运算的法则和实际内部的值并没有什么关系,只不过定义了在运算时哪些位置需要进行哪些操作。因为矩阵相当于定义了一系列运算法则的表格,那么其实它就相当于一个变换,这个变换(物理运动)可以由特征向量(方向)和特征值(速度)完全描述出来。

在解释线性变换前,我们需要先了解矩阵运算到底是什么。因为我们可以对矩阵中的值统一进行如加法或乘法等运算,所以矩阵是十分高效和有用的。如下所示,如果我们将向量 v 左乘矩阵 A,我们就会得到新的向量 b,也即可以表述说矩阵 A 对输入向量 v 执行了一次线性变换,且线性变换结果为 b。因此矩阵运算 Av = b 就代表向量 v 通过一个变换(矩阵 A)得到向量 b。下面的实例展示了矩阵乘法(该类型的乘法称之为点积)是怎样进行的:

所以矩阵 A 将向量 v 变换为向量 b。下图展示了矩阵 A 如何将更短更低的向量 v 映射到更长更高的向量 b:

[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第10张图片

我们可以馈送其他正向量到矩阵 A 中,每一个馈送的向量都会投影到新的空间中且向右边变得更高更长。

假定所有的输入向量 V 可以排列为一个标准表格,即:

[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第11张图片

而矩阵可以将所有的输入向量 V 投影为如下所示的新空间,也即所有输出向量组成的 B:

[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第12张图片

下图可以看到输入向量空间和输出向量空间的关系,

[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第13张图片

如果假设矩阵就是一阵风,它通过有形的力量得出可见的结果。而这一阵风所吹向的方向就是特征向量,因此特征向量就表明矩阵所要变换的方向。

[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第14张图片

如上图所示,特征向量并不会改变方向,它已经指向了矩阵想要将所有输入向量都推向的方向。因此,特征向量的数学定义为:存在非零矩阵 A 和标量λ,若有向量 x 且满足以下关系式,那么 x 就为特征向量、λ为特征值。

特征向量同样是线性变换的不变轴,所有输入向量沿着这条轴压缩或延伸。线性变换中的线性正是表明了这种沿直线轴进行变换的特性,一般来说几阶方阵就有几个特征向量,如 3*3 矩阵有 3 个特征向量,n 阶方阵有 n 个特征向量,每一个特征向量表征一个维度上的线性变换方向。

因为特征向量提取出了矩阵变换的主要信息,因此它在矩阵分解中十分重要,即沿着特征向量对角化矩阵。因为这些特征向量表征着矩阵的重要特性,所以它们可以执行与深度神经网络中自编码器相类似的任务。引用 Yoshua Bengio 的话来说:

许多数学对象可以通过分解为更基础的组成部分而有更好的理解,因为我们会发现它们的一些广泛性属性,而不是我们选择表征它们的特性。例如整数可以分解为质因数,虽然我们表征整数的方式会因为采用二进制还是十进制而改变,但整数总可以由几个质因数表示(如 12=2 × 2 × 3),因此这种分解的性质正好是我们所需要的稳定性质。

我们可以分解一个整数为质因数而得到其自然属性,同样我们也可以分解矩阵以得到它的功能性属性,并且这种属性信息在矩阵表示为多组元素的阵列下是不明显的。矩阵分解最常见的是特征分解(eigen-decomposition),即我们将矩阵分解为一系列的特征向量和特征值。

[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第15张图片

[学习SLAM]协方差矩阵与雅克比矩阵-(相关性/变换基)||(微分倒数J/H)_第16张图片

你可能感兴趣的:(SLAM,算法学习)