机器学习笔记之卡尔曼滤波——动态模型基本介绍

  • 引言
    • 回顾:动态模型
      • 动态模型的相关任务
    • 卡尔曼滤波介绍

引言

本节从动态模型开始,介绍卡尔曼滤波(Kalman Filter)。

回顾:动态模型

我们在机器学习笔记之隐马尔可夫模型中已经介绍了一种动态模型
假设数据集合 X \mathcal X X在某连续时刻 { 1 , 2 , ⋯ , T } \{1,2,\cdots,T\} {1,2,⋯,T}内的观测值序列 { o 1 , o 2 , ⋯ , o T } \{o_1,o_2,\cdots,o_T\} {o1​,o2​,⋯,oT​}表示如下:

由于这些观测值是基于同一数据集合 X \mathcal X X在连续时刻下的观测结果。从常理角度思考,相邻观测值之间存在关联关系。但观测值序列中的关联关系可能不是显式关系,即无法通过观测值序列直接写出它们之间的关联关系。因此有了动态模型的假设(Dynamic Model):

动态模型是指 观测变量的变化规律是基于隐变量 I \mathcal I I随着时间/序列的变化而变化,从而影响观测变量 O \mathcal O O的变化。其概率图模型可表示为如下形式:

称 O = { o 1 , o 2 , ⋯ , o T } \mathcal O = \{o_1,o_2,\cdots,o_{T}\} O={o1​,o2​,⋯,oT​}为观测变量, I = { i 1 , i 2 , ⋯ , i T } \mathcal I = \{i_1,i_2,\cdots,i_{T}\} I={i1​,i2​,⋯,iT​}为隐变量。这种概率图模型也称状态空间模型(State Space Model),这种模型的核心思想是
如果找到了隐变量之间的关联关系,观测变量只与对应时刻的隐变量之间存在关联关系,从而观测变量之间相互独立
这看起来和上述介绍的‘相邻观测值之间存在关联关系’相悖,实际上,只是将‘观测变量中的关联关系’转移至隐变量中,而观测变量被看成‘对应时刻给定隐变量下的结果’。
这种概率图表示也完全符合‘贝叶斯网络’中的描述。以 o t o_{t} ot​为例,可能与 o t o_{t} ot​相关联的结点表示如下:

上图描述的是贝叶斯网络结构表示中提到的‘同父结构’和‘顺序结构’。但无论是其中哪种结构,在给定隐变量 i t i_t it​的条件下, o t o_t ot​ i t − 1 , i t + 1 i_{t-1},i_{t+1} it−1​,it+1​之间均条件独立。
这也是动态模型中的 观测独立性假设

动态模型中共包含三类概率:

  • 发射概率(Emission Probability):它描述给定某时刻隐变量 i t i_t it​的条件下,对应时刻观测变量 o t o_t ot​的条件概率
    P ( o t ∣ i t ) \mathcal P(o_t \mid i_t) P(ot​∣it​)
  • 状态转移概率(Transition Probability):给定某时刻隐变量 i t i_t it​的条件下,后续时刻隐变量 i t + 1 i_{t+1} it+1​的条件概率。
    这里以‘一阶齐次马尔可夫假设’为例。
    P ( i t + 1 ∣ i t ) \mathcal P(i_{t+1} \mid i_t) P(it+1​∣it​)
  • 初始概率(initial Probability):在计算隐变量的概率时,基于状态转移概率,我们需要给定上一时刻的隐变量信息,但初始时刻的隐变量概率 P ( i 1 ) \mathcal P(i_1) P(i1​)需要人为给定

马尔可夫模型的特点是 每一时刻的隐变量 i t ( t = 1 , 2 , ⋯ , T ) i_t(t=1,2,\cdots,T) it​(t=1,2,⋯,T)必须是离散型随机变量,而对应观测变量 o t ( t = 1 , 2 , ⋯ , T ) o_t(t=1,2,\cdots,T) ot​(t=1,2,⋯,T)不做要求。
通常为了简化运算,也将观测变量 o t o_t ot​定义为‘离散型随机变量’。

