本博客试图用一些最直观,形象,具体实例的方式解释相关概念

首先,平差(英文中一般叫Adjustment)对于测绘专业的人来说是一个熟悉的不能在熟悉的名词了。还记得当年被间接平差,条件平差虐的一脸懵逼的样子么!下面我将以一些最简单的例子阐述什么是平差,高斯马尔科夫模型是什么鬼? Let’s go!

首先我们可以从英文翻译上去简单的理解。一般国外测绘类的平差课程名字会叫做Adjustment Computation什么的,意思就是“调整计算”。那么我们可能要问,为什么要进行调整计算?不调整不行么?如何进行调整?调整之后如何评价?如何检验这个调整的正确性?让我们一一来解释相关的问题。首先第一个问题的答案很明显,必须要!原因是现实世界并没有我们想象的那么完美,处处都是坑,处处都有误差的存在,不调整真的不行。既然现实是残酷的不完美的,那么我们如何调整才能比较完美呢?调整之后如何评价这种调整就是完美的呢?这就自然引出了测绘平差中的两大任务:一是必须要对测量的数据进行相关的调整,得到比较完美的值;二是调整完之后,不是你说我的这种调整是最好的就是最好的,要有一种方法去客观地评价我们做出的这种调整是好是坏。

好了,说了这么多。先给出一个极其简单的例子告诉你什么是平差!

假设这是一根木头。你想知道它的真实长度。可惜你永远也不可能知道。它的真实长度虽然是存在的,但是那只是理想中的值,实际中我们是无法获取这跟木头的真实长度的,所有说理想和现实还有有一点差距的。但是我们可以尽可能的去估计它的真实长度啊!接下来就是怎么去估计呢?首先当然是直接拿尺子去量了。然后用这些测量值来估计这跟尺子的真实长度。这应该就是测量平差最简单的模型了(没有之一)。

接下来我们就要拿尺子上场了,开始测起来!问题又来了(哈哈),你测得时候万一手抖,本来一米左右的木头被你这样手抖之后测成一米二,这不就尴尬了;再就是如果你在北极和撒哈拉大沙漠分别测,你的尺子真的是会热胀冷缩的,这时我们得到的数据是会由于这个原因带来相关误差的,最后就是假设你也没有手抖,尺子什么的可能也很完美,都不存在这些问题,那么我们可能想这下应该可以测的很准确了吧。答案是你又天真了。在强调一遍,这个世界是复杂的,混乱的,充满随机性的!即便你再怎么完美的测量,都会存在一些随机的误差。(整个宇宙都是随机的,应该这样理解)这下我们可以大概的总结一下三种不同的误差类型了。一是上述提到了由于手抖造成的误差,一般叫这种误差为粗差(outlier or gross error),二是像热胀冷缩这些有规律可循的误差,一般叫做系统误差(systematic error),三就是由于世界的随机性而带来的误差,一般叫做随机误差(random error)。但是在这个我们暂时就不搞那么复杂了,假设我们手也没抖,尺子质量也非常好,所以只存在一些随机性的误差。

然后我们可能就想知道,这个随机误差长什么样子啊,高富帅还是白富美还是其他什么样子呢?其实,这个误差就长成下面这样:

