咸鱼了一个多月,黑色五月过得异常难受,找实习好烦,心态一直调整不好。
然后。。突然就想起了隐马尔可夫,我每天的心理状态是别人无法观测到的,每一天的状态组在一起就是一个状态序列,而我的行为活动是其他人可见的,每一天的行为组合在一起就是观测序列,当知道我月初的各种状态的概率分布,也知道了我这个人每种状态转移的概率分布和在某种状态下做出某种行为活动的概率分布时,是不是就能通过我这一个月每天的行为活动组成的序列来判断我每天的状态呢。emmm,隐马尔可夫带你成为一个能看懂人心的“神棍”。
基本假设
首先为了计算简单,要提出两点假设:
第一、齐次马尔可夫性假设
假设隐藏的马尔可夫链在任意时刻tt的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻tt无关。
即 t=1,2,...,Tt=1,2,...,T
第二、观测独立性假设
假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关。
即P(ot|iT,oT,iT−1,oT−1,...,it,ot,...,i1,o1)=P(ot|it)P(ot|iT,oT,iT−1,oT−1,...,it,ot,...,i1,o1)=P(ot|it)
这两个假设一个是状态转移的关系,另一个是状态生成观测的关系。
模型参数(A,B,π)
隐马尔可夫模型是一个关于时序的概率模型,它由初始状态概率向量ππ,状态转移概率矩阵和观测概率分布BB来确定。模型用表示,λ=(A,B,π)λ=(A,B,π)可以用来预测给定的观测序列对应的状态序列。
状态
用itit表示tt时刻的状态,是第一天的状态(也就是初始状态)。
用qq表示所有可能的状态,集合表示为,NN即有种状态。
P(it=qj)P(it=qj)表示第tt天(时刻)的状态是qjqj的概率,jj取
比如花丸的所有可能状态包括{烦躁,消极,平静,积极}比如花丸的所有可能状态包括{烦躁,消极,平静,积极}
观测
用otot表示tt时刻的观测(行为活动)。
用表示所有可能的观测(行为活动),集合表示为V={v1,v2,...,vM}V={v1,v2,...,vM},MM即有种观测。
P(ot=vs|it=qj)P(ot=vs|it=qj)表示在第tt天(时刻)状态是qjqj的条件下,第tt天(时刻)观测到的活动是vsvs的概率,ss取
比如花丸的所有可能活动包括{玩游戏,写博客,看书,看电影,无所事事}比如花丸的所有可能活动包括{玩游戏,写博客,看书,看电影,无所事事}
状态转移概率矩阵AA:
,即一个N×NN×N的矩阵,NN即有种状态。
其中ajk=P(it+1=qk|it=qj)ajk=P(it+1=qk|it=qj),即在第tt天(时刻)的状态是qjqj的条件下在第t+1t+1天(t+1t+1时刻)转移到状态qkqk的概率。
如下图的状态转移
我们可以发现每一行之和为1,这是从某一状态转移为其他所有可能状态的概率之和。
观测概率矩阵BB:
,即一个N×MN×M的矩阵,NN即有种状态,MM即有种观测。
其中bj(s)=P(ot=vs|it=qj)bj(s)=P(ot=vs|it=qj),即在第tt天(时刻)处于状态qjqj的条件下生成观测vsvs的概率。
如下图状态生成观测,每种状态生成所有观测的概率之和为1(用同色的线表示在同一行)
初始状态概率向量ππ:
,πi=P(i1=qj)πi=P(i1=qj),i1i1表示初始状态。
初始状态分布:π1=P(i1=烦躁)=0.6,π2=P(i1=消极)=0.25初始状态分布:π1=P(i1=烦躁)=0.6,π2=P(i1=消极)=0.25
π3=P(i1=平静)=0.1,π4=P(i1=积极)=0.05π3=P(i1=平静)=0.1,π4=P(i1=积极)=0.05
因此π=(0.6,0.25,0.1,0.05)因此π=(0.6,0.25,0.1,0.05)
有了隐马尔可夫模型λ=(π,A,B)我们也可以生成一个观测序列。有了隐马尔可夫模型λ=(π,A,B)我们也可以生成一个观测序列。
输入是隐马尔可夫模型λ=(π,A,B)和观测序列的长度T,输出是输入是隐马尔可夫模型λ=(π,A,B)和观测序列的长度T,输出是
观测序列O=(o1,o2,...,oT)观测序列O=(o1,o2,...,oT)
三个基本问题
①概率计算问题
给定模型λ=(π,A,B)λ=(π,A,B)和观测序列O=(o1,o2,...,oT)O=(o1,o2,...,oT),计算在模型λλ条件下观测序列出现的概率P(O|λ)P(O|λ)。
前向−反向算法前向−反向算法
②学习问题(训练问题)
已知观测序列O=(o1,o2,...,oT)O=(o1,o2,...,oT),去估计模型λ=(π,A,B)λ=(π,A,B)的参数,使得在该模型条件下,观测序列概率P(O|λ)P(O|λ)最大。
鲍姆−韦尔奇算法(EM过程)鲍姆−韦尔奇算法(EM过程)
③预测问题(解码问题)
已知模型λ=(π,A,B)λ=(π,A,B)和观测序列O=(o1,o2,...,oT)O=(o1,o2,...,oT),求给定观测序列条件下概率P(I|O)P(I|O)最大的状态序列I=(i1,i2,...,iT)I=(i1,i2,...,iT)。
维特比算法维特比算法