千呼万唤始出来,犹抱琵琶半遮面,揭开HMM的神秘面纱

什么是时序模型

比如说图像,一个人的特征等都是非时序类型的

股票价格,说话的语音,文本,温度等都是时序类型

传统模型使用HMM/CRF即可解决问题

但是由于硬件的心呢个提升,现在主流RNN/LSTM等深度学习模型

什么是HMM

千呼万唤始出来,犹抱琵琶半遮面,揭开HMM的神秘面纱

他是Directed+Generate model并存的

HMM 的参数(ZIZ_I是离散性)

以单词词性预测为例来说明问题
θ=(A,B,π) \theta=(A,B,\pi)

对于Ai,jA_{i,j},代表某一行ii前一个单词为jj的状态转移概率,大小MMM*M的大小,MM为所有单词个数

对于Bi,jB_{i,j},代表某一行ii的状态会生成jj的单词的概率,大小MMM*M的大小,MM为所有单词个数

对于π=[π1,π2,...πm]\pi=[\pi_1,\pi_2,...\pi_m],代表某一个状态Z1,Z2Z_1,Z_2在第一个位置的概率,其中π1+π2+...+πm=1\pi_1+\pi_2+...+\pi_m=1

那么给定x>θx-->\theta就是预估集问题

θ,x>Z\theta,x--->Z变成了推理问题

HMM 中的 Inference 问题

给定θ=(A,B.π)\theta =(A,B.\pi)xx

我们可以罗列出所有的情况????,不要嫌多

ifZi{a,b,c}Z_i\in \{a,b,c\}那么存在下列的情况

aaa.....aaab.....bbaa.....a aaa.....a \\ aab.....b \\ baa.....a

那么P(Z1)P(Z2Z1)P(Z3Z2)...P(ZmPm1)P(x1Z1)P(x2Z2)...P(xnZn)P(Z_1)P(Z_2|Z_1)P(Z_3|Z_2)...P(Z_m|P_{m-1})·P(x_1|Z_1)P(x_2|Z_2)...P(x_n|Z_n),每一项都可以计算出来,只需要查询B即可,但是时间复杂度太高了3n3^{n},哈哈哈,确实还是有那么一点点小问题纳,奇迹估计是跑不出来了

但是并不是说没有解决方案了,可以试探性的使用Viterbi试试

千呼万唤始出来,犹抱琵琶半遮面,揭开HMM的神秘面纱

比如上面我画的某条路径,可以使用P(Z1=2)P(x1Z1=2)P(Z2=1Z1=2)P(x2Z2=1)...P(ZK=2)P(XKZK=2)P(Z_1=2)P(x_1|Z_1=2)P(Z_2=1|Z_1=2)P(x_2|Z_2=1)...P(Z_K=2)P(X_K|Z_K=2)代表所有路径

δk(i)\delta_k(i):the score of the best path ending at state i at time k

