Java教程

算法篇(1)

本文主要是介绍算法篇(1),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

算法篇(1)

         因为下学期才开始概率论的学习,所以这里简单写下学习笔记。

贝叶斯滤波

​    相信大家对概率都不陌生吧,但是今天介绍的贝叶斯滤波与我们平常的概率学不大相同,这里举个我学长跟我介绍的例子,就比如我们平常抛硬币,我们抛一次正面朝上的概率是1/2,抛10次,100次呢?按平常的习惯我们一般都是觉得是1/2,为什么是1/2呢?

​    这是在大量重复实验中获得的我们平常所依靠的概率,但是在贝叶斯滤波却会根据每次输入的信息不断更新抛硬币的概率,这样我们抛硬币的概率就不是1/2了。简单来说就是贝叶斯概率是根据自己的生活活动积累,对某件事情发生的可能性给出的信息,贝叶斯允许利用主观概率。

   这里先分享下我学习的博客:【易懂教程】我是如何十分钟理解与推导贝叶斯滤波(Bayes Filter)算法?_@司南牧|知乎|博客|易懂教程|李韬-CSDN博客_贝叶斯滤波

   贝叶斯框架大概可以概述为,用两个传感器,一个用于预测下一次状态,一个用于观测,矫正下一次状态,不断更新迭代状态信息,并剔除较大的传感器误差。

   提到滤波,就不得不提,滤波和优化有什么区别:

   滤波:根据当下的变量信息确定下一时刻变量的信息,每一时刻只根据上一时刻的数据的信息进行估计当前的信息。

   优化:构建一个图,在图中维护所有时刻的状态信息,等到回环形成后对所有状态进行调整。

   为什么贝叶斯只根据当下的变量信息,而不用以往的所有变量信息来确定下一刻的变量信息呢?
   马尔科夫假设:机器人当前时刻状态是对过去所有预测和观测的完整总结,机器人可以不依赖先前的信息就可以估计下一时刻变量的状态。简单来说就是,当下的信息足够准确,准确到不再需要其他时刻状态信息来确定下一时刻的变量状态。

这里,我用小车的状态估计讲解下贝叶斯滤波的推导。

当小车在实现障碍物避障时,
在 t 时 刻 检 测 到 自 己 离 障 碍 物 的 距 离 是 z t 在t时刻检测到自己离障碍物的距离是z_t 在t时刻检测到自己离障碍物的距离是zt​

控 制 自 己 移 动 的 命 令 是 让 它 移 动 u t 这 么 远 的 距 离 控制自己移动的命令是让它移动u_t这么远的距离 控制自己移动的命令是让它移动ut​这么远的距离

算 法 根 据 传 感 器 数 据 和 控 制 器 数 据 估 计 出 障 碍 物 的 距 离 是 x t 算法根据传感器数据和控制器数据估计出障碍物的距离是x_t 算法根据传感器数据和控制器数据估计出障碍物的距离是xt​

算 法 上 个 时 刻 估 算 出 的 距 离 是 x t − 1 算法上个时刻估算出的距离是x_{t-1} 算法上个时刻估算出的距离是xt−1​

​    由于传感器,控制器这些经常存在各种误差,所以导致我们小车运动的时候经常存在许多误差(玩无人机的时候这些误差更是要命)。然而我们如何确认哪些数据是我们真正需要的数据呢?

​    取算法算出概率大于80%的值进行输入,只要大于80%我们就可以大致认为这个数据是正确的
( P ( x t ∣ z t , u t , x t − 1 ) 这 个 概 率 公 式 指 的 是 在 知 道 传 感 器 数 据 是 z t , 控 制 器 数 (P(x_t|z_t,u_t,x_{t-1})这个概率公式指的是在知道传感器数据是z_t,控制器数 (P(xt​∣zt​,ut​,xt−1​)这个概率公式指的是在知道传感器数据是zt​,控制器数

据 是 u t , 上 个 状 态 是 x t − 1 的 情 况 下 当 前 状 态 是 x t 的 概 率 。 ) 据是u_t,上个状态是x_{t-1}的情况下当前状态是x_t的概率。) 据是ut​,上个状态是xt−1​的情况下当前状态是xt​的概率。)

以下为我们的已知条件:

(1).
P ( z t ∣ x t ) P(z_t∣x_t) P(zt​∣xt​)
​    当小车Xt状态时,观测值为Zt的概率。

(2).
P ( x t ∣ x t − 1 , u t ) P(x_t∣x_t−1,u_t) P(xt​∣xt​−1,ut​)
​    当小车上个状态确定,然后采取了Ut这个操作时,小车此时距离障碍物的距离为Xt的概率。

(3).
P ( u t ∣ x t − 1 ) P(u_t∣x _{t−1}) P(ut​∣xt−1​)
​    当小车上个状态确定,然后小车此时执行指令Ut的概率。

(4).

​    当前小车的观察值Zt只与当前的Xt有关,与另外两项无关。

(5).当前状态Xt与上个时刻的状态和控制命令有关。

推导开始:

1.根据算法定义

       在这里插入图片描述

​ (计算Xt在传感器数据、控制器数据、上次的距离都确定的条件下的准确率。)

在这里插入图片描述

   有上述5个已知得,Zt的已知条件只有一个(已知(1)),而且是在|的左边,所以我们将Zt都转换到|的左边进行计算。

在这里插入图片描述

由我们的已知条件(3),可将分母的P转换。

在这里插入图片描述

由我们的已知条件(2),可将分子转换。

在这里插入图片描述

又可由已知条件(3),将分子继续转换。

在这里插入图片描述

分子分母相消。

           在这里插入图片描述
           在这里插入图片描述

由已知(4)(5)可将上述P式转换,结果带入式中,计算得:
在这里插入图片描述

8.此时用η 表示分母,则得到下式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BaK0OTQJ-1638088200235)(C:\Users\Smile\AppData\Roaming\Typora\typora-user-images\image-20211128161758486.png)]

以上就是所有的推导啦。

11.28学习笔记。

这篇关于算法篇(1)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!