继续感谢Barfoot教授与高翔博士及小伙伴们

最近项目组项目攻关的过程中又卡住了,问题成因一层层地扒基本也拿住了,实验也在疯狂地做,一般到了这个阶段我又没啥事干了,于是开始码字

写正经事前开始惯常性吐槽,同事和学弟们说写文章一定要多发图多放式子多放代码和链接。。。

但是作为一个刚满40的老工程师,实在是不擅长这些,如何用最简单的语言和标注把事情说明白,我觉得是一件更加有意义的事情。

今天讲的是贝叶斯法则与概率,突然想是不是不应该写那么枯燥,这里本来也是我的一个树洞,干脆扯点淡。

我是2000届,03年提前毕业实习,刚好是大学生扩招前一年,我们那年代大学生还挺值钱的。当时毕业后家里推荐的工作是进电信,大部分最优秀的同学杀去了外企,当时也就学生会几个领导选择了考公考编,我因为阅读老板的2篇文章“华为的冬天”与“我的父亲母亲”,义无反顾地去了一家当时还不算在公众界出名,但是在业界已经是大佬的企业:“深圳华为技术有限公司”

以至于后续很多年,我爸妈问我是做啥的,我只能直接回答:做手机的。其实2011年前华为的业务和手机真没啥关系。

在华为,一呆就是9年横跨40国,我实在是收获了太多太多的东西,间接改变了我的一生,此处不赘述,后续有空再扯。

2012从华为离开以后,我进入了香港科技大学FYTRI,在广州南沙这个鸟不生蛋的山卡拉,一呆又是3,4年,好就好在够安静,可以好好地做研究。在这个过程,差点萌生了去做讲师的道路,认真想想可能也是因为太闲。。。但我本质上是一个闲不住的人,于是从2012年开始一闷头砸进了机器视觉。

2015年底2016年初,机缘巧合的情况下,莫名其妙地创立了现在的公司,开门6个人,要钱没钱,要单没单。自己又是一个34岁的大龄创业者,堪称悲催。还好2016年春季过去终于弄到了几个小单子,于是就一直这么混过来了。

       后面的事情就比较正常了,企业正常发展,踏踏实实为客户和伙伴们服务,不知不觉来到了110人的状态,在细分领域也有了一些输出。最近这几年才真正整明白,原来科技企业还可以融资发展。。。实在是太土鳖了。我们小组织最大的特点就是混到今年,有了一小群志同道合的工程师,在当下内卷无比的环境里,还有着一块小小的立足之地。

      最近某4字演员事件,全民声讨,现在的毕业生,未毕业就开始筹备考公考编考研。这件事的本质带来了文前的吐槽。如果还年轻,还有理想,即不要选择一腔豪言壮语声称分分钟改变世界;也不要迅速选择躺平啊。。。如果有可能,还是尽量远离自己的舒适区,尝试一下用不断地刻意练习,一步步慢慢地去创造价值,改变人生。

      也许从某种意义上来说,我们也在努力着,希望为大家有更好的未来,出那么一小份力量。

       闲谈扯完,开始聊贝叶斯,今天和小伙伴们㭌上了,决定写一篇全白话文,以表述贝叶斯法则在机器人状态估计中起的核心作用。其实这个世界的数理确实复杂,但往往它们开始往工程阶段走时,我们往往可以用最简单的方式达成理解。贝叶斯法则的本质是当有nnnn个人(变量),认为一件事在系统里发生了,则这件事发生的几率极高。当然反之有2种情况,如果在一个大数里这里面有个别人反对,我们可以不理会,当其为离群值(outliar),但如果有1/3的人反对,那我们就应该评估这件事是否发生了,应该重新进行估计。

       听起来很有意思吧?其实这个也是机器人状态估计的本质方法。接下来讲讲贝叶斯法则的基础形式:后验=先验*似然/xx(标量)。这里需要牢记的是贝叶斯法则本质是描述事件A和B互为条件下概率之间确定关系的陈述。

       在具体工程工作中我们只需要关注它们在机器人状态估计中分别代表啥即可,白话说法:后验就是咱们要的状态估计x,先验就是传感器观测/测量值y/v,似然是其中比较难理解的部分,在机器人状态估计中直接对应当状态是某一个x值时,对应观测/测量值y/v应该是多少。通常是一整组的数据,在系统中我们也称之为条件概率。

      最大后验估计又是啥呢?一句话表述就是我们把所有拿到的观测y和测量v(如陀螺仪)的数据都扔进系统,然后去看状态估计x值最大的可能性。本质上我们寻找这种最优状态估计的方法,又可以根据已有的数据计算最大似然估计。实际上也是我们去最小化整体目标函数J(x)(有时叫F(x))的过程。

     目标函数来自于运动/观测方程(形式不赘述,到处都有),与系列文章第一篇高斯分布应用有密不可分的关系。这里最重要的参考图是机器人学中的状态估计p38页中图3-1。

     贝叶斯推断和最大后验估计最大的区别:贝叶斯推断从已经建立的状态先验估计出发,比如以运动方程建立先验,最终计算全贝叶斯后验概率。最大后验估计是全扔进去做。

    贝叶斯滤波:其实贝叶斯滤波是相对最傻瓜式的方法,但是也是一切的根基,目前我们掌握的大量的滤波方式也是由其引发,因此充分了解其工作机理是很有益的。

    这里必须提一下一阶马尔科夫性:k时刻状态仅与k-1时刻状态相关的假设,卡尔曼滤波的基础

    因为这一章重点讲贝叶斯,就不过多提及前向后向与卡尔曼滤波了。贝叶斯滤波的核心形式:

η(归一化常量),g(.)是非线性观测模型,f(.)是非线性运动模型,其核心要点是通过这2个来传递高斯概率密度函数以更新状态估计。数学形式清晰逻辑一目了然。但贝叶斯滤波在工程中有如下核心问题:

1.概率密度函数本身是连续函数,实际我们状态估计中基本是以离散形式进行处理。会大量占据存储与开销。

2.连续积分非常耗时,需离散化或进行线性近似。

后续再简析卡尔曼滤波,扩展卡尔曼滤波等,贝叶斯就到这吧~其实写完发现也没有那么白话。。。算了我尽力了。