那么δk+1(j)=max{δk(1)+logP(Zk+1=jZk=1)+logP(xt+1Zt+1=j)δk(2)+logP(Zk+1=jZk=2)+logP(xt+1Zt+1=j)......δk(m)+logP(Zk+1=jZk=m)+logP(xt+1Zt+1=j)\delta_{k+1}(j)=max \left\{\begin{array}{l}\delta_k(1)+\log P(Z_{k+1}=j|Z_k=1)+\log P(x_{t+1}|Z_{t+1}=j)\\\delta_k(2)+\log P(Z_{k+1}=j|Z_k=2)+\log P(x_{t+1}|Z_{t+1}=j) \\ ...... \\ \delta_k(m)+\log P(Z_{k+1}=j|Z_k=m)+\log P(x_{t+1}|Z_{t+1}=j)\end{array}\right.

简化之后

δk+1(j)=maxi[δk(i)+logP(Zk+1=jZk=i)+logP(xk+1Zk+1=j)]\delta_{k+1}(j)=max_i[\delta_k(i)+\log P(Z_{k+1}=j|Z_k=i)+\log P(x_{k+1}|Z_{k+1}=j)]

HMM 中的 FB 算法

F/B Algorithm :compute P(Zkx)P(Z_k|x)

Forward:computer P(Zk,x1:k)P(Z_k,x_{1:k})

Backward:computer P(xk+1:nZk)P(x_{k+1:n|Z_k})

贝叶斯定理可以得出
P(Zkx)=P(Zk,x)P(x)P(Zk,x) P(Z_k|x)=\frac{P(Z_k,x)}{P(x)}\propto P(Z_k,x)

P(Zk,x)=P(xk+1:nZk,x1:k)P(Zk,x1:k) P(Z_k,x)=P(x_{k+1:n}|Z_k,x_{1:k})·P(Z_k,x_{1:k})

反思P(xk+1:nZk,x1:k)P(x_{k+1:n}|Z_k,x_{1:k})中,x1:kx_{1:k}独立于ZkZ_k
P(Zk,x)=P(xk+1:nZk)backwardP(Zk,x1:k)forward P(Z_k,x)=\underbrace {P(x_{k+1:n}|Z_k)}_{backward}·\underbrace {P(Z_k,x_{1:k})}_{forward}
例如P(Zk=1x)=P(Zk=1,x)jP(Zk=j,x)P(Z_{k=1|x})=\frac{P(Z_k=1,x)}{\sum_jP(Z_k=j,x)}

x1:k=(x1,x2,...xk)x_{1:k}=(x_1,x_2,...x_k)

  • 通过F/B算法可以计算模型参数
  • Change Detection

场景:组团欺诈,在那些时间段,网络突变

A:计算grapht,grapht+1graph_t,graph_{t+1}之间的相似度

B:HMM中每个状态下生成的图,判断P(ZkZk1x).threholdP(Z_k\neq Z_{k \neq1}|x) . threhold

对于目标函数 P(Zk,x1:k)P(Z_k,x_{1:k})

千呼万唤始出来,犹抱琵琶半遮面,揭开HMM的神秘面纱

​ 构造P(Zk,x1:k)=[ ]P(Zk1,x1:k1)P(Z_k,x_{1:k})=[\ ]·P(Z_{k-1},x_{1:k-1})m,并且把Zk1Z_{k-1}边缘化
P(Zk,x1:k)=Zk1P(Zk1,Zk,x1:k1)=Zk1P(Zk1,x1:k1)P(ZkZk1,x1:k1)P(xkZk,Zk1,x1=k1)=Zk1P(Zk1,x1:k1)P(ZkZk1)AP(xkZk)B \begin{aligned} P(Z_k,x_{1:k})&=\sum_{Z_{k-1}}P(Z_{k-1},Z_k,x_{1:k-1}) \\ &=\sum_{Z_{k-1}}P(Z_{k-1},x_{1:k-1})·P(Z_k|Z_{k-1},x_{1:k-1}) ·P(x_k|Z_k,Z_{k-1},x_{1=k-1}) \\ &=\sum_{Z_{k-1}}\underbrace {P(Z_{k-1},x_{1:k-1})·P(Z_k|Z_{k-1})}_A ·\underbrace {P(x_k|Z_k) }_B \end{aligned}
重新整理αk(Zk)=Zk1αk1(Zk1)P(ZkZk1)P(xkZk)\alpha_k(Z_k)=\sum_{Z_{k-1}}\alpha_{k-1}(Z_{k-1})·P(Z_k|Z_{k-1})·P(x_k|Z_k)

那么D-seperration可以这样表示

α1(Z1)=P(Z1,x)=P(Z1)πP(x1Z1)B\alpha_1(Z_1)=P(Z_1,x)=\underbrace {P(Z_1)}_\pi· \underbrace {P(x_1|Z_1)}_B

对于目标函数P(xk+1:nZk)P(x_{k+1:n|Z_k})

千呼万唤始出来,犹抱琵琶半遮面,揭开HMM的神秘面纱

构造P(xk+1:nZk)=[ ]P(xk+2:nZk+1)P(x_{k+1:n}|Z_k)=[\ ]·P(x_{k+2:n}|Z_{k+1}),并且边缘化Zk+1Z_{k+1},注意乘P(Zk)P(Z_k)
P(xk+1:nZk)=Zk+1P(xk+1:n.Zk+1Zk)=Zk+1P(xk+2:nZk+1,Zk,xk+1)P(xk+1Zk+1,Zk)P(Zk+1Zk)=Zk+1P(xk+2:nZk+1)BP(xk+1Zk+1)P(Zk+1Zk)A \begin{aligned} P(x_{k+1:n}|Z_k) & = \sum_{Z_{k+1}}P(x_{k+1:n}.Z_{k+1}|Z_k) \\ &= \sum_{Z_{k+1}}·P(x_{k+2:n}|Z_{k+1},Z_k,x_{k+1})·P(x_{k+1}|Z_{k+1},Z_k)·P(Z_{k+1}|Z_k) \\ &=\sum_{Z_{k+1}}·\underbrace {P(x_{k+2:n}|Z_{k+1})}_B·\underbrace {P(x_{k+1}|Z_{k+1})·P(Z_{k+1}|Z_k)}_A \end{aligned}
重新整理βk(Zk)=Zk+1βk+1(Zk+1)P(ZkZk1)P(xk+1Zk+1)\beta_k(Z_k)=\sum_{Z_{k+1}}\beta_{k+1}(Z_{k+1})·P(Z_k|Z_{k-1})·P(x_{k+1}|Z_{k+1}),时间复杂度O(nm2)O(n·m^2)

哈哈哈,画图,推导,化简,降低时间复杂度一气呵成

错误还请大佬们指出,推导不一定正确,爱好,纯属爱好,记录美好生活,从点滴做起!

另可参看本人知乎,博客文章,互相交流,原创不易,欢迎转载,转载请注明来源!!!

参考

隐马尔可夫模型

Hidden Markov Model

Hidden Markov Modes Fundamentals