如果 隐变量是连续型随机变量,可分为两种情况:

  • 线性动态系统/卡尔曼滤波(Linear Dynamic System):线性动态系统中的观测变量 O \mathcal O O和隐变量 I \mathcal I I均属于连续型随机变量,并且各时刻 i t , o t ( t = 1 , 2 , ⋯ , T ) i_t,o_t(t=1,2,\cdots,T) it​,ot​(t=1,2,⋯,T)均服从各自的线性关系,且噪声均服从高斯分布(各自对应的高斯分布)。
    从变量的分布条件角度,也可称卡尔曼滤波为‘线性高斯模型’(Linear Gaussian Model)。
  • 粒子滤波(Particle Filter):与卡尔曼滤波对应,它的观测变量 I \mathcal I I与隐变量 O \mathcal O O属于非线性关系,而噪声也属于非高斯分布

动态模型的相关任务

  • 学习任务(Learning问题):
    学习任务本质上是通过给定的观测变量 O \mathcal O O,使用EM算法求解模型参数 λ \lambda λ。由于隐马尔可夫模型中隐变量 I \mathcal I I与观测变量 O \mathcal O O都是离散型随机变量,因此可以直接使用 狭义EM算法 迭代求解模型参数。
    相关推导过程见隐马尔可夫模型(五)学习问题——EM算法
  • 推断任务(Inference问题):
    推断任务本质上是求解 变量的概率问题。主要包含以下几种情况:

    • 解码任务(Decoding):给定观测序列 { o 1 , o 2 ⋯ , o t } \{o_1,o_2\cdots,o_t\} {o1​,o2​⋯,ot​}条件下,求解对应时刻隐变量序列 { i 1 , i 2 , ⋯ , i t } \{i_1,i_2,\cdots,i_t\} {i1​,i2​,⋯,it​}的条件概率
      P ( I ∣ O ) = P ( i 1 ⋯ , i t ∣ o 1 , ⋯ , o t ) \mathcal P(\mathcal I \mid \mathcal O) = \mathcal P(i_1\cdots,i_t \mid o_1,\cdots,o_t) P(I∣O)=P(i1​⋯,it​∣o1​,⋯,ot​)
      隐马尔可夫模型中介绍了维特比算法(Viterbi),最终得到一组使得 P ( I ∣ O ) \mathcal P(\mathcal I \mid \mathcal O) P(I∣O)最大的隐变量序列取值结果 I ^ = { i 1 ∗ , ⋯ , i t ∗ } \hat {\mathcal I} = \{i_1^*,\cdots,i_t^*\} I^={i1∗​,⋯,it∗​}
      I ^ = arg ⁡ max ⁡ I P ( I ∣ O ; λ ) \hat {\mathcal I} = \mathop{\arg\max}\limits_{\mathcal I} \mathcal P(\mathcal I \mid \mathcal O;\lambda) I^=Iargmax​P(I∣O;λ)
    • 求值问题(Probability of Evidence):基于模型参数 λ \lambda λ,求解观测变量序列 O = { o 1 , o 2 , ⋯ , o T } \mathcal O = \{o_1,o_2,\cdots,o_T\} O={o1​,o2​,⋯,oT​}的联合概率分布结果
      P ( O ∣ λ ) = P ( o 1 , ⋯ , o T ∣ λ ) \mathcal P(\mathcal O \mid \lambda) = \mathcal P(o_1,\cdots,o_T \mid \lambda) P(O∣λ)=P(o1​,⋯,oT​∣λ)
      隐马尔可夫模型中,针对直接求解 P ( O ∣ λ ) \mathcal P(\mathcal O \mid \lambda) P(O∣λ)过程中时间复杂度随着时刻的增加指数倍增长的情况 ( K T ) (\mathcal K^T) (KT),分别介绍了前向算法(Forward Algorithm):
      其中 K \mathcal K K表示‘离散型随机变量’的隐状态存在 K \mathcal K K种选择。
      P ( O ∣ λ ) = ∑ i T P ( O , i T = q i ∣ λ ) = ∑ i = 1 K P ( O , i T = q i ∣ λ ) \begin{aligned} \mathcal P(\mathcal O \mid \lambda) & = \sum_{i_T} \mathcal P(\mathcal O,i_T = q_i \mid \lambda) \\ & = \sum_{i=1}^{\mathcal K} \mathcal P(\mathcal O,i_T = q_i \mid \lambda) \end{aligned} P(O∣λ)​=iT​∑​P(O,iT​=qi​∣λ)=i=1∑K​P(O,iT​=qi​∣λ)​
      和后向算法(Backward Algorithm):
      P ( O ∣ λ ) = ∑ i 1 P ( O , i 1 = q i ∣ λ ) = ∑ i 1 P ( O ∣ i 1 = q i , λ ) ⋅ P ( i 1 = q i ∣ λ ) \begin{aligned} \mathcal P(\mathcal O\mid \lambda) & = \sum_{i_1} \mathcal P(\mathcal O,i_1 =q_i \mid \lambda) \\ & = \sum_{i_1} \mathcal P(\mathcal O \mid i_1 = q_i,\lambda) \cdot \mathcal P(i_1 = q_i \mid \lambda) \end{aligned} P(O∣λ)​=i1​∑​P(O,i1​=qi​∣λ)=i1​∑​P(O∣i1​=qi​,λ)⋅P(i1​=qi​∣λ)​
    • 滤波问题(Filtering):给定初始时刻到当前时刻的观测变量序列 { o 1 , o 2 , ⋯ , o t } \{o_1,o_2,\cdots,o_t\} {o1​,o2​,⋯,ot​},求解当前时刻隐变量 i t i_t it​的条件概率
      这明显是一个‘在线算法’(on-line Algorithm),只有在对应时刻以及之前所有时刻观测变量给定的条件下,才能够计算出当前时刻的隐变量信息。
      P ( i t ∣ o 1 , o 2 ⋯ , o t ) \mathcal P(i_t \mid o_1,o_2\cdots,o_t) P(it​∣o1​,o2​⋯,ot​)
    • 平滑问题(Smoothing):给定完整的观测变量序列 { o 1 , o 2 ⋯ , o T } \{o_1,o_2\cdots,o_T\} {o1​,o2​⋯,oT​},求解某时刻隐变量 i t i_t it​的条件概率
      与‘滤波问题’相对应的,这是一个‘离线算法’(off-line Algorithm),在完整序列的观测变量给定的条件下,可以计算任意时刻的隐变量信息。
      P ( i t ∣ o 1 , o 2 , ⋯ , o T ) \mathcal P(i_t \mid o_1,o_2,\cdots,o_T) P(it​∣o1​,o2​,⋯,oT​)
    • 预测问题(Prediction):该问题的核心在于 基于已知时刻的观测变量 { o 1 , o 2 , ⋯ , o t } \{o_1,o_2,\cdots,o_t\} {o1​,o2​,⋯,ot​},对未来时刻的变量(如 i t + 1 , o t + 1 i_{t+1},o_{t+1} it+1​,ot+1​)进行预测
      P ( i t + 1 , i t + 2 ∣ o 1 , o 2 , ⋯ , o t ) P ( o t + 1 , o t + 2 ∣ o 1 , o 2 , ⋯ , o t ) \mathcal P(i_{t+1},i_{t+2} \mid o_1,o_2,\cdots,o_t) \\ \mathcal P(o_{t+1},o_{t+2} \mid o_1,o_2,\cdots,o_t) P(it+1​,it+2​∣o1​,o2​,⋯,ot​)P(ot+1​,ot+2​∣o1​,o2​,⋯,ot​)

