基于隐马尔科夫模型的地图匹配的研究

基于隐马尔科夫模型的地图匹配的研究

一、隐马尔科夫模型理论

1.1 马尔科夫过程

设随机过程 { X ( t ) , t ∈ T } \{X(t),t \in T\} {X(t),tT},在时刻 t t t的状态是 X t X_t Xt,当该随机过程 { X ( t ) , t ∈ T } \{X(t),t \in T\} {X(t),tT}为马尔科夫(Markov)过程时,具体表现为:未来时刻 t + 1 t+1 t+1的状态 X t + 1 X_{t+1} Xt+1与历史时刻的状态 X t − 1 , X t − 2 , . . . , X 0 X_{t-1},X_{t-2},...,X_0 Xt1,Xt2,...,X0无关, X t + 1 X_{t+1} Xt+1只与 X t X_{t} Xt有关,即 X t + 1 = f ( x t ) X_{t+1}=f(x_t) Xt+1=f(xt)

也就是说,马尔科夫过程的未来状态与过去时刻的状态没有关系,只与现在的状态有关。马尔科夫链属于马尔科夫过程,其中,时间和状态都是离散的,可表示为:
P ( X t + 1 = q t + 1 ∣ X t = q t , X t − 1 = q t − 1 , . . . , X 1 = q 1 ) = P ( X t + 1 = q t + 1 ∣ X t = q t ) P(X_{t+1}=q_{t+1}|X_t=q_t,X_{t-1}=q_{t-1},...,X_1=q_1)=P(X_{t+1}=q_{t+1}|X_t=q_t) P(Xt+1=qt+1Xt=qt,Xt1=qt1,...,X1=q1)=P(Xt+1=qt+1Xt=qt)
其中, q 1 , q 2 , . . . , q m ϵ {   θ 1 , θ 2 , . . . , θ n } q_1,q_2,...,q_m\epsilon \{\ \theta_1,\theta_2,...,\theta_n \} q1,q2,...,qmϵ{ θ1,θ2,...,θn} 是状态的取值。

通常,初始状态概率向量 π \pi π和状态转移矩阵 A A A 用来描述马尔科夫链。初始状态概率向量为 π = { π 1 , π 2 , . . . , π N } \pi=\{ \pi_1,\pi_2,...,\pi_N\} π={π1,π2,...,πN},其中 π i = P ( q 1 = θ i ) , 1 ≤ i , j ≤ N \pi_i=P(q_1=\theta_i),1\leq i,j\leq N πi=P(q1=θi),1i,jN。状态转移概率是在时刻 t t t,经过 k k k次转移,从状态 i i i到状态 j j j的概率。即
P i j ( t , t + k ) = P ( X t + k = θ j ∣ X t = θ i ) , 1 ≤ i , j ≤ N , k ≥ 1 P_{ij}(t,t+k)=P(X_{t+k}=\theta_j|X_t=\theta_i),1\leq i,j \leq N,k\geq 1 Pij(t,t+k)=P(Xt+k=θjXt=θi),1i,jN,k1
{ X ( t ) , t ∈ T } \{X(t),t \in T\} {X(t),tT}为齐次马尔科夫链,则状态转移概率不依赖于时刻 t t t ,只与 i i i j j j k k k 有关,那么,称 P i j ( t , t + k ) = P i j ( k ) = P ( X t + k = θ j ∣ X t = θ i ) P_{ij}(t,t+k)=P_{ij}(k)=P(X_{t+k}=\theta_j|X_t=\theta_i) Pij(t,t+k)=Pij(k)=P(Xt+k=θjXt=θi) k k k步转移概率。

