卡尔曼滤波
提供了kf,ekf,ukf的详细推导过程,从标量推导开始,进而转入矢量推导,非常详细卡尔曼滤波器简介(阎泓著第一步、时间更新29第二步、测量更新“““““““+““44““““42924特殊情况.30第一种情况、先验误差极小...-.----130第二种情况、先验误差极大.30第三种情况、测量噪声极大.…31第三章、标量EKF画,通通画4“““““+44=“++“““++4“4“+“4“““-“++323.1非线性状态模型.323.2模型线性化33.2.1过程噪声项的线性化.333.2.2测量噪声项的线性化...11-343.2.3过程和测量噪声项同时线性化…35324过程的线性化…0353.25测量的线性化…363.3EKF滤波器…1373.31应用卡尔曼滤波器.3733,2计算先验均方差373.33计算后验均方差373.3.4计算k值4a“44444“;4444454a44“44444=424444441“如44444;44444“44.45“#4444444a444444443833.5k值为最优时的后验均方差3834算法39第一步、时间更新………9第二步、测量更新393.5EKF的缺陷44“==++++4=++44日+“44=“““+440第四章、矢量EKF4141非线性矢量状态模型4142矢量模型线性化单“““·***“““***“““““***“““***4““-***4““*“→“““*→*-““““““*“““*+4““→*“·““·““““*4242.1矢量泛函的泰勒展开42.2过程噪声项的线性化424.2.3测量噪声项的线性化.→“““#+4+“44“““-4+44→“““4“4+-““+43424过程和测量噪声项同时线性化4442.5过程的线性化4“““4““*“4““*→““*+“4“““““““*4“““4“““++4““44“““4“44““““七426测量的线性化“““““·+““““*““““+“““““““+4“““““““+4“““→·“““+“4543矢量EKF滤波器面面面面46画面和面面,43.1应用矢量卡尔曼滤波器44““++“44“““*44“““++444““4+444“+“44““““+444643.2计算先验均方差4643.3计算后验均方差4““+44““““44““““+→4““““+4““““4“44““““.47434计算k值47435k值为最优时的后验均方差4845算法“““+““““*“““““+…““““*“+44““48第一步、时间更新.…49第3页(共77页)卡尔曼滤波器简介(阎泓著第二步、测量更新““4--““44-4494.4特殊情况.““““4444“画画新通画通49第一种情况、先验误差极小.画画,画画画园画画,画画画面请通.50第二种情况、先验误差极大….----50第三种情况、测量噪声极大44“““+44““=++“44“““+444““4+“44““44+50第五章、标量无迹变换UT5251无迹变换的任务5252真值“““““++“++4“4“““+4“++4“““““+““+“““““525.3无迹测试点1101453.1标量的无迹测试点………154532无迹权重系数翻国口道55533统计性质公式…5554测试点的无迹变换.565.4.1从测试点得到后验期待值.画画通通画画山通画画新56542从测试点得到后验方差“““+4“++“4“++““平““上“““4““平中“+““““平“4+“=575.5讨论品aB444a日日+44日4日日“4日a4日+a日本“日日日和本上日和4日““458第六章矢量无迹变换UT4“““4“44“““4++44“““4+““4+2+“++“4“++4=“++“““2++““““++““4+““““++5961矢量微分回顾5961.1计算真值会用到的恒等式1962矢量无迹变换的任务中本““丰二“中““6063真值6163无迹测试点63.1矢量的无迹测试点画面通自品面画画面自自通国画日画面国通画日通山国国画山山面通画山山丽右日日画画画画画山63632无迹权重系数64633UT变换下的对称性64测试点的无迹变换6564.1几个恒等式…65642从测试点得到后验期待值.…---1----66642从测试点得到后验协方差.6765讨论68第七章、无迹滤波器UKF11116971高维非线性问题.069711标量特例画画画画画画新画画画画画画““*#“““““44“…4“““““4““+““→““““44““47072无迹滤波器面,面面面面面面面“面画70721无迹测试点““*4“““““44““+44““““*44“““++444“““4““+“44“““““722无迹权重系数通画画通画画通通画画通山请画画画画画画出画请画画副。723先验估计画画·画‘画4““+44““““44““““+→4““““+““““+“444““““+472724应用卡尔曼滤波器737.2.5计算后验均方差…737.2.6计算k值…444““+44“““*447473算法75第4页(共77页)卡尔曼滤波器简介(阎泓著第零步、初始化..-75第一步、时间更新175第二步、测量更新画画,画画画园画画,画画画面请通176第5页(共77页)卡尔曼滤波器简介(阎泓著第一章、标量线性系统实际工作中的线性系统很少有标量的,但是标量的卡尔曼滤波器的理论推导比较直观、易于理解,因此作为学习的切入点比较合适首先必须清楚地陈述卡尔曼滤波器要解决的问题。1.1卡尔曼问题在离散时间中,一个标量线性系统的状态演化常常可以表述为下面的随机差分方程式:x=ax,+bu其中t为时间。x,是一个标量随机变量,代表t时刻系统的内禀状态。a和b为常标量。u,为t-1时刻的输入,也是一个标量。111信号流程图上面的(1)式也可以用下面的信号流程图表示u-1)X()Ibax(t-1)直线表示信号的传送,箭头代表传送的方向。流程图中的图标有三种,第一种方框图标代表时间延迟,见下图x(t)TX(t-1)第二种方框图标代表乘法(增益),见下图第6页(共77页)卡尔曼滤波器简介(阎泓著aax第三种圆形图标代表加法(混合),见下图a-b+CbG这些图标可以按照有意义的方式组合起来,描述一个差分方程。必须指出,这些图标并不局限于标量情形,而且适用于矢量情形,譬如x为一个矢量,而a和b可以为矩阵。112加入白噪声假设在这个线性过程中有一个噪声项v鬟x2=ax21+bu-1+W1-1则此方程式可以用下面的信号流程图表示w(t=1)u(-1)中+baX(-1)假定这个噪声ν是一个高斯白噪声,它满足3N(9),(Q20)〈ww)=0(≠)3在本文采用物理学中常用的记号,(x)=E(x)表示x的期待值第7页(共77页)卡尔曼滤波器简介(阎泓著此外假定w与u.没有关联,也即113加入可测量假设系统的状态量x是不可以直接测量的。可以测量的是另外一个量z,称为可测量。可测量z依赖于系统的状态量x和一个激励倍数h,见下式。hx. +v(5)在实际工作中h可能会随着时间而变化,但在这里假定为常数,为常标量。此时流程图如下。wt-1)u(t-1)+b±2(ax(t-1)测量过程本身带有一个噪声ν,影响了测量的准确度。同样我们假定ν是一个白噪声(,R)(R≥0)(")≥=0(s≠)此外假定ν与w和u都没有关联,也即()=v)=0(s1)114卡尔曼问题陈述现在要考虑的是如何从可观测量z;的观测数据中得出x的最优估计值,把噪声w和v尽最大可能过滤出去,把它们的影响减到最小。这就是卡尔曼滤波器要解决的问题。1.2标量卡尔曼滤波器卡尔曼对这个问题的解答就是卡尔曼滤波器。下面的流程图可以分成上下两个部分:上半部分就是问题本身,下半部分就是卡尔曼滤波器。第8页(共77页)卡尔曼滤波器简介(阎泓著u(-1)X()bh+(aX(t-1)bb(()2()+ak文-b)+Residual在图中,z1代表实际测量值,x代表过程的真值。此外在卡尔曼滤波器的流程图中出现了几种新的符号,分别是x代表先验估计( A priori estimate),和E代表后验估计(A posteriori estimate)4.对一个随机变量当前值的先验估计是根据前一个时刻以及更早的历史观测信息所作出的估计:后验估计是根据当前时刻以及更早的历史观测信息所作出的估计。x1的先验估计是由上一个时间点的后验估计值和输入信息给出的,x,=ax+ bur-p卡尔曼使用x的先验估计给出可测量E的(先验估计)预测5,而z,的实际测得值与预测值之间的差称为滤波过程的革新( nnovation)或者残余( Residua,即Residual=(10)本文采取通用的符号,以表示对某变量y在t时刻的后验估计,而表示对y的先验估计。在某些文献中y又记作y(|t-1),又记作y(t|t)5对于z,而言后验估计没有意义。z,是可观测量,在后验时刻已经有实际观测值了。第9页(共77页)卡尔曼滤波器简介(阎泓著残余反映了预测值和实际值之间的差别。残余为零的话,估计值和实际值完全吻合。如果残余很小,表明估计值很好,反之就不好。卡尔曼滤波器可以利用残余的这一信息改善对x,的估计,给出后验估计。也就是x=x:+k(Residual)=*+k(z,-hR-其中的k称作卡尔曼增益或卡尔曼混合系数( Blending factor)现在剩下的问题就是如何找到k的值,使得估计为最优。为此需要定义先验均方差和后验均方差。121最优的k值先验误差和后验误差分别定义为(12)它们的方差就是先验均方差和后验均方差P≡varP, =vale(13)最优的k值是使后验均方差为最小的值,就是下式成立时的k值(14)ak122计算先验均方差先验均方差为≡war(15)因为(2)式及(8)试式x,=ax_+ bu+we=ax+bu可得e:=x-x=ax+bu +w_)-(ax +bur=a(xx_1)+W因此第10页(共77页)
- 2020-12-03下载
- 积分:1
反向传播算法推导—全连接神经网络
反向传播算法是人工神经网络训练时采用的一种通用方法,在现代深度学习中得到了大 规模的应用。全连接神经网络(多层感知器模型,MLP),卷积神经网络(CNN),循环神 经网络(RNN)中都有它的实现版本。算法从多元复合函数求导的链式法则导出,递推的 计算神经网络每一层参数的梯度值。算法名称中的“误差”是指损失函数对神经网络每一层 临时输出值的梯度。反向传播算法从神经网络的输出层开始,利用递推公式根据后一层的误 差计算本层的误差,通过误差计算本层参数的梯度值,然后将差项传播到前一层(w, x,)+b这个神经元接受的输入信号为向量(),向量()为输入向量的组合权重,为徧置项,是标量。神经儿对输入冋量进行加权求和,并加上偏置项最后经过激活函数变换产生输出为表述简洁,我们把公式写成向量和矩阵形式。对每个神经元,它接受的来自前一层神经元的输入为向量,本节点的权重向量为,偏置项为,该神经元的输出值为先计算输入向量与权重向量的内积,加上偏置项,再送入一个函数进行变换,得到输出这个函数称为激活函数,典型的是函数。为什么需要激活函数以及什么样的函数可以充当激活函数,在之前的公众号文章“理解神经网终的激活函数”中已经进行了介绍。神绎网络一般有多个层。第一层为输入层,对应输入向量,神绎元的数量等于特征向量的维数,这个层不对数据进行处理,只是将输入向量送入下一层中进行计算。中间为隐含层,可能有多个。最后是输出层,神经元的数量等于要分类的类别数,输出层的输岀值被用来做分类预测。下面我们来看一个简单神经网络的例了,如下图所示这个网络有层。第一层是输入层,对应的输入向量为,有个神经元,写成分量形式为(),它不对数据做任何处理,直接原样送入下一层。中间层有个神经元,接受的输入数据为向量,输出向量为,写成分量形式为。第三个层为输出层,接受的输入数据为向量,输出向量为,写成分量形式为()。第一层到第层的权重矩阵为(,第二层到第三层的权重矩阵为()。权重矩阵的每一行为一个权重向量,是层所有神经元到本层某一个神经儿的连接权重,这里的上标表小层数如果激活函数选用函数,则第二层神经元的输出值为+(-(+0)+(1+(0)(-(()第三层神经元的输出值为如果把代入上面二式中,可以将输出向量表示成输出向量的函数。通过调整权重矩阵和偏置项可以实现不同的函数映射,因此神经网终就是一个复合函数需要解决的·个核心问题是·旦神经网络的结构(即神经元层数,每层神经元数量)桷定之后,怎样得到权重矩阵和偏置项。这些参数是通过训练得到的,这是本文推导的核心任务个简单的例子首先以前面的层神经网络为例,推导损失函数对神经网络所有参数梯度的计算方法假设训练样本集中有个样本()。其中为输入向量,为标签向量。现在要确定神经网络的映射函数:什么样的函数能很好的解释这批训练栟本?答案是神经网络的预测输出要尽可能的接近样本的标签值,即在训练集上最小化预测误差,如果使用均方误差,则优化的目标为:∑‖()-其中()和都是向量,求和项内部是向量的范数平方,即各个分量的平方和。上面的误差也称为欧氏距离损失函数,除此之外还可以使用其他损失函数,如交叉熵、对比损失等。优化目标函数的自变量是各层的权重矩阵和梯度向量,一般情况下无法保证目标函数是凸函数,因此这不是一个凸优化问题,有陷入局部极小值和鞍点的风险(对于这些概念和问题之前的公众号文章“理解梯度下降法”,“理解凸优化”中己经做了详细介绍)这是神经网络之前一直被诟病的一个问题。可以使用梯度下降法进行求解,使用梯度下降法需要计算出损失函数对所有权重矩阵、偏置向量的梯度值,接下来的关键是这些梯度值的计算。在这里我们先将问题简化,只考虑对单个样本的损失函数()-‖后面如果不加说明,都使用这种单样木的损失函数。如果计算出了对单个样木损失函数的棁度值,对这些梯度值计算均值即可得到整个目标函数的梯度值。和(要被代入到网络的后一层中,是复合函数的内层变量,我们先考虑外层的和。权重矩阵是一个x的矩阵,它的两个行分别为向量(和是个维的列向量,它的两个元素为()和()。网络的输入是向量,第一层映射之后的输出是向量首先计算损失函数对权重矩阵每个元素的偏导数,将欧氏距离损尖函数展开,有((+))(())6(如果,即对权重矩阵第行的元素求导,上式分了中的后半部分对来说是常数。根据链式法则有S()+()O如果,即对矩阵第二行的元素求导,类似的有:可以统一写成可以发现,第一个下标决定了权重矩阵的第行和偏置向量的第个分量,第二个下标决定了向量的第个分量。这可以看成是一个列向量与一个行向量相乘的结果,写成矩阵形式为上式中乘法⊙为向量对应元素相乘,第二个乘法是矩阵乘法。是个维列向量,+也是一个维列向量,两个向量执行⊙运算的结果还是个维列向量。是一个元素的列向量,其转置为维行向量,前面这个:维列向量与的乘积为的矩阵,这正好与矩阵的尺寸相等。在上面的公式中,权重的偏导数在求和项中由部分组成,分别是网络输出值与真实标签值的误差激活区数的导数+(),本层的输入值。神经网络的输出值、激活函数的导数值本层的输入值都可以在正向传播吋得到,因此可以晑效的计算出来。对所有训练样本的偏导数计算均值,可以得到总的偏导数对偏置项的偏导数为:如果上式分子中的后半部分对来说是常数,有:()⊥()如果类似的有这可以统写成:写成矩阵形式为偏置项的导数由两部分组成,分别是神经网络预测值与真实值之间的误差,激活函数的导数值,与权重矩阵的偏导数相比唯一的区别是少了。接下来计算对和的偏导数,由于是复合函数的内层,情况更为复杂。()是个的短阵,它的个行向量为(),(,(,(。偏置项()是维向量,个分量分别是(),(,(),(。首先计算损失函数对的元素的偏导数:而上式分子中的两部分都有,因此都与有关。为了表述简活,我们令:根据链式法则有:其巾((和和都是标量和()是两个()向量的内积,的每一个分量都是()的函数。接下来计算和这里的一是个向量,衣示的每个分量分别对求导。当时有:后面个分量相对于求导变量(都是常数。类似的当时有:()0)(()和时的结果以此类推。综合起来有:同理有:()十如果令合并得到()()[()-)。()。()写成矩阵形式为()最后计算偏置项的偏导数()类似的我们得到:合并后得到()写成矩阵形式为:(0)至此,我得到了这个简单网络对所有参数的偏导数,接下来我们将这种做法推广到更般的情况。从上面的结果可以看岀一个规律,输出层的权重矩阵和偏置向量梯度计算公式中共用了()-)()对」隐含层也有类似的结果完整的算法现在考虑一般的情况。假设有个训练样本(),其中为输入向量,为标签向量。训练的目标是最小化样木标签值与神经网络预测值之闩的误差,如果使用均方误差,则优化的目标为:其中为神经网络所有参数的集合,包括各层的权重和偏置。这个最优化问题是·个不带约束条件的问题,可以用梯度下降法求解。上面的误差函数定义在整个训练样本集上,梯度下降法每一次迭代利用了所有训练样本,称为批量棁度卜降法。如果样木数量很大,每次迭代都用所有样木进计算成木太高。为了解决这个问题,可以采用单样本梯度下降法,我们将上面的损失函数写成对单个样本的损失函数之和:定义对单个样本()的损失函数为)=-()如果采用单个样本进行迭代,梯度下降法第次迭代时参数的更新公式为:nV如果要用所有样本进行迭代,根据单个样本的损失函数梯度计算总损失梯度即可,即所有样本梯度的均值用梯度下降法求解需要初始化优化变量的值。一般初始化为一个随机数,如用正态分布(a)产生这些随机数,其中G是一个很小的正数到日前为止还有一个关键问题没有解决:日标函数是一个多层的复合函数,因为神经网络中每一层都有权重矩阵和偏置向量,且每一层的输出将会作为下一层的输入。因此,直接计算损失函数对所有权重和偏置的梚度很复杂,需要使用复合函数的求导公式进行递推计算几个重要的结论在进行推导之前,我们首先来看下面几种复合函数的求导。又如下线性映射函数:其中是维向量,是×的矩阵,是维向量。问题:假设有函数,如果把看成常数,看成的函数,如何根据函数对的梯度值Ⅴ计算函数对的梯度值Ⅴ?根据链式法则,由于只和有关,和其他的≠无关,因此有:c∑(对于的所有元素有:写成矩阵形式为:问题:如果将看成常数,将看成的函数,如何根据V计算Ⅴ?由于任意的和所有的都有关系,根据链式法则有写成矩阵形式为这是一个对称的结果,在计算函数映射时用矩阵乘以向量得到,在求梯度时用矩阵的转置乘以的梯度得到的梯度。问题:如果有向量到向量的映射:
- 2020-12-09下载
- 积分:1