南山学长在纸上写下了一个公式:
e=z-h(x)
小K:这是什么?
南山学长:这是一个蕴含了宇宙的终极奥秘的公式。
小K:怎么可能?太离谱了,这只是一个普通的公式!
南山学长:那好你用尺子测量一下纸上的这条直线有多长。
小K(一脸疑惑的):3.55cm
南山学长:你何以如此确信这条直线就是3.55cm,我是说它可能介于3.55和3.56之间,如果你再把图像放大,也许就能精确到小数点后三位。
小K(想了想):恩,是这样的,放的越大得到的数据就越精确。
南山学长:那么问题来了,这条直线必然存在一个精确的长度,而且可以无限精确下去。这个值才是……
小K(惊呆了):被观测物体的真值!!!
南山学长:没错,它就是被观测物体的真值。它是如此的完美和精确,存在于柏拉图理想世界中,在这个世界中所有的物体都是绝对精确的。
小K:但是我们在一个现实世界中却得到了这个真值的观测值,这是为什么?
南山学长:因为观测!!!观测桥接了这两个世界,我们甚至可以建立一个观测模型。
小K:观测模型?哪儿有?
南山学长:我忘了告诉你,这把尺子是不精确的,它总是少量了0.01cm
小K(恍然大悟):哦,我明白了。观测模型其实就是一个函数,比如说h(x),x是被观测物体的真值,而我们通过观测模型观测到的却是h(x)。在直线这个例子中观测模型就是h(x)=x-0.01,我们已经有了观测值z=3.55,如果z=h(x),那么真值就是3.56了!嗯,好像也不对啊
南山学长:你说的没错,3.56绝对不是真值!你我皆是凡人,怎能如此轻易的就企及了神的高度?所以我们离真值还是有距离的,假设为e,那么就有了e=z-h(x)这个公式。
小K:但这并没有什么用啊?我们又不能用这个公式求出真值x。
南山学长:我们的却不能,但是我们可以求出一个最优的估计x*,一个使e最小的x值。
小K:函数e(x)的最小值,对,我们的却能求出一个最优的估计,只需要使用高等数学的知识就可以。
南山学长:观测值与观测对象之间存在某种约束,每一次观测都形成一个约束,通过e=z-h(x)我们就能得到最接近真值的一个估值。好,看来你已经明白了,但是你的思维应该上升到哲学的高度,给你做个小练习吧。
小K:这不就是个最小二乘吗?你也太小看我了?
南山学长:我的问题是,如果用边表示观测和观测值,用点表示观测对象,那么在这个问题中应该怎样绘图?
小K:这哪儿跟那?哪里有观测?
南山学长:你得看到事物的本质!给你个提示吧,我们其实观测的是一条直线,用数学的语言来说就是两个参数k和b
小K(幡然醒悟):我们的观测对象是k和b,观测模型是h=kx+b,观测值是10个坐标点,那么这个图可以表示成:
南山学长:嗯,看来你已经明白了,我们这个世界是粗糙的,所以观测无处不在,观测对象也是广泛而抽象的。
小K(感觉像是打开了新世界的大门):我们的每次观测也可以是对多个对象进行的,我们也可能对观测对象集合做了多次观测,那么就存在下面这种奇怪的边:
哦,不。这已经完全超出了我所学的图论的内容,我的世界观快崩溃了。
南山学长:是时候更新你的世界观了,这种奇怪的边叫超边(Hyper edge),含有这种边的图叫超图(Hyper Graph)。我们的对这类问题的表示方法叫图优化,简单的说就是在已知观测模型的情况下,根据一系列观测数据来估计观测对象集合的全局最优估计。
小K:这真是极好啊!这样一来,好多问题都可以转化为图优化问题了!比如slam问题:
方框是机器人位姿,圆圈是路标位姿,都是位姿,我们都不知道。但是我们知道运动模型和观测模型,并且传感器能直接给出观测值u和z,通过图优化我们就能估计机器人和路标最优的位姿,我猜这大概就是传说中的同时定位与制图。
南山学长:嗯,很好,你领悟的很透彻。其实vo也是个图优化问题,只不过在计算机视觉中叫bundle adjustment:
对于三维空间中的一堆点,我们观测到了两个视角下的平面二维坐标,并且已知观测模型:
z1,z2表示两个视角下的观测值,X表示三维空间点坐标,R和t描述相机运动,最终优化函数如下:
小K:我明白了,z1是对X的观测,z2是对X,R,t的观测,这可以表述成超图:
哈哈,实在是太神奇了,感觉像突然打通了任督二脉。又仿佛穿越了迷雾,直达事物的本质。
南山学长:上面只是问题的表示与建模,优化估值是如何算出来的你还不知道,所以你还有很长的路要走,还有很多的东西要学。