一个含有 N N N 个状态的一阶马尔可夫过程有 N 2 N^2 N2个状态转移,一个状态转移到另一个状态的概率叫做状态转移概率(state transition probability),从任意一个状态转移到任意一个状态的情况一共有 N 2 N^2 N2 状态转移概率,这 N 2 N^2 N2状态转移概率集合可以用一个状态转移矩阵来表示,令 α i j = P i j ( t , t + 1 ) \alpha_{ij}=P_{ij}(t,t+1) αij=Pij(t,t+1),则一步转移概率矩阵
KaTeX parse error: Undefined control sequence: \matrix at position 13: A = \left[ \̲m̲a̲t̲r̲i̲x̲{ \alpha_{11},…

且有 ∑ j = 1 N α i j = 1 , ∀ i \sum_{j=1}^{N}{\alpha_{ij}}=1,\forall i j=1Nαij=1,i k k k步转移概率矩阵可通过 A k A^k Ak求得。

1.2 隐马尔科夫模型
1.2.1 HMM的产生

由于国内外学者对马尔科夫理论的广泛深入的研究,马尔科夫理论得到了进一步发展,在马尔科夫链模型的基础上产生了隐马尔科夫模型。隐马尔科夫模型最早应用于语音信号的识别获得了非常好的实验结果,取得了巨大的成功。随后隐马尔科夫模型被广泛的应用于模式识别、词性标注、分词等方面,下面就隐马尔科夫模型的相关理论体系进行一下分析。

1.2.2 隐马尔科夫模型的基本结构

隐马尔科夫模型是在马尔科夫链的基础上进一步的发展而来的,也可以是对马尔科夫链理论的进一步扩充和提高。在马尔科夫链模型中,主要用到的是在有限的状态空间中,确定了初始的状态概率分布后,然后运用转移矩阵来预测下一个状态的情况。而隐马尔科夫模型则是人为的“规定”,状态空间中的各个具体的状态是无法得到的,也就是隐藏的,只有这些状态所表现出来的现象是可以观测的,通常称为观测量,隐马尔科夫模型的结构图如下图所示。

隐马尔科夫模型 HMM 描述如下:首先,HMM 的状态是隐状态,不能直接观测到;其次,观测序列与状态不是一一对应,其一般能通过某些概率密度分布体现隐状态;最后,HMM 是一个双重随机过程,所谓的双重,就是 Markov 过程和显性随机函数集。一个是 Markov 过程,该过程描述了状态间的转移过程;一个是观测值的输出概率函数,该函数描述了隐状态与观测值之间的转化关系。

传统的 HMM 分为离散的 HMM 和连续的 HMM。当观测序列分布为离散概率分布时,HMM 属于离散的 HMM。当观测序列分布为连续时,HMM 模型为连续的 HMM [1]。

(1)HMM 模型假设

HMM 必须满足三点假设:

1)一阶马尔可夫假设。未来时刻 t + 1 t+1 t+1的状态 X t + 1 X_{t+1} Xt+1只与当前状态 X t X_t Xt 有关,与过去的状态 X t − 1 , X t − 2 , . . . , X 0 X_{t-1},X_{t-2},...,X_0 Xt1,Xt2,...,X0无关;

2)不动性假设。状态转换与时间无关,即 P ( X t + 1 ∣ X i ) = P ( X j + 1 ∣ X j ) P(X_{t+1}|X_i)=P(X_{j+1}|X_j) P(Xt+1Xi)=P(Xj+1Xj)

3)观测值的独立性假设。观测值的输出只与当前的状态有关。

(2)HMM 基本形式

HMM 作为一个双重随机过程,即 Markov 过程和显性随机函数集。对于离散HMM 而言,设 Q Q Q 为隐状态过程即不可观测的离散时间有限状态单步齐次马氏链,即 Q = ( q t ) , ( t ∈ N ) Q=(q_t),(t \in N) Q=(qt),(tN) ,其中 q t q_t qt t t t 时刻的状态。 O O O 是可以观测到的一般随机过程,即 O = ( o t ) , ( t ∈ N ) O=(o_t),(t \in N) O=(ot),(tN) 。那么 Q T = ( q 1 , q 2 , . . . , q T ) Q^T=(q_1,q_2,...,q_T) QT=(q1,q2,...,qT)为隐状态序列, O T = ( o 1 , o 2 , . . . , o T ) O^T=(o_1,o_2,...,o_T) OT=(o1,o2,...,oT)为观测序列。

通常一个隐马尔可夫模型可以用五元组来描述 ( S , O , A , B , π ) (S,O,A,B,\pi) S,O,A,B,π,包括 2 个状态集合和 3 个概率矩阵:

隐藏状态 S = { S 1 , S 2 , … , S N } S=\{{S_1,S_2,…,S_N}\} S={S1,S2,,SN},其中 N N N 表示表示隐藏状态的数目。

可观察状态 O = { O 1 , O 2 , … , O M } O=\{{O_1,O_2,…,O_M}\} O={O1,O2,,OM} 与隐含状态相关联,可通过直接观测而得到。可观测状态的数目不一定要和隐含状态的数目一致,其中 M M M 表示观察状态的数目。

初始状态概率矩阵为 π \pi π,它表示隐含状态在初始时刻 t = 1 t=1 t=1 的概率矩阵,例如 t = 1 t=1 t=1 时, P ( S 1 ) = π 1 P(S_1)=\pi_1 P(S1)=π1 P ( S 2 ) = π 2 P(S_2)= \pi_2 P(S2)=π2 P ( S 3 ) = π 3 P(S_3)= \pi_3 P(S3)=π3,则初始状态概率矩阵表示为 π = [ π 1 , π 2 , π 3 ] \pi=[\pi_1,\pi_2,\pi_3] π=[π1,π2,π3]