这就是大名鼎鼎的正态分布!可能你又要质疑了,凭什么你说随机误差长这样!That’s a good question! (haha)。其实对于这种自然界的随机规律我也解释不清楚,大家有兴趣可以去参考中心极限定理。行了,下面我们正式给出我们的观测值(observations):y={y1,y2...yn}y=\{y_1,y_2 ... y_n\}y={y1​,y2​...yn​},假设我们尺子的真实长度为 ξ\xiξ,每次测量时的随机误差为:{e1,e2,...,en}\{e_1, e_2, ..., e_n\}{e1​,e2​,...,en​},然后我们就可列出我们的误差方程了:
y1=ξ+e1y2=ξ+e2⋮yn=ξ+eny_1 = \xi + e_1 \\y_2 = \xi + e_2 \\ \vdots \\y_n=\xi + e_n y1​=ξ+e1​y2​=ξ+e2​⋮yn​=ξ+en​
写成矩阵的形式就是:
y=Aξ+ey = A \xi + e y=Aξ+e
这种矩阵形式就是最最最简单的高斯马尔科夫模型(GMM)了。接下来要做的就是开始做调整计算使我们尽可能准确地去估计木头的真实长度。那么我们怎么调整呢,以一个什么准则去调整呢?这就像我们找对象,有的人喜欢个子高的,可能就找了一圈人中个子最高的,行,这个就是你挑选对象准则下的最优对象。而有的人喜欢头发长的,那就在一群人中找一个头发最长的,这个就是你挑选对象准则下的最优对象。可能这里有很多准则,每个人的准则都不一样,所以导致找的对象也就不一样。在做调整计算这里是同样的道理,我们选什么样的准则来作为我们计算木头真实长度的最优估值呢。这是一个问题!然而在100多年前,有一个叫高斯(Gauss)的大神就确定了一个大家都能接受的准则并且效果非常不错。那就是误差的平方和最小,史称最小二乘(Least Square)。说起高斯大神,可谓无人不知无人不晓啊,100多年过去,高斯大神的准则还是万丈光芒,实在是佩服佩服!你可能要说为什么我非要用高斯大神的最小二乘?当然,你可以用你自己的准则或其他的准则去估计,但是你能确定这些准则会比高斯大神的准则还好?我表示怀疑。如果你的准则过于奇葩的话,效果也不好,可能也就你一个人用吧。

到这里,我们有了观测值,也有了调整的准则。接下来就在这个准则下,如何通过这些观测值去计算最优的木头真实长度 ξ\xiξ 的估值。接下来的博客会继续推导如何计算等问题。

最后,升华一下刚才讨论的话题。从数学的角度出发,刚刚的问题本质上就是一个参数估计(Parameter Estimation)问题。木头的真实长度 ξ\xiξ 就是待估的参数,这个参数是静态的(static)或固定的(fixed),而不是变化的(dynamic)或随机的(random),这点对于参数估计非常重要。多次的测量值就是我们的观测值,观测值的分布是已知的,即正态分布,这点对于参数估计也非常重要。所以总结一下我们上述的问题:就是在分布已知的多个观测值中去最优的估计一个线性模型中的固定的参数(这里的观测值和待估参数是呈线性的关系,所以是线性模型)。