卡尔曼滤波介绍

与隐马尔可夫模型类似,卡尔曼滤波主要从三个方面进行描述:

  • 初始概率对于初始隐变量的概率 P ( i 1 ) \mathcal P(i_1) P(i1​),初始化一个高斯分布
    P ( i 1 ) ∼ N ( μ 1 , Σ 1 ) \mathcal P(i_1) \sim \mathcal N(\mu_1,\Sigma_1) P(i1​)∼N(μ1​,Σ1​)
  • 发射概率t t t时刻的隐变量 i t i_t it​与 t − 1 t-1 t−1时刻的隐变量 i t − 1 i_{t-1} it−1​之间存在线性关系
    i t = A ⋅ i t − 1 + B + ϵ i_t = \mathcal A \cdot i_{t-1} + \mathcal B + \epsilon it​=A⋅it−1​+B+ϵ
    其中 A , B \mathcal A,\mathcal B A,B表示线性关系的参数(参数向量), ϵ \epsilon ϵ表示观察隐变量时的噪声信息,假设噪声服从均值为0的高斯分布
    Q \mathcal Q Q表示基于 i t i_t it​噪声的协方差信息。
    ϵ ∼ N ( 0 , Q ) \epsilon \sim \mathcal N(0,\mathcal Q) ϵ∼N(0,Q)
  • 状态转移概率: t t t时刻的隐变量 i t i_t it​与对应时刻的观测变量 o t o_t ot​之间存在线性关系
    o t = C ⋅ i t + D + δ o_t = \mathcal C \cdot i_t + \mathcal D + \delta ot​=C⋅it​+D+δ
    同理, C , D \mathcal C,\mathcal D C,D表示线性关系的参数(参数向量), δ \delta δ表示观测变量的噪声信息,这里同样假设噪声服从高斯分布
    R \mathcal R R表示基于 o t o_t ot​噪声的协方差信息。
    δ ∼ N ( 0 , R ) \delta \sim \mathcal N(0,\mathcal R) δ∼N(0,R)