隐藏状态转移概率矩阵 A A A中元素表示HMM模型中各个隐藏状态之间的转移概率。其中, α i j = P ( S j ∣ S i ) \alpha_{ij}=P(S_j|S_i) αij=P(SjSi)$(1\leq i,j\leq N) $表示在 t t t 时刻,隐藏状态为 S i S_i Si 的条件下,在 t + 1 t+1 t+1 时刻隐藏状态是 S j S_j Sj的概率。

B B B 为观测概率矩阵, B = { b i ( k ) } , b i ( k ) = P ( o t = v k ∣ q t = s i ) B=\{b_i(k)\},b_i(k)=P(o_t=v_k|q_t=s_i) B={bi(k)},bi(k)=P(ot=vkqt=si) 。其中 b i ( k ) b_i(k) bi(k)是状态 s i s_i si生成观测值 v k v_k vk的概率。满足: b i k ≥ 0 , ∀ i , j ; ∑ k = 1 M b i ( k ) = 1 , ∀ i b_{ik}\geq0,\forall i,j;\sum_{k=1}^{M}{b_{i}(k)}=1,\forall i bik0,i,j;k=1Mbi(k)=1,i

1.3 隐马尔科夫模型的三个经典问题
1.3.1 评估问题(Evaluation)

给定了观测序列 O = ( o t ) O=(o_t) O=(ot)和模型的相关参数 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π) ,计算在已知模型参数的前提下,能够得到 O = ( o t ) O=(o_t) O=(ot)的概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)。评估工作就是考察观测序列与模型的匹配程度。该问题可以从已经训练好的模型中得到最佳最匹配的模型。

给定模型参数 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π) ,对于隐状态序列 Q T = ( q 1 , q 2 , . . . , q T ) Q^T=(q_1,q_2,...,q_T) QT=(q1,q2,...,qT),能够产生观测序列 O T = ( o 1 , o 2 , . . . , o T ) O^T=(o_1,o_2,...,o_T) OT=(o1,o2,...,oT)的概率为:
P ( O ∣ Q , λ ) = ∏ t = 1 T P ( o t ∣ q t , q t + 1 , λ ) = b q 1 ( o 1 ) b q 1 q 2 ( o 2 ) . . . b q T − 1 q T ( o T ) P(O|Q,\lambda)= \prod_{t=1}^T{P(o_t|q_t,q_{t+1},\lambda)=b_{q_1}(o_1)b_{q_1q_2}(o_2)...b_{q_{T-1}q_T(o_T)}} P(OQ,λ)=t=1TP(otqt,qt+1,λ)=bq1(o1)bq1q2(o2)...bqT1qT(oT)
隐状态的转移概率为 P ( Q ∣ λ ) = π q 1 a q 1 q 2 . . . a q T − 1 q T ( o T ) P(Q|\lambda)=\pi_{q1}a_{q_1q_2}...a_{q_{T-1}q_T}(o_T) P(Qλ)=πq1aq1q2...aqT1qT(oT),观测序列 O O O与隐状态序列 Q Q Q满足 P ( O , S ∣ λ ) = P ( O ∣ Q , λ ) P ( Q ∣ λ ) P(O,S|\lambda)=P(O|Q,\lambda)P(Q|\lambda) P(O,Sλ)=P(OQ,λ)P(Qλ),因此,
P ( O ∣ λ ) = ∑ q P ( O ∣ Q , λ ) P ( Q ∣ λ ) = ∑ q 1 . . . q T + 1 π q 1 ∏ t = 1 T a q t q t + 1 b q t q t + 1 ( o t ) P(O|\lambda)=\sum_{q}P(O|Q,\lambda)P(Q|\lambda)=\sum_{q_1...q_{T+1}}\pi_{q_1}\prod_{t=1}^Ta_{q_{t}q_{t+1}}b_{q_{t}q_{t+1}(o_t)} P(Oλ)=qP(OQ,λ)P(Qλ)=q1...qT+1πq1t=1Taqtqt+1bqtqt+1(ot)
上述公式可以得到一切可能的隐状态序列下得到观测序列的概率,利用全概率公式计算出得到观测序列的概率,但因为所占观测序列长度的增加,导致算法计算效率偏低。通常情况下,会采用前向–后向算法来解决该问题。

1.3.2 解码问题(Decoding)

