机器学习40讲_36_34_连续序列化模型线性动态系统
你好,我是王天一。
今天我和你分享的主题是连续序列化模型、线性动态系统在野马尔可夫模型之中,一般的假设是状态,还有观测都是离散的随机变量。
如果说假定隐藏的状态变量满足连续分布的话,那么得到的就是线性动态系统。
所以说这个概念呢更多的出现在信号处理,还有控制论当中,看起来和机器学习风马牛不相及。
但是如果我们从马尔可夫性还有贝叶斯概率的角度来观察的话,线性系统它也是一类重要的处理序列化数据的模型,线性动态系统的作用可以通过下面这个例子来说明。
假设说一个传感器被用于测量未置的物理量z但是测量结果x会受到零均值高斯噪声的影响。
那么在单次的测量当中啊,根据最大自然估计可以得到对于未知的z最优的估计值。
就是这个测量结果x本身啊也就是令z等于x.可是如果可以对z进行多次重复测量的话,那我同时测很多次。
这时呢就可以通过求解这些结果的平均来平滑掉随机噪声的影响,计算出更加精确的估计。
上面这方法呢好用倒是好用。
但是一旦这多次测量,结果是在不同的时间点上测出来啊,形成一个时间序列。
X一x二一直到x三,这时候呢问题就没有那么简单了,为什么呢?因为我们需要将未知变量z它的时变特性考虑进去。
这个z不是说固定不变好,站在那儿不动,就等你一次一次的来测。
前一时刻的z和后一时刻的z很可能就不一样啊,它本身也会随着时间的变化而波动,所以呢需要将它的识变特性给考虑进去。
如果说还是像上面那样啊,直接对不同时刻的测量结果求均值的话,固然可以平滑掉随机噪声的影响。
但是变量本身啊它的识变特性又会作为另一种噪声出现在结果当中。
这种按倒葫芦起了瓢的结果啊,显然不是我们想要的。
要获得更加精确的估计呢,可以根据z的具体的变化特性采取不同的策略。
如果说我这个变量z它是慢变的特性,也就是它的变化周期啊远远大于我测量的这个周期。
那么不同时刻的测量结果里面的差别呢,就可以认定它全部来源于随机噪声。
在这个测量窗口之中,我的状态是没有变化的。
这时候呢我就可以将平滑窗口的长度啊,也就是用于求平均的这个测量结果的数目取大一些,来得到抑制随机噪声更好的效果。
上面的平滑呢是针对慢变清洗。
反过来,如果变量本身是快速变化,这时候呢就要适当的调小平滑窗口。
同时呢给相距较近的这个测量结果赋予更大的平滑权重。
离目标时刻的状态越近啊,我给它的权重越大,离目标时刻状态越远。
啊,我给它的权重越小。
如果说极端的情况下,变量变化的时间尺度比相邻测量之间的时间间隔还要小的话。
在你这个两次测量之间啊,我这个变量已经波动了好几个周期了。
这时候呢也就不用做什么平滑,直接用测量结果作为最优的估计就可以了。
上面这个描述呢只是一个定性的说明啊,如果要在此基础上我要对最优的平滑参数来进行定量计算的话,这时候呢就需要对这个连续分布的系统啊,它的时间演化,还有测量过程进行概率式的建模。
建模的模型就是线性动态系统。
线性动态系统呢也是一种动态的贝叶斯网络。
但是里面的显示变量,也就是观测和隐藏变量,也就是状态都是连续变量。
它们之间的依赖关系呢则是线性高斯的条件。
分布最典型的线性动态系统是用来描述一个或者一组高斯噪声影响之下这样的实值变量随时间变化的一个过程。
那么点击文稿,你可以看到它的条件概率,表示,如果将线性动态系统放在状态空间的表象之下来,观察上面,条件概率呢又可以改写成状态方程的形式。
啊。
点击文稿,你还可以看到对应的状态方程。
对原始线性动态系统模型的一种扩展方式是将系统当中的初始状态从单个的高斯分布改写成高斯混合模型,由多个高斯分布不同的成分所构成。
如果高斯混合模型当中包含着k个成分,那么后面所有状态也会是多个高斯分布的混合。
这时呢通过求解这个边界概率啊,我依然可以对这个模型的进行概率推断。
除了状态本身的概率分布之外,从状态到观测的这个观测概率也可以写成高速混合模型的形式。
如果说这个观测概率呢是k个高斯分布的混合,那么初始状态的后验概率也会是k个高斯分布的混合。
随着时续的推进,后验概率的表示会越来越复杂。
啊,那么在时刻n上这个状态,它的后验概率数目可以达到k的n次方个。
这时候呢这个参数的指数式的增长,就会严重的削弱模型的可用性,还有实用性。
所以呢需要对大家做一个简化。
从这个隐马尔可夫模型还有线性系统出发,可以定义出一些非传统机器学习意义上的概念。
如果要根据截止到某一时刻,或者说截止到目前的观测结果来估计隐藏变量的话,这种问题呢我们把它叫做滤波。
如果要根据一串完整的观测序列啊,也就是一段时间内的观测结果来估计隐藏变量的话,这样的问题呢把它叫做平滑滤波和平滑估计演变量。
它其实都属于概率图模型推断任务的这个范畴。
在离散的野马可波模型当中,和连续的线性动态系统当中啊是都可以实现。
除了它俩之外,还有一个只适用于离散模型的运算,是什么呢?叫做异码。
异码的任务是根据观测序列找到后验概率最大的这个隐变量序列。
这呢只适用于液m阿可夫模型,只适用于离散系统。
这些术语呢,你可能更多的是在通信,还有信息处理当中啊,听到这些术语。
但是如果站在更宏观的角度来看,他们也可以归结到积极学习的范畴当中。
归结到BS概率的推理当中。
如果要在离散的时间序列上分析连续分布的状态,还有观测结果的话啊,需要使用线性卡尔曼滤波器。
这个数学工具线性卡尔曼滤波器,它的作用是根据一串包含统计噪声和干扰的观测结果来计算出单一的。
但是更加精确的观测估计啊,还是实现一个预测的任务。
在某个时间点上,给定截止目前所获得的所有证据,可以计算出关于系统的当前状态的一个置信状态。
这个置信状态呢包含着最大的信息量。
那么点击文稿,你可以看到在离散的时序上,我选出一个时刻n它置信状态的表达式,在线性高斯这种依赖关系之下,致敬状态。
它满足这个高斯分布。
因而呢可以用参数有限的这个均值向量,还有斜方差矩阵来表示。
而且呢可以写成这个解析式的紧凑的形式。
卡尔曼滤波器的作用就是对置信状态的均值,还有斜方差来进行更新。
更新的过程呢可以分成两个步骤。
首先根据目前所有可用的观测结果,计算出隐藏状态变量的一个置信。
这个置信呢叫做先验置信状态。
接下来在这个先验置信状态的条件之下,考虑最近的观测结果给出新的置信。
这样的递归过滤的过程呢,是对随时间变化的这个置信状态来进行动态的更新。
它可以看成是递归贝磁估计在多元高斯分布里的应用。
递归贝叶斯估计它是通过对不同时间观测值的这个递归的使用来估计未知的概率分布是野马可夫模型当中常用的推理方法。
那么线性卡尔曼滤波器呢,就是递归贝叶斯估计在连续分布的这种状态变量,还有观测变量上推广。
在卡尔曼滤波当中鲜艳致敬状态的更新是由状态转移更新来表示。
以上面这个线性系统为例,直观上看,先验置行状态的新均值是将状态转移的线性变换a应用。
在上个时间点的均值之上,那新的斜方差矩阵呢也是将状态转移的线性变换a应用。
在上个时间点的斜方差之上,然后再来加上噪声的斜方差和状态转移更新相比呢确定当前致信状态的观测更新啊要更加复杂一些。
置信状态的均值可以表示为鲜艳置信的均值,加上来源于观测结果的修正项。
这修正项呢我们把它叫做观测残差,也就是期望的观测值和实际观测值之间区别的加权加权系数是被称为卡尔曼增益的这个系数。
矩阵k置信状态的方差,也是对鲜验置信的协方差的修正。
修正的方式呢是减去卡尔曼增益,加权之后的这个期望。
斜方差卡尔曼增益,它是卡尔曼滤波器当中核心的一个参数,它体现的正是观测的重要性。
当表示测量误差的这个斜方差矩阵趋决于零的时候,卡尔曼增益呢会收敛到状态。
观测矩阵的逆矩阵上,这意味着真实的观测结果在致敬状态的更新当中,会扮演着更加重要的角色。
预测的观测结果呢他的地位则会不断下降,在此基础上进一步可以得到置信状态,在更新之后,它的斜方差会趋近于零,说明什么呢?说明当前的状态几乎就是完全确定。
反过来,当鲜艳致敬的前方差矩阵趋近于零的时候,计算出来的卡尔曼增益也会趋近于零。
这种情况下,在置信更新当中占据主导地位的,就变成了对分布的一个预测的结果。
后验置信和先验置信的这个统计特性几乎是完全一致的。
这种情况下呢观测结果到底是什么样,反而变得无足轻重,不会对我的预测产生过多的影响。
那么随着时序的推移,置信状态最终会收敛到某个分布之上,系统的不确定性也会呈现出一个稳态的表示。
上面介绍呢是最原始的卡尔曼滤波器啊,点击文稿。
你可以看到卡尔曼滤波器一些核心的公式。
当然了,这些公式看起来都比较复杂啊,比较唬人。
它的原理呢也可以推广到更加复杂的情况当中。
如果说将状态转移和从状态到观测的这个关系啊,我建模成一个非线性关系的话,再用泰勒展开当中一阶导数和二阶导数进行局部的线性化处理。
这样的卡尔曼滤波器呢就是扩展卡尔曼滤波器,另一种应用于非线性动态的改进,是无g卡尔曼滤波器,它呢是通过无际变换来对非线性动态进行线性化的处理。
那么关于这两种扩展的具体细节,在这呢,我就不做介绍。
无论是扩展卡尔曼还是无忌,卡尔曼,都是对于非线性特性得到确定性的近似,他们放弃了对精确计算的追求,转而以确定的方式来求解近似的结果。
这里的确定性呢指的是只要用相同的方式进行近似,那么我每次得到的结果都是一样啊,我也可以给它用一个解析式确定的数学式给它表示出来。
如果要用随机的方式来对非线性特性做出近似的话,这种对应的方法就是粒子滤波,粒子滤波它的任务也是根据观测结果来估计隐藏状态。
但他并不会通过复杂的积分运算计算出准确的结果,而是对总体的分布进行采样,用样本的经验分布来代替总体的真实分布,用样本的均值来代替总体的积分运算。
由于这种方法呢和蒙特卡洛采样的思路非常相似,所以呢也被称为叫续冠。
蒙特卡洛。
作为一种非参数方法,粒子滤波可以用来建模任意形式的概率分布。
虽然说效果未见得有多好,但在很多情况下,它可能是唯一可行的方法。
前面我们说到啊粒子滤波是用样本的平均值来代替总体分布的积分,也就是代替总体分布的数学期望。
但这里的平均值呢,它不是一般的平均每一个样本点都被赋予一个权重,样本和这个权重共同构成了粒子滤波。
这个名称当中的粒子。
整个粒子滤波的过程呢就是不断动态调整样本的权重,让经验分布不断的接近真实分布的过程。
关于它具体的数学细节呢,在这儿呢也不做讨论了。
感兴趣的话你可以查阅相关的文献。
今天我和你分享了线性动态系统啊,还有一些滤波算法的基本原理,包含着以下四个要点。
第一,线性动态系统是具有连续状态变量的,以马可夫模型,所有条件概率都是线性高斯分布。
第二,线性动态系统的求解是根据先验置信状态和观测结果来更新系统的置信状态。
第三,卡尔曼滤波器可以对线性动态系统进行精确求解。
第四,当系统具有非线性和微高斯特性时,可以通过扩展卡尔曼滤波器、无忌卡尔曼滤波器,还有粒子滤波等方法来进行近似的求解卡尔曼滤波器,以及它的诸多变种。
在动态的运动目标跟踪当中,具有广泛的应用,是机器人感知定位。
还有导航一种重要的方法。
你可以查阅资料,了解卡尔曼滤波器在这个领域当中具体的应用场景,并在这里分享你的见解。