这里回顾隐马尔可夫模型中的状态转移过程:

  • 隐马尔可夫模型中使用状态转移矩阵描述 隐变量之间的状态转移过程: A = [ a i j ] K × K \mathcal A = [a_{ij}]_{\mathcal K \times \mathcal K} A=[aij​]K×K​,其中 a i j a_{ij} aij​表示隐变量 i t i_t it​与隐变量 i t + 1 i_{t+1} it+1​之间的条件概率
    a i j = P ( i t + 1 = q j ∣ i t = q i ) a_{ij} = \mathcal P(i_{t+1} = q_j \mid i_t = q_i) aij​=P(it+1​=qj​∣it​=qi​)
  • 隐马尔可夫模型中使用发射矩阵描述 隐变量与对应时刻观测变量之间的状态转移过程: B = [ b j ( k ) ] K × M \mathcal B = [b_j(k)]_{\mathcal K \times \mathcal M} B=[bj​(k)]K×M​
    b j ( k ) = P ( o t = v k ∣ i t = q j ) b_j(k) = \mathcal P(o_t = v_k \mid i_t = q_j) bj​(k)=P(ot​=vk​∣it​=qj​)

那么,卡尔曼滤波状态转移概率 P ( i t + 1 ∣ i t ) \mathcal P(i_{t+1} \mid i_t) P(it+1​∣it​)和发射概率 P ( o t ∣ i t ) \mathcal P(o_t \mid i_t) P(ot​∣it​)的具体表示为:
一个线性函数 + 高斯分布,并不影响其结果是高斯分布的本质,其结果仅对高斯分布的均值位置进行平移,对协方差结果不产生影响。
P ( i t ∣ i t − 1 ) ∼ N ( A ⋅ i t − 1 + B , Q ) P ( o t ∣ i t ) ∼ N ( C ⋅ i t + D , R ) \mathcal P(i_t \mid i_{t-1}) \sim \mathcal N(\mathcal A \cdot i_{t-1} + \mathcal B,\mathcal Q) \\ \mathcal P(o_t \mid i_t) \sim \mathcal N(\mathcal C \cdot i_t + \mathcal D,\mathcal R) P(it​∣it−1​)∼N(A⋅it−1​+B,Q)P(ot​∣it​)∼N(C⋅it​+D,R)