在给定观测序列 O T = ( o 1 , o 2 , . . . , o T ) O^T=(o_1,o_2,...,o_T) OT=(o1,o2,...,oT)和模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π) 的前提下,试图揭示模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和观测序列 O T O^T OT 之间隐藏的联系,求得对观测序列的最佳解释——隐状态序列 Q T = ( q 1 , q 2 , . . . , q T ) Q^T=(q_1,q_2,...,q_T) QT=(q1,q2,...,qT)。给定 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π) O T = ( o 1 , o 2 , . . . , o T ) O^T=(o_1,o_2,...,o_T) OT=(o1,o2,...,oT),在时刻 t t t ,隐状态 i i i 的概率:
γ i ( t ) = P ( q t = i ∣ O , λ ) = P ( q t = i , O ∣ λ ) P ( O ∣ λ ) \gamma_{i}(t)=P(q_t=i|O,\lambda)=\frac{P(q_t=i,O|\lambda)}{P(O|\lambda)} γi(t)=P(qt=iO,λ)=P(Oλ)P(qt=i,Oλ)
运用前向概率 α i ( i ) \alpha_{i}(i) αi(i)和后向概率 β i ( i ) \beta_i(i) βi(i)表示该概率:
γ i ( t ) = α i ( t ) β i ( t ) ∑ j = 1 N α i ( t ) β i ( t ) \gamma_{i}(t)=\frac{\alpha_{i}(t)\beta_i(t)}{\sum_{j=1}^N\alpha_{i}(t)\beta_i(t)} γi(t)=j=1Nαi(t)βi(t)αi(t)βi(t)
因此,最优隐状态序列 Q ′ Q' Q
Q ′ = a r g m a x γ i ( t ) , 1 ≤ t ≤ T + 1 , 1 ≤ i ≤ N Q'=argmax\gamma_{i}(t),1\leq t \leq {T+1},1\leq i \leq {N} Q=argmaxγi(t),1tT+1,1iN
解码问题一般需要通过 Viterbi 算法来解决。

1.3.3 学习问题(Learning)

作为整个 HMM 中最核心的问题,学习问题主要是通过给定的观测序列 O T = ( o 1 , o 2 , . . . , o T ) O^T=(o_1,o_2,...,o_T) OT=(o1,o2,...,oT)和一个初始模型 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π),调整模型的参数,使得到的模型可以“学习”观测序列,进而生成观测序列的概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)达到最大值。模型的相关参数经过优化,最佳地解释了给定观测序列的产生过程。

学习问题表示为: a r g m a x P ( O ∣ λ ) argmax P(O|\lambda) argmaxP(Oλ)。一般采用 Baum-Welch 算法解决学习问题。

1.4 隐马尔科夫模型算法
1.4.1 前向–后向(Forward-backward)算法

给定一个观察序列 O T = ( o 1 , o 2 , . . . , o T ) O^T=(o_1,o_2,...,o_T) OT=(o1,o2,...,oT)以及模型参数 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)时,前向–后向算法用于计算模型的输出概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)。 前向–后向算法定义了前向(Forward)变量和后向(Backward)变量:

在给定的模型下,前向变量 α t ( i ) \alpha_{t}(i) αt(i)是时刻$ t$ 的观测序列和时刻$ t 的 隐 状 态 是 的隐状态是 s_i$ 的概率为
α t ( i ) = P ( o 1 , o 2 , . . . , o t , q t = s i ∣ λ ) ; i = 1 , 2 , . . . , N ; t = 1 , 2 , . . . , T \alpha_{t}(i)=P(o_1,o_2,...,o_t,q_t=s_i|\lambda);i=1,2,...,N;t=1,2,...,T αt(i)=P(o1,o2,...,ot,qt=siλ);i=1,2,...,N;t=1,2,...,T
通过向前递归算法计算 P ( O T ∣ λ ) P(O^T|\lambda) P(OTλ)。其步骤如下:

