卡尔曼滤波器学习笔记(一):概率论和贝叶斯滤波

感谢 点一个大大的赞! 经典教材的重新排版 文章中深蓝色字体表示摘录自该教材。 给老王点赞! 老王 这个作者真心用心地交互式展示数学和工程实践。 Kalman-and-Bayesian-Filters-in-Python 这篇容易让我们建立直觉的理解 3blue1brown-bayes-theorem 背景知识 一本很有名的书,学习作者对内容的安排。 需要的预备知识: 线性代数 概率,概率密度函数 离散变量贝叶斯滤波 连续变量贝叶斯滤波推导 学习心得 首先是概念理解,需要把概念代表的物理意义搞清楚:事件≠随机变量,随机变量是对事件的数量化描述,事件是随机变量的取值,随机变量的取值可以是一个数,也可以是一个向量。概率密度函数是对随机变量的取值的概率分布的描述,概率密度函数的积分就是概率。概率密度函数的积分就是概率,概率密度函数的积分就是概率,概率密度函数的积分就是概率。重要的事情说三遍。 亲自手写公式推导一遍,在这个过程中会强烈加深对内部逻辑的理解,争取可以做到经过很长时间之后,你仍然可以随便拿一张纸开始从零推导 感觉基于贝叶斯的随机过程计算其实是在更新变量的概率分布,并不是直接计算最终你看到的数据,最后你得到的数据只是这个过程当中的附带产品。 上面这一条的感受里面说的计算过程,基础是全概率下的全部样本空间,像是在一个无限大的平面上(因为真实值的取值是无穷无尽的)时刻飘过一团云,这团云和云笼罩下的区域是本次计算的结果。 符号说明 一般性地,我们用$\boldsymbol X$表示随机变量,用$\boldsymbol x$表示随机变量的某一个具体的取值。用$\boldsymbol{y}$表示测量值。$\boldsymbol{u}$表示系统的控制量。$\boldsymbol{w}$表示系统的过程噪声,$\boldsymbol{v}$表示测量噪声。黑体代表这些变量是向量。 概率论回顾 随机变量$\boldsymbol X$(Random Variable)的物理意义是把随机事件数量化。随机变量分为离散随机变量和连续随机变量。离散随机变量的取值是有限的,连续随机变量的取值是无限的。随机变量的取值可以是一个数,也可以是一个向量。个人觉得随机变量只是对随机事件的定量描述,是更加具象化的表达方式。更加核心的还是随机事件,所以下面的描述都是基于事件来推导公式的,并没有带入随机变量的表达。 条件概率的定义: 某事件B发生的条件下,事件A发生的概率,记为$P(A|B)$。 工程上是把事件看作随机变量在某一时刻取某一个数值,所以,在实际计算时,计算的是条件概率密度函数,并不是单单一个条件概率。 乘法公式: $P(AB)=P(A)P(B|A)=P(B)P(A|B)$ 描述的是随着时间的推移,事件A和事件B同时发生的概率可以通过事件A发生的概率和基于A发生B发生的概率相乘得到。方便针对每一个概率进行单独的计算从而得到一个总的概率。 全概率公式: 全概率公式是另一个很重要的公式,提供了计算复杂事件概率的一条有效的途径,使得一个复杂事件的概率可以通过简单的计算得到。 全概率公式:设$B_1,B_2,\cdots,B_n$是样本空间$\Omega$的一个划分,且$\cup_{i=1}^n B_i=\Omega$, $P(B_i)>0(i=1,2,\cdots,n)$,则对于任一事件$A$,有 $P(A)=\Sigma P(B_i)P(A|B_i)$ 贝叶斯公式: 这个公式得到的前提是乘法公式和全概率公式。 设$B_1,B_2,\cdots,B_n$是样本空间$\Omega$的一个划分,且$\cup_{i=1}^n B_i=\Omega$, $P(B_i)>0(i=1,2,\cdots,n)$,则对于任一事件$A$,有 $P(B_i|A)=\frac{P(B_i)P(A|B_i)}{\Sigma_{j=1}^n P(B_j)P(A|B_j)}$ 体会:虽然我没有查找托马斯·贝叶斯发现这个定理的过程是不是因为实际的应用问题,因为在状态估计这个领域,具有非常强的适配性,我们可以把样本空间理解成状态变量的空间,$B_i$理解成离散的单个样本,$A$理解成对样本空间的某次测量,$P(B_i)$理解成状态变量的先验概率,$P(A|B_i)$理解成测量值的似然概率 – 就是假设真实值为$B_i$的条件下测量值为$A$的概率,$P(B_i|A)$理解成状态变量的后验概率(经过测量更新),这样就可以把贝叶斯公式应用到状态估计当中了。 维基百科里面说这个方程的分母是$P(B)$ 然后我看到了它说$P(B)$是边缘分布,然后我点进去看啥是边缘分布: 边缘分布 在这里隐约感觉到:这里的论述和线性代数里面的空间向量怎么很类似?跟信号的傅里叶分解也很类似:全部都是把一个复杂的东西分解成一些简单的东西,然后再把这些简单的东西组合起来得到复杂的东西。这块简单的东西就是全样本空间下每一种样本的概率,类似于空间中的基向量,或者傅里叶变换中的基函数,然后这些基函数前面的系数就是权重或者是事件A和$B_i$重叠了多少程度,然后求和就得到了边缘概率。 最后再次用更好记忆的方式写一遍贝叶斯公式: $$ 后验条件概率=\frac{先验概率*似然概率}{边缘概率} $$ 条件概率是概率论中一个既重要又实用的概念。 – 1.4《概率论与数理统计》茆诗松 pdf: probability density function, 概率密度函数 cdf: cumulative distribution function, 累积分布函数 先验概率:就是人们根据自己系统的模型给出来的经验概率 后验概率:就是通过传感器本身的测量特性–传感器测某个状态得到的结果这个变量的概率分布和先验的概率分布,得到的对系统的状态变量条件概率$P(X=x|Y=y)$ 似然概率:是一个条件概率,意思是当真实值取值为$x$的时候,测量值取值为$y$的概率,$P(Y=y|X=x)$ (这里默认测量值测量到的就是真实值) 我觉得还需要加一个边缘概率:边缘概率就是全概率公式对于某一个事件的应用,就是基于所有可能的状态量,测量得到$y$之后的条件概率和先验概率乘积再相加。展现形式是和全概率一样的,只不过这里具有了更多的实际意义。 ...

