贝叶斯滤波(三)贝叶斯滤波算法推导
一. 状态估计(state estimation)
状态估计根据可获取的量测数据估算动态系统内部状态的方法。
贝叶斯滤波也就是在已知观测和可选的控制输入的概率分布下,估计出的状态概率分布。
状态随着时间变化,我们将时间设定为离散的,即,
相对应的,我们的观测为,控制输入为,状态(为初始状态)
二、马尔可夫假设(Markov Assumption)
隐马尔可夫模型(Hidden Markov Model; 缩写:HMM)的两个基本假设:
1. 齐次马尔可夫假设
简单来说,就是当前状态仅取决于先前的状态和当前输入。
比如某个人在骑自行车,那么他下一刻的速度,仅仅取决于当前的速度和下一刻他蹬了多大力气,与他昨天骑自行车到哪条道路把车停在哪里都无关。或者说他当前的速度仅仅取决于上一刻的速度和当前他蹬了多大力气。
我们把时间分为3个点:上一刻(t-1)、现在(t)、下一刻(t+1),
那么根据马尔可夫假设,现在的状态仅仅取决于上一刻的状态和当前的控制输入,下一刻的状态仅仅取决于现在的状态和下一刻的控制输入。
这里的其实说的是条件概率,意思是在这一堆条件下发生的概率,等价于在条件下发生的概率。
2. 观测独立假设
是指任一时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测及状态无关。
同样地,这里的指的也是条件概率,意思是在这一堆条件下发生的概率,等价于在条件下发生的概率。
这两个假设非常重要,其实我们可以简单理解其为化简,把繁杂的公式进行了极大的简化。根据马尔科夫假设,我们才能推导出递归贝叶斯的更新公式。
三、贝叶斯滤波算法的数学推导
1. 贝叶斯公式
顺便推导一下多条件下的贝叶斯公式,后面的推导需要使用到这一个结论,
2. 根据贝叶斯公式进行推导贝叶斯滤波:
令为条件下的概率密度函数,即:
把看成一个整体,那么,根据我们上面的多条件下的贝叶斯公式进行展开可得:
根据观测独立假设,,只依赖于t时刻的马尔科夫链的状态,可得:
根据全概率公式,或者说是边缘概率密度函数,此处我们把看成是两个二维随机变量,求也就是求边缘概率密度函数了,可得:
根据齐次马尔可夫假设,,仅仅取决于t-1时刻的状态和当前t时刻控制输入,可得:
根据齐次马尔可夫假设,我们观察一下中,仅仅取决于t-2时刻的状态和当前t-1时刻控制输入,与无关,可得:
仔细观察,会发现这个式子就等于,所以原式等于:
至此,贝叶斯滤波推导完毕:
式中为后面所有项的广义积分的倒数,即
四、 先验概率、后验概率
书本上将
定义为后验概率(posterior):
指某件事已经发生,想要计算这件事发生的原因是由某个因素引起的概率,是根据结果推测原因。
定义为先验概率(prior)
:指根据以往经验和分析。在实验或采样前就可以得到的概率。
定义为似然概率(likelihood):是根据原因推测该原因导致结果发生的概率。
(evidence):指某件事发生的概率,概率上讲就是求边缘密度。
现在我们生活的地方偶尔可见一些流浪汪,它们短暂的一生中,可能会遇到好人给它们食物吃,也可能遇到普通路人,不理它没给它吃的。
假设在它们的世界中这几类人占比:
好人,喂吃的(占总数20%);
路人,无视(占总数80%)。
流浪汪小白总结了一个规律,那就是:
好人里面,大部分会对它微笑地招手,占90%,只有10%是面无表情的。
路人里面,大部分都是面无表情的,占85%,只有15%会对它微笑地招手。
这一天,刚满三周岁的小白想着今天要能遇到好人的话,生日鸡腿说不定就有着落了。这时候它看到一个微笑地招手的人走过来,小白开启了超算模式进行计算这个是好人的概率:
p(好人 | 微笑地招手)
= p(微笑地招手 | 好人)*p(好人) / p(微笑地招手)
= p(微笑地招手 | 好人)*p(好人) / (p(微笑地招手 | 好人)*p(好人) + p(微笑地招手 | 路人)*p(路人))
= 90%*20% / (90%*20% + 15%*80%)
= 60%
小白很开心,摇着尾巴屁颠屁颠地走了过去,毕竟它有六成把握对面这个人会给他鸡腿,可没想到那人竟然走开了没给他鸡腿!小白感到很失落,转身走向下一个街道,眼角余光瞄向旁边一个面无表情的人,又开启了超算模式:
p(好人 | 面无表情)
= p(面无表情 | 好人)*p(好人) / p(面无表情)
= p(面无表情 | 好人)*p(好人) / (p(面无表情 | 好人)*p(好人) + p(面无表情 | 路人)*p(路人))
= 10%*20% / (10%*20%+85%*80%)
= 2.86%
小白耸拉着耳朵,它知道这个面无表情的人是好人的概率只有2.86%,基本没什么希望了。突然间小白被一个东西砸了一下,定睛一看竟然是鸡腿,原来这个鸡腿是那个面无表情的人扔过来的,小白很开心,毕竟2.86%的概率都被它遇到了,简直是踩了自己shit运,运气真是太好了!
表达有限,希望通过简单例子解释先验、后验,说不清的地方还请见谅。
贝叶斯滤波(三)贝叶斯滤波算法推导相关推荐
- 集成学习(三):adaboost算法推导
adaboost概念(Adaptive Boosting) adaboost算法分析与推导 前向分步算法与adaboost adaboost算法总结 参考与推荐 adaboost概念(Adaptive ...
- 从贝叶斯滤波理论到容积卡尔曼滤波算法(CKF)详细推导及编程实现常转弯率模型估计。(matlab)
容积卡尔曼滤波(CKF)是由加拿大学者Arasaratnam和Haykin在2009年提出的.该算法的核心思想是针对非线性高斯系统,通过三阶球面径向容积准则来近似状态的后验均值和协方差,以保证在理论上 ...
- 贝叶斯滤波和贝叶斯平滑(Kalman滤波,RTS平滑)
文章目录 贝叶斯滤波(*Bayesian filtering equations*) 贝叶斯滤波方程 Kalman滤波 贝叶斯平滑(*Bayesian smoothing*) 贝叶斯最优平滑方程 Ra ...
- 不可小视的贝叶斯(三)
前面我们已经知道朴素贝叶斯分类器基于一个很强的假定,即对于给定的某个类别,各特征属性之间是相互独立的.这个假定简化了计算过程和减少了分类器的复杂度,但是其限制条件却太过苛刻.因为直观上我们知道,现实世 ...
- 清华大学计算机科学与技术系朱军教授:机器学习里的贝叶斯基本理论、模型和算法...
雷锋网[AI科技评论]按:3月3日,中国人工智能学会AIDL第二期[人工智能前沿讲习班]在北京中科院自动化所举行,本期讲习班的主题为[机器学习前沿].周志华教授担任学术主任,前来授课的嘉宾均为中国机器 ...
- 清华大学计算机科学与技术系朱军教授:机器学习里的贝叶斯基本理论、模型和算法
[转] http://www.leiphone.com/news/201703/djm3u9LLqylr3C8N.html 雷锋网[AI科技评论]按:3月3日,中国人工智能学会AIDL第二期[人工智能 ...
- 机器学习里的贝叶斯基本理论、模型和算法
本文转自中国人工智能学会通讯第3期,已获授权,特此感谢! 欢迎人工智能领域技术投稿.约稿.给文章纠错,请发送邮件至heyc@csdn.net 3月3日,中国人工智能学会AIDL第二期[人工智能前沿讲习 ...
- python推荐系统算法朴素贝叶斯_朴素贝叶斯算法在人才盘点中的应用(之一)
一.识别人才首先是处理不确定性问题 做招聘面试的HR应该会认同这样的经历. 打开应聘者简历,赫然写着TOP10名学毕业.抬头一瞧,小伙长得一表人才,精神抖擞,朝气蓬勃.HR兴趣大增. 再一看,研究方向 ...
- ML之NBLoR:利用NB(朴素贝叶斯)、LoR(逻辑斯蒂回归)算法(+TfidfVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析—五分类预测
ML之NB&LoR:利用NB(朴素贝叶斯).LoR(逻辑斯蒂回归)算法(+TfidfVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析-五分类预测 目录 输出结果 ...
- ML之NBLoR:利用NB(朴素贝叶斯)、LoR(逻辑斯蒂回归)算法(+CountVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析—五分类预测
ML之NB&LoR:利用NB(朴素贝叶斯).LoR(逻辑斯蒂回归)算法(+CountVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析-五分类预测 目录 输出结果 ...
最新文章
- 把Apache里面的网站和MySQL数据库移动到home盘
- python停止运行_python停止不了
- [转]【HttpServlet】HttpServletResponse接口 案例:完成文件下载
- 单片机中如何将BCD码拆开_单片机bcd码转换
- CS和BS结构的优缺点
- .net中三种Timer使用总结
- 在macOS Big Sur上如何重置蓝牙?
- Nginx ~模块详解~
- 暗影精灵4 i5-8300H 核显驱动完美触控板声音亮度调节电池电量显示黑苹果EFI引导
- 云计算、计算虚拟化、网络基础简介
- Python 计算两点之间的距离
- [Android 测试] 性能回归测试之 MonkeyRunner使用、插件扩展、结合批处理
- Linux 系统常见命令功能大全_【all】
- L13:数据结构-5(树和二叉树)
- 教你几种方法最大限度减轻酒精对你身体的伤害
- c语言双胞胎素数,征求好的算法:输出十万以内的双胞胎素数
- 收钱吧-轻POS接口
- C语言.字符串,及string.h初步应用
- 做嵌入式开发,前景怎么样?
- python包导入详解
热门文章
- 将byte[] 转换成图片
- 利用Python做一个简单的打印店计费程序
- 数码管显示原理:共阴极和共阳极的区别,静态显示程序。
- 微信真机调试时出现 (in promise) MiniProgramError {“errMsg“:“hideLoading:fail:toast can‘t be found“} Object
- mac小技巧:如何在有滚动的内容时截出全图?
- ensp配置ssh后无法远程连接问题
- 【Python】Python之end()关键字使用
- python爬取微博用户信息(四)—— 爬取用户信息的功能函数
- 01.尚硅谷网课1-前端简介
- 【Arduino】基于阿里云的体感手柄