(1)初始化:
α 1 ( i ) = P ( o 1 , q 1 = s i ∣ λ ) = π i b i ( o 1 ) \alpha_1(i)=P(o_1,q_1=s_i|\lambda)=\pi_ib_i(o_1) α1(i)=P(o1,q1=siλ)=πibi(o1)
(2)递推公式:
α t + 1 ( j ) = { ∑ i = 1 N [ α t ( i ) a i j ] } b j ( o t + 1 ) ; j = 1 , 2 , . . . , N ; t = 1 , 2 , . . . , ( T − 1 ) \alpha_{t+1}(j)=\left\{ \sum_{i=1}^N \left[\alpha_t(i)a_{ij}\right] \right\}b_j(o_{t+1});j=1,2,...,N;t=1,2,...,(T-1) αt+1(j)={i=1N[αt(i)aij]}bj(ot+1);j=1,2,...,N;t=1,2,...,(T1)
(3)结束:
P ( O T ∣ λ ) = ∑ i = 1 N α T ( i ) P(O^T|\lambda)=\sum_{i=1}^N\alpha_T(i) P(OTλ)=i=1NαT(i)
类似的,已知 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和隐状态 s i s_i si,后向变量 β t ( i ) \beta_t(i) βt(i)为获得时刻$ t+1$ 到最终时刻$ T$ 的 ( o t + 1 , o t + 2 , . . . , o T ) (o_{t+1},o_{t+2},...,o_T) (ot+1,ot+2,...,oT) 的条件概率,即
β t ( i ) = P ( o t + 1 , o t + 2 , . . . , o T ∣ q t = s i , λ ) \beta_t(i)=P(o_{t+1},o_{t+2},...,o_T|q_t=s_i,\lambda) βt(i)=P(ot+1,ot+2,...,oTqt=si,λ)
通过向后递推算法计算 P ( O T ∣ λ ) P(O^T|\lambda) P(OTλ) 。其步骤如下:

(1)初始化:
β T ( i ) = 1 , i = 1 , 2 , . . . , N \beta_T(i)=1,i=1,2,...,N βT(i)=1,i=1,2,...,N
(2)递推公式:
β t ( i ) = ∑ i = 1 N [ a i j b j ( o t + 1 ) ] β t + 1 ( j ) ; t = ( T − 1 ) , ( T − 2 ) , . . . , 1 ; i = 1 , 2 , . . . , N \beta_{t}(i)= \sum_{i=1}^N \left[a_{ij}b_{j}(o_{t+1})\right]\beta_{t+1}(j);t=(T-1),(T-2),...,1;i=1,2,...,N βt(i)=i=1N[aijbj(ot+1)]βt+1(j);t=(T1),(T2),...,1;i=1,2,...,N
(3)结束:
P ( O T ∣ λ ) = ∑ i = 1 N β 1 ( i ) π i b i ( o 1 ) P(O^T|\lambda)=\sum_{i=1}^N\beta_1(i)\pi_ib_i(o_1) P(OTλ)=i=1Nβ1(i)πibi(o1)

1.4.2 Viterbi 算法