2023年12月1日 · 49 分钟 · Yang

矩阵的奇异值分解

Besides having a rather simple geometric explanation, the singular value decomposition offers extremely effective techniques for putting linear algebraic ideas into practice. SVD分解与四个子空间 任意的线性变换都可以进行奇异值分解(SVD: Singular Value Decomposition)。之前的一篇博客讲的特征值和特征向量都是针对方阵而言的.这里任意形状的矩阵都能够进行SVD变换。给定一个$m \times n$的矩阵$A$,$rank(A)=r$,这里需要特别说明,我们可以在这个矩阵的行空间和列空间内找到$r$个线性无关的基,即使行、列空间的维度有不同。此处是核心:我们能够参考方阵,对它的特征值特征向量的推导过程得到启发,结合这里矩阵不一定是方阵(行、列维度不同的特点),能否在行子空间内找到一组相互正交的单位基向量,这组基向量通过$A$的变换在列空间内“生产”出一组也是相互正交的向量,并且这组向量正好是列空间的一组基。 $$ \begin{equation} Av_1=\sigma_1u_1, \cdots, Av_r=\sigma_1u_r \end{equation} \label{eq1}\tag{1} $$ ($\ref{eq1}$) 中,$v_i(i=0,1,\cdots,r)$是行空间内的单位向量,且$v_i^T \dot v_j=0 (i \neq j)$,$u_i(i=0,1,\cdots,r)$是列空间内的单位向量(Orthonormal basis),且$u_i^T \dot u_j=0 (i \neq j)$,$\sigma_i(i=0,1,\cdots,r)$是列空间内单位向量的伸缩系数。 写成矩阵乘法的形式如下: $$ \begin{equation} A\left[ \boldsymbol{v_1}\ \boldsymbol{v_1}\cdots \boldsymbol{v_r} \right] =\left[ \boldsymbol{u_1}\ \boldsymbol{u_2}\cdots \boldsymbol{u_r} \right] \begin{bmatrix}\sigma_1&0&\cdots&0\\ 0&\sigma_2&\cdots&0\\ \vdots&\vdots&\vdots&\vdots\\ 0&\cdots&\cdots&\sigma_r\end{bmatrix} \end{equation} \label{eq2}\tag{2} $$ ...

2020年6月22日 · 26 分钟 · Yang

相似矩阵和矩阵的特征值特征向量