隐马尔可夫模型与卡尔曼滤波中需要求解的模型参数对比如下:
λ = { ( π , A , B ) → H i d d e n M a r k o v M o d e l ( A , B , C , D , Q , R , μ 1 , Σ 1 ) → K a l m a n F i l t e r \lambda = \begin{cases} (\pi,\mathcal A,\mathcal B) \to HiddenMarkovModel \\ (\mathcal A,\mathcal B,\mathcal C,\mathcal D,\mathcal Q,\mathcal R,\mu_1,\Sigma_1) \to KalmanFilter \end{cases} λ={(π,A,B)→HiddenMarkovModel(A,B,C,D,Q,R,μ1​,Σ1​)→KalmanFilter​

相关参考:
徐亦达机器学习:Kalman-Filter-part-1
机器学习-线性动态系统1-KalmanFilter-背景介绍

机器学习笔记之卡尔曼滤波(一)动态模型基本介绍相关推荐

  1. 自控原理学习笔记-反馈控制系统的动态模型(1)

    自控原理学习笔记 1.导论 2.反馈控制系统的动态模型(1) 3.反馈控制系统的动态模型(2) 3.反馈控制系统的动态模型(3) 4.反馈控制系统的动态模型(4) 5.反馈控制系统的动态模型(5) 文 ...

  2. 机器学习笔记之高斯混合模型(一)模型介绍

    机器学习笔记之高斯混合模型--模型介绍 引言 高斯混合模型介绍 示例介绍 从几何角度观察高斯混合模型 从混合模型的角度观察 概率混合模型的引出 从概率生成模型的角度观察高斯混合模型 引言 上一系列介绍 ...

  3. 【机器学习笔记4】逻辑回归模型

    目录 什么是逻辑回归? Sigmoid函数 决策边界 逻辑回归的损失函数 为什么平方误差模型不可行? 对数损失函数 单个样例损失: 整体损失函数 梯度下降算法 补充:F1-score评价指标 F1-S ...

  4. 机器学习笔记:卡尔曼滤波

    1 滤波 滤波的作用就是给不同的信号分量不同的权重 比如低通滤波,就是直接给低频信号权重1:高频信号权重0 降噪可以看成一种滤波:降噪就是给信号一个高的权重而给噪声一个低的权重 1.1 滤波.插值与预 ...

  5. 机器学习笔记(七)——决策树模型

    引言 决策树(Decision Tree)是一种基本的分类和回归方法.它的扩展方法有GBDT和GBRT 等.决策树模型的学习过程主要有特征选择.决策树生成和剪枝.主要算法有ID3.C4.5和CART等 ...

  6. 自控原理学习笔记-反馈控制系统的动态模型(4)-频率特性函数Nyquist图及Bode图

    自控原理学习笔记 自控原理学习笔记专栏 文章目录 1.频率特性函数 1.1 图形表示方法: 1.2 零极点位置和暂态增益图 1.2.1 复轨迹曲线 1.2.3 例子 1.3 计算系统响应 2.开环频率 ...

  7. 【机器学习笔记之五】用ARIMA模型做需求预测用ARIMA模型做需求预测

    本文结构: 时间序列分析? 什么是ARIMA? ARIMA数学模型? input,output 是什么? 怎么用?-代码实例 常见问题? 时间序列分析? 时间序列,就是按时间顺序排列的,随时间变化的数 ...

  8. 自适应控制学习笔记(1)——动态模型与参数估计

    视频教程参考bilibili广东工业大学的视频 柴天佑<自适应控制>课程,记录一下自己的自适应控制学习过程. 2.1 离散时间随机线性模型 引入延迟算子 即:                ...

  9. 机器学习笔记(八)——决策树模型的特征选择

    一.引言 决策树构建过程中的特征选择是非常重要的一步.特征选择是决定用哪个特征来划分特征空间,特征选择是要选出对训练数据集具有分类能力的特征,这样可以提高决策树的学习效率.如果利用某一个特征进行分类与 ...

最新文章

  1. 纽大副教授炮轰NeurIPS、AAAI等顶会:无聊、就不该继续存在
  2. 用xfire开发webservice实例
  3. vs code 快捷键设置 2018
  4. SpringSecurity注销功能
  5. 云游戏是大厂的“游戏”之腾讯云云游戏指南
  6. java中formfile,基于Struts FormFile上传文件
  7. 第一次装TFS的曲折经历
  8. Vue——知识体系总结
  9. 打造集成SATA驱动程序的XP系统盘
  10. bootstrap 和 jqueryui
  11. C语言要点系统复习三:scanf读取缓冲区的那些事
  12. java实现在线预览的功能(一)word转html
  13. 交换机与路由器技术:静态路由配置和路由器上配置DHCP、虚拟局域网VLAN
  14. 「js基础」JavaScript入门,难不难你来说
  15. TDC综述(四)——参考文献
  16. 决策树(Decision Tree)算法原理总结(二)
  17. 红外图像处理-基于场景的非均匀矫正
  18. 电脑重启后硬盘突然失踪的原因(转)
  19. Modbus 通信协议详解
  20. 怎么免费把PDF转成Word?PDF转Word的软件有哪些?

热门文章

  1. APS入门4: 供应链与APS
  2. UDP Flood攻击实验
  3. 正确解决:坑爹的0xc000007b——应用程序无法正常启动
  4. [计算机图形学]重心坐标应用纹理(前瞻预习/复习回顾)
  5. 对抗样本(论文解读八):Towards More Robust Adversarial Attack Against Real World Object Detectors
  6. 好强的英语句法(看了这些想不过四六级都难~~~)
  7. 3.1【微信小程序全栈开发课程】在本地搭建后端开发环境
  8. 解析!如何从手机网站直接跳转到微信添加好友界面
  9. airbnb 数据分析报告
  10. 金融风控-申请评分卡模型-申请评分卡介绍