隐马尔科夫模型(HMM)
- 基于时序的概率模型
定义
Q = [ q 1 , q 2 . . . , q N ] 是 所 有 可 能 的 状 态 集 合 V = [ v 1 , v 2 . . . v M ] 是 所 有 目 标 集 合 I = [ i 1 , i 2 . . . i T ] 表 示 长 度 为 T 的 状 态 序 列 O = [ o 1 , o 2 . . . o T ] 表 示 长 度 为 T 的 观 测 序 列 概 率 转 移 矩 阵 A = [ a i j ] n × n a i j = P ( i t + 1 = q j ∣ i t = q i ) ( 在 t 时 刻 ) 观 测 概 率 矩 阵 B = [ b j ( k ) ] N × M b j ( k ) = P ( o t = v k ∣ i t = q j ) 初 始 状 态 概 率 向 量 π = ( π i ) π i = P ( i 1 = q i ) Q=[q_1,q_2...,q_N]是所有可能的状态集合 qquad V=[v_1,v_2...v_M]是所有目标集合\ I=[i_1,i_2...i_T]表示长度为T的状态序列qquad O=[o_1,o_2...o_T]表示长度为T的观测序列\ \ 概率转移矩阵A=[a_{ij}]_{n×n}qquad a_{ij}=P(i_{t+1}=q_j|i_{t}=q_i)qquad(在t时刻)\ 观测概率矩阵B=[b_j(k)]_{N×M}qquad b_j(k)=P(o_t=v_k|i_t=q_j)\ 初始状态概率向量pi=(pi_i)qquad pi_i=P(i_1=q_i) Q=[q1,q2...,qN]是所有可能的状态集合V=[v1,v2...vM]是所有目标集合I=[i1,i2...iT]表示长度为T的状态序列O=[o1,o2...oT]表示长度为T的观测序列概率转移矩阵A=[aij]n×naij=P(it+1=qj∣it=qi)(在t时刻)观测概率矩阵B=[bj(k)]N×Mbj(k)=P(ot=vk∣it=qj)初始状态概率向量π=(πi)πi=P(i1=qi)
综上,HMM可以用模型 λ = ( A , B , π ) lambda=(A,B,pi) λ=(A,B,π)表示
基本假设
- 从定义可知,HMM做了两个基本的假设
- 1、齐次马尔科夫性假设:假设HMM在任意时刻 t t t只依赖于前的任意时刻
- 2、观察独立性假设:假设任意观察序列只依赖于该时刻的状态与其他状态无关
三个基本问题
- 1、概率计算问题:已知模型和观测序列,求在该模型下,观测序列出现的概率
- 2、学习问题:已知观测序列估计模型参数,即用极大似然法估计参数
- 3、预测问题:也称为解码问题。已知模型和观测序列,求最有可能的状态序列
一、概率计算问题
直接计算法
- 列举所有可能的状态序列,然后求出状态序列的概率
- 这样的时间复杂度是 O ( T N T ) O(TN^T) O(TNT)级别的
前向算法
设 前 向 概 率 为 α t ( i ) = P ( o 1 , o 2 . . . , o t , i t = q i ∣ λ ) 显 然 有 以 下 的 递 推 公 司 a t + 1 ( i ) = [ ∑ j = 1 N α t ( j ) a j i ] b i ( o t + 1 ) α 1 ( i ) = π i b i ( o 1 ) 所 以 P ( O ∣ λ ) = ∑ i = 1 N α T ( i ) 设前向概率为alpha_t(i)=P(o_1,o_2...,o_t,i_t=q_i|lambda)\ 显然有以下的递推公司\ a_{t+1}(i)=[sum_{j=1}^Nalpha_t(j)a_{ji}]b_i(o_{t+1})qquad alpha_1(i)=pi_ib_i(o_1)\ 所以\ P(O|lambda)=sum_{i=1}^N alpha_T(i) 设前向概率为αt(i)=P(o1,o2...,ot,it=qi∣λ)显然有以下的递推公司at+1(i)=[j=1∑Nαt(j)aji]bi(ot+1)α1(i)=πibi(o1)所以P(O∣λ)=i=1∑NαT(i)
这样的时间复杂度是 O ( T N 2 ) O(TN^2) O(TN2)级别的,这样的优化就在于,用一个递推状态来记录了前面搜索的结果,而不用像第一个方法一样重读搜索。
后向算法
- 思想和前向的算法差不多,就是倒过来求
设 后 向 概 率 为 β t ( i ) = P ( o t + 1 , o t + 2 , . . . , o T ∣ i t = q i , λ ) β T ( i ) = 1 初 始 化 β t ( i ) = ∑ j = 1 N a i j b j ( o t + 1 ) β t + 1 ( j ) P ( O ∣ λ ) = ∑ i = 1 N π i b i ( o 1 ) β 1 ( i ) 设后向概率为beta_t(i)=P(o_{t+1},o_{t+2},...,o_{T}|i_t=q_i,lambda)\ beta_{T}(i)=1qquad 初始化\ beta_t(i)=sum_{j=1}^N a_{ij}b_j(o_{t+1})beta_{t+1}(j)\ P(O|lambda)=sum_{i=1}^N pi_ib_i(o_1)beta_1(i) 设后向概率为βt(i)=P(ot+1,ot+2,...,oT∣it=qi,λ)βT(i)=1初始化βt(i)=j=1∑Naijbj(ot+1)βt+1(j)P(O∣λ)=i=1∑Nπibi(o1)β1(i)
结合前向后向概率的一些计算
-
1、给定模型和观测,计算时刻t时处于状态 q i q_i qi的概率
-
把式子化成上面 P ( O ∣ λ ) P(O|lambda) P(O∣λ)的形式
-
γ t ( i ) = P ( i t = q i ∣ O , λ ) = P ( i t = q i , O ∣ λ ) P ( O ∣ λ ) = α t ( i ) β t ( i ) ∑ j = 1 N α t ( j ) β t ( j ) gamma_t(i)=P(i_t=q_i|O,lambda)=frac{P(i_t=q_i,O|lambda)}{P(O|lambda)}=frac{alpha_t(i)beta_t(i)}{sum_{j=1}^N alpha_t(j)beta_t(j)} γt(i)=P(it=qi∣O,λ)=P(O∣λ)P(it=qi,O∣λ)=∑j=1Nαt(j)βt(j)αt(i)βt(i)
-
-
2、给定模型和观测,计算在时刻t处于状态 q t q_t qt,在时刻t+1处于 q j q_j qj的概率
- 将t+1的状态空出来直接计算
ξ t ( i , j ) = P ( i t = q i , i i + 1 = q j ∣ O , λ ) = P ( i t = q i , i i + 1 = q j , O ∣ λ ) P ( O ∣ λ ) = α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) ∑ i = 1 N ∑ j = 1 N α t ( i ) a i j b j ( o t + 1 ) β t + 1 ( j ) xi_t(i,j)=P(i_t=q_i,i_{i+1}=q_j|O,lambda)=frac{P(i_t=q_i,i_{i+1}=q_j,O|lambda)}{P(O|lambda)}=\frac{alpha_t(i)a_{ij}b_j(o_{t+1})beta_{t+1}(j)}{sum_{i=1}^Nsum_{j=1}^N alpha_t(i)a_{ij}b_j(o_{t+1})beta_{t+1}(j)} ξt(i,j)=P(it=qi,ii+1=qj∣O,λ)=P(O∣λ)P(it=qi,ii+1=qj,O∣λ)=∑i=1N∑j=1Nαt(i)aijbj(ot+1)βt+1(j)αt(i)aijbj(ot+1)βt+1(j)
- 将t+1的状态空出来直接计算
-
3、。。。。。。
二、学习问题
监督学习方法
-
已知观察序列和状态序列 [ ( O 1 , I 1 ) , ( O 2 , I 2 ) , . . . , ( O S , I S ) ] [(O_1,I_1),(O_2,I_2),...,(O_S,I_S)] [(O1,I1),(O2,I2),...,(OS,IS)],然后我们利用极大似然估计来计算参数
-
直接用频率估计即可
非监督学习方法(Baum-Welch算法)
- 只有观察序列,并没有对应的状态序列。
- 这种情况也就是假设状态序列是
隐变量
I I I,然后写出一个含隐变量的概率模型
P ( O ∣ λ ) = ∑ I P ( O ∣ I , λ ) P ( I ∣ λ ) P(O|lambda)=sum_{I}P(O|I,lambda)P(I|lambda) P(O∣λ)=I∑P(O∣I,λ)P(I∣λ)
-
然后我们就可以用EM算法解决,所以其实Baum-Welch算法就是EM算法在HMM上的应用
- EM算法简单来说就是,先明确隐函数是什么,然后把隐函数写进去写出对数似然,然后对隐变量取期望写出Q函数(E步),然后再极大化Q函数(M步)得到下一轮的参数初值
最后
以上就是漂亮电源最近收集整理的关于隐马尔科夫模型(HMM)学习小记隐马尔科夫模型(HMM)的全部内容,更多相关隐马尔科夫模型(HMM)学习小记隐马尔科夫模型(HMM)内容请搜索靠谱客的其他文章。
发表评论 取消回复