相似矩阵 问题描述 为什么会产生相似矩阵这个感念? 场景描述:假定在一个线性空间当中,存在两组不同的基向量。在空间当中任何一个向量在不同的基下,投影的长度、方向都有所不同。当我们对这个向量施加变换的时候,也就是左乘一个变换矩阵,在不同的基下,这个左乘的矩阵形式上面是不同的,但是,它们有一个共同特点,就是相似,因为描述了同一个变换。 正向推导 按照我们刚才看到的这段话,我们可以用数学语言进行一次推导。 同一个向量不同基下的描述 假设线性空间内基由$n$个向量组成,我们不妨选取其中两组基:$\begin{bmatrix}\boldsymbol{\alpha_1} & \boldsymbol{\alpha_2} \cdots \boldsymbol{\alpha_n} \end{bmatrix}$$,$$\begin{bmatrix}\boldsymbol{\beta_1} & \boldsymbol{\beta_2} \cdots \boldsymbol{\beta_n} \end{bmatrix}$。 在此空间内的任意向量$\boldsymbol{b}$: $$ \begin{equation} \boldsymbol{b} = \begin{bmatrix}\boldsymbol{\alpha_1} & \boldsymbol{\alpha_2} \cdots \boldsymbol{\alpha_n} \end{bmatrix} \boldsymbol{x_1} \tag{1} \end{equation} $$ $$ \begin{equation} \boldsymbol{b} = \begin{bmatrix}\boldsymbol{\beta_1} & \boldsymbol{\beta_2} \cdots \boldsymbol{\beta_n} \end{bmatrix}\boldsymbol{x_2} \tag{2} \end{equation} $$ 对于$\boldsymbol{b}$,有: $$ \begin{equation} [\boldsymbol{\alpha}]\boldsymbol{x_1}=[\boldsymbol{\beta}]\boldsymbol{x_2} \label{eq3}\tag{3} \end{equation} $$ 一次线性变换 对该向量做一次线性变换,分别得到在两组基下面的坐标向量:$\boldsymbol{y_1},\boldsymbol{y_2}$ 那么,同一组基下,变换前后的两个向量具有如下的关系: $$ \begin{equation} T_1 \boldsymbol{x_1}=\boldsymbol{y_1} \label{eq4}\tag{4} \end{equation} $$ $$ \begin{equation} T_2 \boldsymbol{x_2}=\boldsymbol{y_2} \label{eq5}\tag{5} \end{equation} $$ ...

2020年1月31日 · 33 分钟 · Yang

投影矩阵和最小二乘

投影矩阵 之前的一篇博客讲到了矩阵的四个子空间:行空间,列空间,零空间和左零空间。每一个空间唯一性地由这个矩阵决定,因为这个矩阵的列可能线性无关,可能线性相关,如果线性相关,能够在其中找到多少个线性无关的向量。所以,不同的矩阵所形成的对应的四个子空间情况各不相同。我们为了能够理解给定的矩阵四个空间分布情况,就引入了投影矩阵的概念,用来分析在空间中任意向量到这个矩阵的“距离”。下面我们具体看一下: 首先回顾一下矩阵的列空间$C (A)$和对应的左零空间$N(A^T)$,它们所具有的最优秀的属性就是垂直。 矩阵$A$的投影矩阵$P$ $$ P=A(A^TA)^{-1}A^T $$ 给定任意一个与$A$列相同维度的向量 $ \boldsymbol b$,它与这个矩阵列空间的关系是什么?我们怎么能够几何直观地理解一下? $$ A=\begin{bmatrix} 1&4\\ 2&5\\ 3&6 \end{bmatrix} $$ 两个列向量$\boldsymbol u=\begin{bmatrix}1\\ 2\\ 3\end{bmatrix},\boldsymbol v=\begin{bmatrix}4\\ 5\\ 6\end{bmatrix}$构成列空间(一个平面)。 $\boldsymbol {per}=\begin{bmatrix}1\\ -2\\ 1\end{bmatrix}$是左零空间的一个向量。$\boldsymbol b$是三维空间内的任意向量,我们举出的是一般性的例子,即这个向量不在这两个子空间的任何一个空间内。 如果在列空间,那么投影的作用是保留全部–即该向量保持不变 如果在左零空间,那么投影的结果是0 那么,投影矩阵对该任意向量的作用就是将这个向量对列空间投影,得到$\boldsymbol{projection}$向量,称为投影向量,再求一次向量减法运算,得到$\boldsymbol{e}$,误差向量,代表了这个任意给定向量和列空间的差别。 $$ \boldsymbol{projection} + \boldsymbol{e}=\boldsymbol{b} $$ 投影矩阵的性质 幂等性(idempotent):$P=P^2$。这也是投影矩阵的定义。由上面的描述我们可以得到任意向量做一次投影之后的结果已经在原矩阵的列空间内,继续做投影依旧保持第一次的投影不变。 最小二乘 问题描述 已知空间当中的一些点,如何找到一条直线,能够尽可能地离所有点最近? 问题梳理 假设二维空间有$n$个点,我们定义点$x=\begin{bmatrix}x_i\ y_i \end{bmatrix}$到直线$y=ax+b$的偏差为$e=ax_i+b-y_i$,最小化这些偏差的平方 $$ S=\sqrt{\sum_{i=0}^n {(e_i)^2}} $$ 为了最小化这个式子,根据式子的特点,我们可以将问题转化成为通过寻找向量的模长的最小值解决。这个向量是: $$ \boldsymbol {e}=\begin{bmatrix} e_1& e_e \cdots & e_n \end{bmatrix}^T $$ $$ \boldsymbol{e}= \begin{bmatrix} e_1\\ \vdots \\ e_n \end{bmatrix}= \begin{bmatrix} y_1-b-ax_1\\ \vdots \\ y_n-b-ax_n \end{bmatrix}= \begin{bmatrix} y_1\\ \vdots \\ y_n \end{bmatrix}-a\begin{bmatrix} x_1\\ \vdots \\ x_n \end{bmatrix}- b\begin{bmatrix} 1\\ \vdots \\ 1 \end{bmatrix}= \begin{bmatrix} y_1\\ \vdots \\ y_n \end{bmatrix}- \begin{bmatrix} 1&x_1\\ \vdots &\vdots \\ 1 &x_n \end{bmatrix}\begin{bmatrix}b\\ a\end{bmatrix}=\boldsymbol{y}-M\boldsymbol{x} $$ ...

