【纯感性】【无数学公式】关于状态估计的总结和一点思考
1|0推导的几种方法
1|1贝叶斯推断
根据贝叶斯推断可以直接求出后验概率 且贝叶斯推断的分母一般可以忽略 或者涵盖在了分子前的系数那里
1|2联合高斯概率密度
对于一对服从多元正态分布的变量我们很容易求得它们的联合概率密度函数 然后我们也可以很容易的将联合密度分解成两个因子的乘积形式 然后用联合概率除掉边缘概率就能得到条件概率 即我们要求的后验概率
其中广义高斯滤波采用的就是这种方式
1|3批量优化
对于后验概率我们可以采用迭代的方式 这里包含牛顿法高斯牛顿法等 是从贝叶斯推断得不到解析解的情况下使用迭代的方式获得最优解 但本质其实还是贝叶斯推断(觉得不妥可以忽略这句话,毕竟也是从贝叶斯的基础上进行迭代的)
2|0线性高斯系统
2|1批量式估计
批量式估计的方法分为MAP即最大后验估计和贝叶斯推断
MAP求的是模 即最大的点 贝叶斯推断求的是分布 又因为是高斯分布 所以等同于求均值 因为是线性高斯系统 因此模即高斯分布的均值 求解出的解析解也是相等的
2|2递归式估计
平滑算法
递归式估计中有平滑算法 平滑算法的求解用到了cholesky等分解方法 求解本质上是传递式求解
平滑算法分为前向和后向过程 前向过程其实就是卡尔曼滤波 或者可以理解为只是通过k时刻之前的数据就能推断出k时刻的状态
而后项过程是通过下一时刻的信息更新之前的估计
所以平滑算法无法在线运行
卡尔曼滤波
因平滑算法的后向过程需要下一时刻的信息更新之前的估计 所以我们可以只使用平滑算法的前向过程 其实就是卡尔曼滤波算法
本质上就是前一时刻的后验传递出去被当作当前时刻的先验
再通过观测 对当前时刻的先验进行调整 作为当前时刻的后验 输出
换种方式理解:就是从先验和观测中 根据协方差矩阵呢决定更相信先验还是更相信观测 二者取权重 综合二者作为后验的结果
卡尔曼滤波器可以从MAP得出 也可以从贝叶斯推断得出
三个重要假设
- 线性系统
- 高斯分布 状态和噪声全部都是高斯分布
- 马尔可夫性 即当前时刻仅和上一时刻的状态有关
3|0非线性非高斯系统
3|1扩展卡尔曼滤波
扩展卡尔曼滤波的推导是基于贝叶斯推导得出来的结果,这里做了很多假设:
- 马尔科夫性假设
- 噪声服从高斯分布且是线性 加在非线性函数的外面
- 状态也是服从高斯分布 或者可以理解用高斯分布去近似实际的分布
- 在均值处进行线性化
讨论如下:
NLNG系统本身大多数情况就不符合一个波峰的分布 因此贝叶斯滤波本质上是从高斯分布去近似 但真值如果是多个波峰的情况用高斯分布去近似本身就非常不准
另外均值出进行线性化说明EKF认为均值就是模或者至少很近似 但实际情况如果模和均值相差的很远 这种情况就会导致EKF不能收敛
所以EKF不能够保证在一般的非线性系统中能够充分的发挥作用(机器人学中的状态估计P91)
3|2广义高斯滤波
广义高斯滤波上文提到过 是基于联合概率分解出条件概率和边缘概率得到的后验概率 对于非线性的情况我们大概能得到表达上的解析解 但是由于是非线性 很多变量我们实际情况中无法计算 因此也不适合处理NLNG系统 但是从广义高斯滤波我们能够推出下面的迭代扩展卡尔曼滤波IEKF
3|3迭代扩展卡尔曼滤波
和扩展卡尔曼滤波的区别就是线性化点从均值(EKF)调整到了最开始随意一点 然后得到的结果传入广义高斯滤波中 得到的后验结果作为新的线性化点 直到线性化点和后验差值很小的时候认为收敛了才算完成迭代
讨论如下:
之前说道广义高斯滤波无法应用到NLNG系统是因为很多值无法求得 所以这里采用了线性化的方法使得很多值在这里能够求出 这是其一
其二这里仍然是用高斯分布近似NLNG 但是和EKF相比至少是一定可以收敛的 EKF不能收敛是算法本身最大的问题
3|4其他方法
其他的方法除了蒙特卡罗和粒子滤波 大概都是线性化或高斯近似 例如UKF 这里不做过多感性的介绍并不是他们的效果不好 而是本质上差别不大
真正能够解决NLNG系统的其实是蒙特卡罗和粒子滤波算法
3|5蒙特卡罗
蒙特卡罗方法是真的大哥 将所有的样本都输入进非线性函数中求得非常是准确的分布 蒙特卡罗是无敌的 但是由于这种大数的方法 导致非常低效 非常非常低效导致一般不会使用它在线估计(不排除有黑魔法之类的我没体会到)
3|6粒子滤波
粒子滤波是唯一一种能够处理非高斯噪声 非线性观测模型和运动模型的实用技术 甚至不需要知道解析表达式(机器人学中的状态估计P100)
大意为抽取一定数量的样本 然后将这些样本传入非线性函数中 得到后验分布的预测(这里只是后验分布的预测而不是后验分布 强调一下) 然后因为我们在当前时刻产生了一些实际的观测 然后我们将上面得到的预测再传入非线性观测模型中同样能够得到不一样的观测 根据这个我们可以对不同的粒子赋予不同的权重 称为重采样(重采样的方法有很多 这里不细说 感性认识)然后重复上述步骤知道和当前的观测分布差不多 则认为粒子的分布就是后验的分布
3|7非线性批量优化问题
这里即是一些牛顿法高斯牛顿法的地盘 和线性高斯系统的区别就是这里没有办法得到解析解 只能找到误差函数减小的方向 然后沿着这个方向一直做迭代 直到更新的状态量小于一定阈值为止。从贝叶斯推断和MAP都可以推导出迭代的解析式(Hx=b)两种推导方式本质上没有区别 都是线性化+用高斯分布去近似。因为二者都是使用线性化的方式在得到的均值附近进行迭代 所以两者的方法解析上得到相同的均值表达式 这里不做过多的介绍
3|8最大似然的偏差估计
这里其实是因为最大似然对期望的估计是有偏差的嘛 那我在更新线性化点的时候减掉这个偏差的期望 理论上能够得到更为理想的结果 但是感觉上这种方法好像网上资料不多 从状态估计的书中感觉这种方法比较脆弱 只能在轻度非线性系统中使用?
3|9连续时间的批量优化问题
所有的变量都是和时间有关的 你能想到的 全部 都是和时间有关的 有时间整死我吧还是 这里不做探讨
__EOF__

本文链接:https://www.cnblogs.com/linglingdog/p/17059848.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)