【机器学习】隐马尔可夫(一)----模型定义

隐马尔可夫模型解析
本文探讨了如何利用隐马尔可夫模型(HMM)分析个人心理状态变化,并介绍了HMM的基本假设、模型参数、状态转移概率矩阵等概念。同时,文章详细解释了HMM的三个基本问题:概率计算问题、学习问题和预测问题。

咸鱼了一个多月,黑色五月过得异常难受,找实习好烦,心态一直调整不好。
然后。。突然就想起了隐马尔可夫,我每天的心理状态是别人无法观测到的,每一天的状态组在一起就是一个状态序列,而我的行为活动是其他人可见的,每一天的行为组合在一起就是观测序列,当知道我月初的各种状态的概率分布,也知道了我这个人每种状态转移的概率分布和在某种状态下做出某种行为活动的概率分布时,是不是就能通过我这一个月每天的行为活动组成的序列来判断我每天的状态呢。emmm,隐马尔可夫带你成为一个能看懂人心的“神棍”。

基本假设

首先为了计算简单,要提出两点假设:
第一、齐次马尔可夫性假设
假设隐藏的马尔可夫链在任意时刻tt的状态只依赖于其前一时刻t1的状态,与其他时刻的状态及观测无关,也与时刻tt无关。
P(it|it1,ot1,...,i1,o1)=P(it|it1) t=1,2,...,Tt=1,2,...,T
第二、观测独立性假设
假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关。
P(ot|iT,oT,iT1,oT1,...,it,ot,...,i1,o1)=P(ot|it)P(ot|iT,oT,iT−1,oT−1,...,it,ot,...,i1,o1)=P(ot|it)

这两个假设一个是状态转移的关系,另一个是状态生成观测的关系。

模型参数(A,B,π)

隐马尔可夫模型是一个关于时序的概率模型,它由初始状态概率向量ππ,状态转移概率矩阵A和观测概率分布BB来确定。模型用λ表示,λ=(A,B,π)λ=(A,B,π)可以用来预测给定的观测序列对应的状态序列。

状态
itit表示tt时刻的状态,i1是第一天的状态(也就是初始状态)。
qq表示所有可能的状态,集合表示为Q={q1,q2,...,qN}NN即有N种状态。
P(it=qj)P(it=qj)表示第tt天(t时刻)的状态是qjqj的概率,jj1,2,...,N
{}比如花丸的所有可能状态包括{烦躁,消极,平静,积极}
观测
otot表示tt时刻的观测(行为活动)。
v表示所有可能的观测(行为活动),集合表示为V={v1,v2,...,vM}V={v1,v2,...,vM}MM即有M种观测。
P(ot=vs|it=qj)P(ot=vs|it=qj)表示在第tt天(t时刻)状态是qjqj的条件下,第tt天(t时刻)观测到的活动是vsvs的概率,ss1,2,...,M
{}比如花丸的所有可能活动包括{玩游戏,写博客,看书,看电影,无所事事}

状态转移概率矩阵AA

A=[ajk]N×N,即一个N×NN×N的矩阵,NN即有N种状态。
其中ajk=P(it+1=qk|it=qj)ajk=P(it+1=qk|it=qj),即在第tt天(t时刻)的状态是qjqj的条件下在第t+1t+1天(t+1t+1时刻)转移到状态qkqk的概率。
如下图的状态转移
这里写图片描述

A=a11a21a31a41a12a22a32a42a13a23a33a43a14a24a34a44=00.6000.900.500.10.400.7000.50.3A=[a11a12a13a14a21a22a23a24a31a32a33a34a41a42a43a44]=[00.90.100.600.4000.500.5000.70.3]

我们可以发现每一行之和为1,这是从某一状态转移为其他所有可能状态的概率之和。
观测概率矩阵BB

B=[bj(s)]N×M,即一个N×MN×M的矩阵,NN即有N种状态,MM即有M种观测。
其中bj(s)=P(ot=vs|it=qj)bj(s)=P(ot=vs|it=qj),即在第tt天(t时刻)处于状态qjqj的条件下生成观测vsvs的概率。
如下图状态生成观测,每种状态生成所有观测的概率之和为1(用同色的线表示在同一行)
这里写图片描述

A=b1(1)b2(1)b3(1)b4(1)b1(2)b2(2)b3(2)b4(2)b1(3)b2(3)b3(3)b4(3)b1(4)b2(4)b3(4)b4(4)b1(5)b2(5)b3(5)b4(5)=0.30.60.30.050.40.150.10.020.20.20.10.080.060.020.250.40.040.030.250.45A=[b1(1)b1(2)b1(3)b1(4)b1(5)b2(1)b2(2)b2(3)b2(4)b2(5)b3(1)b3(2)b3(3)b3(4)b3(5)b4(1)b4(2)b4(3)b4(4)b4(5)]=[0.30.40.20.060.040.60.150.20.020.030.30.10.10.250.250.050.020.080.40.45]
初始状态概率向量ππ

π=(π1,π2,...,πi)π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),计算在模型λλ条件下观测序列O出现的概率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)
维特比算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值