2020年1月30日 · 17 分钟 · Yang

矩阵的四个子空间

前言 线性代数,同微积分一样,是高等数学中两大入门课程之一,它除了是一门数学课程,也是非常好的工具类学科,在很多的领域都有涉及,比如在人工智能领域,机器学习和数值优化。它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。从线性空间的角度作为切入点,我们能够更好地理解向量,矩阵以及矩阵的特征值、特征向量、相似矩阵、正定矩阵、奇异值分解等等。在这里,我强烈推荐MIT教授William Gilbert Strang的MIT 18.06 Linear Algebra课程,视频能够在youtube或者是网易公开课上找到。他讲解线性代数的思路很容易理解,更重要的是他从空间的角度出发,很自然轻松地解释所有的内容。在他的课程当中,给我印象最深的就是矩阵的四个子空间部分。下面我们逐步深入下去,从空间的概念讲起,逐步到达线性代数最核心的概念:矩阵的四个子空间。 空间 提到空间,我们首先想到的就是我们生活在三维环境,站在数学的角度上看,这是一个三维的欧几里得空间。经过数学家们的不断思考,他们用最凝练的语言描述空间的共同特点: 由无穷多的点组成; 不同点之间存在着可以描述的相对关系; 在空间中通过点定义长度、角度; 容纳运动,或者更宽泛来讲就是容纳变换。 上面的这些性质中,最最关键的是第4条。第1、2条只能说是空间的基础,不算是空间特有的性质,凡是讨论数学问题,都得有一个集合,大多数还得在这个集合上定义一些结构(关系),并不是说有了这些就算是空间。而第3条太特殊,其他的空间不需要具备,更不是关键的性质。只有第4条是空间的本质,也就是说,容纳运动是空间的本质特征。 有句话叫做:“静止是相对的,运动才是绝对的。”我们思考的起点,必须要做到“运动”,即变换是运动,状态其实也是运动,只不过这个特殊的运动是从我们很难发觉的特殊起点开始的。这点我们将在后面讲到。 线性空间 线性空间(Vector Space or Linear Space)的定义源于许多数学对象本身如何归类,例如几何向量、同型矩阵、实函数等等,它们满足相同的计算规则,都能够相加以及用数相乘,将它们称为向量。向量的一个集合$V$,如果对于$V$中的任意向量$u$,$v$和一个数集$F$内的数$a$,$b$,满足: 加法封闭性:$(u+v)\in V$ 数乘封闭性:$au \in V$,$(au+bv)\in V$ 那么,这个空间就是一个线性空间。 线性空间中的对象如何表达? 我的理解:两个关键点:一个是一组合适的基,另一个是这些基的有序求和(坐标)。 $$ \begin{bmatrix} & a_{0,0} & a_{0,1} & a_{0, 2 }& \cdots & a_{0, n -1} \\ & a_{1, 0 } & a_{1, 1} & a_{1 ,2 }& \cdots & a_{1 ,n -1}\\ & \vdots & \vdots& \vdots & \ddots & \vdots \\ & a_{n-1 ,0 }& a_{n-1 ,1} & a_{n-1, 2 }& \cdots & a_{n-1, n -1} \\ \end{bmatrix} \begin{bmatrix} & k_0 \\ & k_1 \\ & \vdots \\ & k_{n-1} \end{bmatrix} =k_0 \begin{bmatrix} a_{0,0}\\ a_{1,0} \\ \vdots \\ a_{n-1,0} \end{bmatrix} +k_1 \begin{bmatrix} a_{0,1}\\ a_{1,1} \\ \vdots \\ a_{n-1,1} \end{bmatrix} +\cdots+k_{n-1} \begin{bmatrix} a_{0,n-1}\\ a_{1,n-1} \\ \vdots \\ a_{n-1,n-1} \end{bmatrix} $$ ...

2020年1月29日 · 42 分钟 · Yang