给定一个观测序列 O T O^T OT以及模型参数 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)时,基于动态规划算法, Viterbi 算法用于解决在最优的意义上确定一个状态序列 Q T Q^T QT的问题。该算法可以得到最优的状态转移路径以及路径的输出概率。它是用于解决解码问题的最佳算法。其算法复杂度为 O ( M 2 T ) O(M^2T) O(M2T) M M M 是状态的个数, T T T 是观测序列的长度。 给定模型参数 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π) ,在时刻 t t t 以状态 s i s_i si 结束的所有隐马尔可夫序列中,到时刻 t t t 的观测序列 ( o t + 1 , o t + 2 , . . . , o T ) (o_{t+1},o_{t+2},...,o_T) (ot+1,ot+2,...,oT)最有可能被观察到的概率。该算法可以找到最优的隐状态。定义 δ t ( i ) \delta_t(i) δt(i)变量:
δ t ( i ) = m a x P ( q 1 , q 2 , . . . , q t − 1 , q t = s i , o 1 , o 2 , . . . , o t ∣ λ ) ; i = 1 , 2 , . . . , N ; t = 1 , 2 , . . . , T \delta_t(i)=maxP(q_1,q_2,...,q_{t-1},q_t=s_i,o_1,o_2,...,o_t|\lambda);i=1,2,...,N;t=1,2,...,T δt(i)=maxP(q1,q2,...,qt1,qt=si,o1,o2,...,otλ);i=1,2,...,N;t=1,2,...,T
其算法步骤如下:
(1)初始化:
δ 1 ( i ) = π i b i ( o 1 ) , ψ 1 ( i ) = 0 ; i = 1 , 2 , . . . , N \delta_1(i)=\pi_ib_i(o_1),\psi_1(i)=0;i=1,2,...,N δ1(i)=πibi(o1),ψ1(i)=0;i=1,2,...,N
(2)递推公式:
δ t ( i ) = [ m a x ( δ t − 1 ( i ) a i j ] b j ( o t ) , j = 1 , 2 , . . . , N ; t = 2 , . . . , T \delta_t(i)=\left[max(\delta_{t-1}(i)a_{ij}\right]b_j(o_t),j=1,2,...,N;t=2,...,T δt(i)=[max(δt1(i)aij]bj(ot),j=1,2,...,N;t=2,...,T

ψ t ( j ) = a r g m a x [ δ t − 1 ( i ) a i j ] , j = 1 , 2 , . . . , N ; t = 2 , . . . , T \psi_t(j)=argmax\left[\delta_{t-1}(i)a_{ij}\right],j=1,2,...,N;t=2,...,T ψt(j)=argmax[δt1(i)aij],j=1,2,...,N;t=2,...,T

(3)结束:
P ∗ = m a x [ δ T ( i ) ] ; q T ∗ = a r g m a x [ δ T ( i ) ] P^*=max\left[\delta_{T}(i)\right];q_T^*=argmax\left[\delta_{T}(i)\right] P=max[δT(i)];qT=argmax[δT(i)]
(4)最优状态序列确定—路径回溯:
q t ∗ = ψ t + 1 ( q t + 1 ∗ ) ; t = ( T − 1 ) , ( T − 2 ) , . . . , 1 q_t^*=\psi_{t+1}(q_{t+1}^*);t=(T-1),(T-2),...,1 qt=ψt+1(qt+1);t=(T1),(T2),...,1

1.4.3 Baum‐Welch 算法

学习问题也称为参数估计问题,该问题的计算与前两个问题相比相对比较复杂。目 前 使 用 较 为 广 泛 的 方 法 是 Baum-Welch 算 法 。 原 理 为 已 知 观 测 序 列 O T = ( o 1 , o 2 , . . . , o T ) O^T=(o_1,o_2,...,o_T) OT=(o1,o2,...,oT),该算法能确定一个 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π),使得 P ( O ∣ λ ) P(O|\lambda) P(Oλ)最大。该算法是基于 EM 算法的迭代算法,初始时刻为各参数的经验估计值,通过逐步迭代得到模型的参数,使模型参数逐渐趋向最优值。 具体算法步骤如下:

(1)初始化:

π i = γ 1 ( i ) \pi_i=\gamma_{1}(i) πi=γ1(i),当 t = 1 t=1 t=1 时处于状态 s i s_i si 的期望值, λ = ( A 0 , B 0 , π ) \lambda=(A_0,B_0,\pi) λ=(A0,B0,π)

(2)递推过程:

在给定模型参数和观测序列的前提条件下,HMM 链在时刻 t t t 的状态为 s i s_i si 、时刻 t + 1 t+1 t+1 的状态为 s j s_j sj的条件概率 ξ t ( i , j ) \xi_t(i,j) ξt(i,j)
KaTeX parse error: Can't use function '$' in math mode at position 2: $̲\xi_t(i,j)=\fra…

t t t 时刻处于状态 s i s_i si的概率: γ t ( i ) = ∑ j = 1 N ξ t ( i , j ) \gamma_{t}(i)=\sum_{j=1}^N\xi_t(i,j) γt(i)=j=1Nξt(i,j)

整个过程从状态 s i s_i si转出次数的预期: ∑ t = 1 T − 1 γ t ( i ) \sum_{t=1}^{T-1}\gamma_{t}(i) t=1T1γt(i)

s i s_i si 跳转到 s j s_j sj次数的预期: ∑ t = 1 T − 1 ξ t ( i ) \sum_{t=1}^{T-1}\xi_{t}(i) t=1T1ξt(i)

可得重估公式为:
a i j = ∑ t = 1 T − 1 ξ t ( i ) ∑ t = 1 T − 1 γ t ( i ) , b j = ∑ t = 1 T γ t ( j ) ∑ t = 1 T γ t ( j ) a_{ij}=\frac{\sum_{t=1}^{T-1}\xi_{t}(i)}{\sum_{t=1}^{T-1}\gamma_{t}(i)},b_j=\frac{\sum_{t=1}^{T}\gamma_{t}(j)}{\sum_{t=1}^{T}\gamma_{t}(j)} aij=t=1T1γt(i)t=1T1ξt(i),bj=t=1Tγt(j)t=1Tγt(j)
(3)终止条件:

∣ l o g P ( O ∣ λ ) − l o g P ( O ∣ λ 0 ) ≤ ε ∣ |logP(O|\lambda)-logP(O|\lambda_0) \leq \varepsilon| logP(Oλ)logP(Oλ0)ε,其中 ε \varepsilon ε是预先设定的阈值。

二、 地图匹配

2.1 地图匹配概述

地图匹配是将一系列有序的用户或者交通工具的位置关联到电子地图的路网上的过程。它的主要目的是跟踪车辆,交通流进行分析和发现驾驶方向的起点。对于轨迹分析来说,地图匹配是有必要的,这是由于GPS给定的用户或者交通工具的位置信息(经度,纬度)在匹配到电子地图的路网上会有误差,如果不进行地图匹配,那么交通工具可能不显示路网上。

地图匹配问题下图所示,在下面图中有三个测量的位置,他们按顺序显示为黑点。地图匹配问题是要找出车辆行驶的道路,最明显的方法就是简单地将每个点与最近的道路匹配。但由于测量噪声的存在,因此该算法容易产生误差。在图中,我们可以很容易观察出真实的轨迹,但是如果将第二和第三点与最近的道路相关联,那么这就没办法将他们匹配起来了。即使使用了GPS接收器,但依然可以观察到异常值和错误点的延伸序列,产生误差的原因可能是城市峡谷和其他陆地特征影响了GPS信号,导致误差的产生,因此在地图匹配之前需要考虑点的序列[2]。

2.2 地图匹配算法

由于原先逐点的、最近的道路匹配经常失败,研究者提出了一种方法,可以同时匹配多个点。一种方法是根据位置测量创建一个(可能是平滑的)曲线,并尝试寻找具有相似几何形状的匹配道路。例如,White 等人[3]提出了四种算法,第一种算法为简单的节点最接近匹配方案,第二种算法将方向信息添加到最接近的匹配方法中,将测量的方向与道路的角度进行比较。第三个算法对第二个算法进行了改进,加入了连接约束,第四个算法使用曲线进行匹配。White 等人经过测试发现在总共约17公里的驾驶数据测试中,第四个算法的表现性能要比简单的第二个算法好。另一种方法是Greenfeld[4]提出的几何方法,他建立了一个通过道路网络的拓扑上可行的路径,匹配是由一个基于距离和方向的相似性度量来确定的。

Kim和Kim[7]研究了一种测量每一个GPS点在任何给定道路上的位置的方法,考虑了它与道路的距离、道路段的形状和路径的连续性。该测度被用于与学习参数的模糊匹配方案中,以优化性能。最复杂几何匹配算法之一来自Brakatsoulas等人[8],他们利用Fréchet距离的变化来匹配GPS轨迹与道路网络中的候选路径的曲线。Alt等人[9]给出了用于匹配曲线的Fréchet的泛化。但纯几何方法的一个问题是它们对测量噪声和采样率较为敏感,将一组采样的噪声测量数据的点连接起来与道路的几何形状不太匹配。因此,基于HMM的地图匹配方法被提出来解决这一问题。

三、基于HMM的地图匹配

3.1 基于HMM的地图匹配概述

地图匹配的结果,就是将 GPS 序列映射到实际路网中, 最终得到真实路径。对此而言,车辆(观测物)在路段中真实的位置在路网的路段是不可见且未知的,对应隐马尔科夫 模型中的隐藏状态;GPS 轨迹点是 GPS 仪器测量而来,属于 观测物真实轨迹点(可观测到的),将其看作隐马尔科夫模 型中的观测状态。因此需要根据先验知识及路网情况确定初 始状态概率矩阵 Z、观测概率矩阵 Y,状态概率转移矩阵 X 即可描述此隐马尔科夫模型。

3.2 相关工作

显然,基于几何的地图匹配算法将一组缓慢采样的噪声测量数据的点连接起来与道路的几何形状不太匹配。而隐马尔可夫模型(HMM)准确地建模道路的连接性,并同时考虑许多不同的路径假设,解决了这一问题。

HMM最早应用于地图匹配的是Lamb和Thiébaux[10],他们结合使用了卡尔曼滤波和HMM,几个卡尔曼滤波器沿着不同的假设路径跟踪车辆,HMM在它们之间进行选择。Hummel等人[1]在地图匹配中应用了HMM来进行映射匹配,使用HMM来平衡测量噪声和路径概率,测量概率使用了与高斯GPS噪声假设,并且加入了一个符号来表示车辆与道路之间的方向不匹配。

目前国内互联网地图公司所使用的地图匹配算法大多都是来自Paul等人[2]在2009年的GIS大会上发表的一篇论文,该论文使用HMM对地图匹配过程进行建模,将匹配的概率分解为观察概率及转移概率的综合结果。Paul等人所做的工作在在Hummel等人的基础上进行改进,他们的测量概率同样使用了高斯GPS噪声假设,但与Hummel等人所不同的是,他们没有使用航向数据,而是通过测量的GPS点来计算出航向,因此可能存在一定误差。在转移概率方面,Hummel等人使用一个简单的模型来进行匹配,此模型只考虑了与当前匹配候选点相邻的道路。而Paul等人考虑了圆的距离和路线距离的差异,提出了创新性且详细的的公式,强调保持一种原则性的方法来解决地图匹配问题。他们用前后两个观测点的距离与前后两个候选点的距离之差的绝对值来表示这两段距离的接近程度,越接近,概率越大,且最后的概率是用指数函数来拟合,因为在实际数据分析中,这个状态转移概率是符合指数分布的。而观测概率则是一模一样的,都是用了正态分布。但这个模型并不是完美的HMM,因为在计算状态转移概率时既要考虑候选点的信息,也要考虑观测点的信息,所以在预测问题上对Viterbi算法也需要进行相应的改正。

Goh等人[5]进行了改进并提出了一种基于隐马尔可夫模型 (HMM) 的在线地图匹配算法,相比之前基于 HMM 的算法有三个改进,一是在计算状态转移矩阵时用了机器学习的方法:SVM。二是计算观测概率矩阵是考虑了路段的宽度信息。三是使用在线的Viterbi算法来达到在线的Map-Matching。 此外,他们所使用的数据是包含时刻 t t t的速率和方向,即速度信息。虽然这种方法可以更好地逼近实际行走路径,提高地图匹配精度,但难以同时保障算法的准确率和时间效率的问题。

Osogami等人[6]使用强化学习来进行地图匹配,其思想还是将Map-Matching问题建模为HMM,仍然是将最终的概率分解为观察概率(Measurement Probability)及转移概率(Transition Probability),只是在具体实施过程中存在两个不同。一是计算转移概率的时候,不仅仅使用圆距离和路线距离的差值计算转移概率,同时引入转弯的信息计算转移概率。二是计算转弯概率权重的时候, 使用最大熵IRL进行参数估计。通过实验发现,他们提出的转移概率可以大大降低地图匹配的误差,可以将误差率降低40%。

四、结论

本文针对隐马尔科夫模型的理论及在地图匹配方面的应用进行了介绍,并介绍了现今基于HMM的地图匹配算法的相关工作,针对他们各自的优缺点进行了分析。目前,虽然针对基于HMM的地图匹配进行了许多研究,但由于数据集不统一,因此难以比较各个方法实际的准确度,因此,在未来找到一个标准的数据集来进行研究是一个待解决的问题。

五、参考文献

[1] 黄冉. 基于隐马尔科夫模型(HMM)的股票价格预测分析[D].青岛大学,2015.

[2] Paul Newson and John Krumm. 2009. Hidden Markov map matching through noise and sparseness. In Proceedings of the 17th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems (GIS '09). Association for Computing Machinery, New York, NY, USA, 336–343. DOI:https://doi.org/10.1145/1653771.1653818

[3] White, C.E., D. Bernstein, and A.L. Kornhauser, Some map matching algorithms for personal navigation assitants. Transportation Reserach Part C: Emerging Technologies, 2000. 8(1-6): p. 91-108.

[4] Greenfeld, J.S., Matching GPS Observations to Locations on a Digital Map, in 81th Annual Meeting of the Transportation Research Board. 2002: Washington, DC, USA.

[5] C. Y. Goh, J. Dauwels, N. Mitrovic, M. T. Asif, A. Oran and P. Jaillet, “Online map-matching based on Hidden Markov model for real-time traffic sensing applications,” 2012 15th International IEEE Conference on Intelligent Transportation Systems, 2012, pp. 776-781, doi: 10.1109/ITSC.2012.6338627.

[6] Osogami T, Raymond R. Map matching with inverse reinforcement learning[C]//Twenty-Third International Joint Conference on Artificial Intelligence. 2013.

[7] Kim, S. and J.-H. Kim, Adaptive Fuzzy-Network-Based C-Measure Map-Matching Algorithm for Car Navigation
System. IEEE Transactions on Industrial Electronics, 2001. 48(2): p. 432-441.

[8] Brakatsoulas, S., et al., On Map-Matching Vehicle Tracking Data, in 31st International Conference on Very Large Databases (VLDB 2005). 2005: Trondheim, Norway p. 853-864.

[9] Alt, H., et al., Matching Planar Maps. Journal of Algorithms, 2003. 49: p. 262–283.

[10] Lamb, P. and S. Thiebaux, Avoiding Explicit Map-Matching in Vehicle Location, in 6th World Conference on Intelligent Transportation Systems (ITS-99). 1999: Toronto, Canada.

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程小白呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值