平差的理解及一种最简单的高斯马尔科夫模型(Gauss Markov Model)相关推荐

  1. 史上最简单的隐马尔可夫模型讲解

    如果... 如果...有一天...你追到了女神夕小瑶...并且与她恋爱了... (想说"没有如果"的路人请选择狗带( ̄∇ ̄)) 小夕的生活很规律的哦,小夕每天都会依次经历且仅仅经历 ...

  2. 隐马尔科夫模型一(概念理解)

    前言 由于前一段时间在看CTC论文,里面用到了HMM中的前向后向算法,推公式的时候·一脸懵逼,所以又来学习HMM的思想,所以写篇博客做个笔记.本部分博客分为两篇,第一篇主要介绍一些基本的概念和思想,第 ...

  3. 隐马尔科夫模型(HMM)算法的理解与超详细推导

    今天看了徐亦达教授的HMM讲解,感觉有所收获,并将隐马尔科夫模型算法的推导整理了一下,帮助大家一起理解这个算法.首先我们通过一个股票的案例来引入这个算法,我们来看看这个股票行情和涨跌观测值的一个状态图 ...

  4. 马尔科夫模型在Gowalla数据集下的简单实践

    马尔科夫模型在Gowalla数据集下的简单实践 马尔科夫模型实践第一战 基础知识 数学知识 代码知识 数据处理 单独一次转移的概率计算函数设计 生成转移概率矩阵 生成初始向量 结论 马尔科夫模型实践第 ...

  5. python做马尔科夫模型预测法_隐马尔可夫模型的前向算法和后向算法理解与实现(Python)...

    前言 隐马尔可夫模型(HMM)是可用于标注问题的统计学习模型,描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型. 马尔可夫模型理论与分析 参考<统计学习方法>这本书,书上已经讲得 ...

  6. 隐马尔科夫模型-EM模型-混合理解

    https://blog.csdn.net/herr_kun/article/details/83548546 https://zhuanlan.zhihu.com/p/46160757 https: ...

  7. 隐马尔科夫模型,第三种问题解法,维比特算法(biterbi) algorithm python代码

    上篇介绍了隐马尔科夫模型 本文给出关于问题3解决方法,并给出一个例子的python代码 回顾上文,问题3是什么, 下面给出,维比特算法(biterbi) algorithm 下面通过一个具体例子,来说 ...

  8. 隐马尔科夫模型(HMM)理解与总结

    目录 1. HMM模型概念 1.1 HMM定义 1.2 HMM实例 2 HMM的三个问题: 2.1 计算观察序列的概率 2.1.1 前向算法 2.1.2 后向算法 2.1.3 利用前向概率和后向概率计 ...

  9. 以拼音输入法(自然语言处理)为例,简单理解隐含马尔可夫模型

    最近在学习 语音&搜索 方面的知识,属于从门外汉起步,很多这方面的书在讲解的时候都是要求有相关知识背景或者是一堆公式让像我这样不是学计算机出身而且数学也学得不好的菜鸟看得头晕眼花的,因此特地写 ...

  10. 全面理解隐马尔可夫模型

    文章目录 隐马尔可夫模型的基本概念 隐马尔可夫模型的定义 观测序列的生成 隐马尔可夫模型的三个基本问题 概率计算算法 直接计算法 前向算法 后向算法 一些概率与期望值的计算 学习算法 监督学习方法 转 ...

最新文章

  1. 关于地图中轨迹的平滑移动的实现
  2. GPUImageMovieWriter实现暂停录制,重新录制
  3. MySQL 不落地迁移、导入 PostgreSQL - 推荐 rds_dbsync
  4. Linux 查看日志关键字
  5. monkey 环境搭建
  6. C#中HTML和UBB互相转换的代码
  7. cpython python 区别面试_python基础教程之千万不要错过这几道Python面试题
  8. js 链接websocket马上断开_SpringBoot+WebSocket实现简单的数据推送
  9. sqlservr.exe占用大量内存
  10. c++/ boost 库常见错误及解决方法总结
  11. 【转】Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
  12. Adobe Acrobat reading untagged document window pops up
  13. 免杀工具BypassAv-web使用教程
  14. 【4G模块】-有方科技Neoway-N720
  15. 写一篇本科/硕士毕业论文究竟需要看多少篇文献?
  16. 修改Android应用名称
  17. 政府行业微信公众号有哪些吸引粉丝的技巧
  18. rar压缩包找回压缩密码
  19. html有红色虚线边框效果,html 边框虚线
  20. java生成pdf文件乱码问题解决

热门文章

  1. chrome 插件tempermonkey
  2. python语言是不是多模型语言_Python模型转换为Modelica模型的方法与流程
  3. Android-Studio中AndroidManifest-xml文件中application标签
  4. 论文阅读笔记:内卷involution《Involution: Inverting the Inherence of Convolution for Visual Recognition》
  5. 云计算就业前景究竟好不好 零基础如何学云计算
  6. jQuery表格新增行
  7. Android 使用数据库操作应用加锁、未加锁,列表展示效果
  8. C# 使用Magick.NET进行图片格式转换,修改尺寸(.ico .jpg .png .gif .bmp),解决png转jpg透明变黑底问题
  9. 电脑上怎么安装c语言编程软件,如何在自己的电脑上安装C语言运行的环境?
  10. aria2 txt导入_共一章 · mac下使用Aria2教程-迅雷和百度盘终极解决方案 · 看云