介绍
隐马尔可夫模型由:初始状态概率向量
π
\pi
π、转态转移概率矩阵A和观测概率矩阵B决定。隐马尔可夫模型表示如下:
λ
=
(
A
,
B
,
π
)
\lambda = (A,B,\pi)
λ=(A,B,π)
其中,
A
,
B
,
π
A,B,\pi
A,B,π称为隐马尔可夫模型的三要素,隐马尔可夫模型,如下图所示:
Q是所有可能的状态集合,V是所有可能观测的集合。举例如下:
假设有3个盒子,每个盒子里面的球一共有10个,分别有(红,白)球:(5,5)、(4,6)和(7,3)。即球模型
λ
=
(
A
,
B
,
π
)
\lambda=(A,B,\pi)
λ=(A,B,π),状态集合Q={1,2,3},观测集合V={红,白}。抽球产生观测序列的规则:分别对3个盒子以(0.2,0.4,0.4)的概率随机选取一个盒子,然后从该盒子中随机抽取一个球,记录颜色,然后放回。
(1)转态转移概率矩阵A
A
=
[
0.5
0.2
0.3
0.3
0.5
0.2
0.2
0.3
0.5
]
A=\begin{bmatrix} 0.5 & 0.2 &0.3 \\ 0.3& 0.5 & 0.2\\ 0.2&0.3 & 0.5 \end{bmatrix}
A=⎣⎡0.50.30.20.20.50.30.30.20.5⎦⎤
即盒子1状态下,进入下一个盒子状态:盒子1,2,3的概率分别是0.5, 0.2, 0.3
(2)观测概率矩阵B
B
=
[
0.5
0.5
0.4
0.6
0.7
0.3
]
B=\begin{bmatrix} 0.5 & 0.5 \\ 0.4& 0.6 \\ 0.7& 0.3 \\ \end{bmatrix}
B=⎣⎡0.50.40.70.50.60.3⎦⎤
即在盒子1状态下,出现红,白球概率分别是0.5, 0.5。
(3)初始状态概率向量
π
\pi
π
π
=
(
0.2
,
0.4
,
0.4
)
\pi=(0.2,0.4,0.4)
π=(0.2,0.4,0.4)
即初始时分别对3个盒子以(0.2,0.4,0.4)的概率随机选取一个盒子
HMM模型的3个基本问题
(1)概率计算问题:给定模型
λ
=
(
A
,
B
,
π
)
\lambda=(A,B,\pi)
λ=(A,B,π)和观测序列
O
=
(
o
1
,
o
2
,
.
.
.
,
o
T
)
O=(o_1,o_2,...,o_T)
O=(o1,o2,...,oT),计算在该模型下观测序列O出现的概率
P
=
(
O
∣
λ
)
P=(O|\lambda)
P=(O∣λ)
计算概率的方法:直接计算、前向算法、后向算法
(2)学习问题:已知观测序列
O
=
(
o
1
,
o
2
,
.
.
.
,
o
T
)
O=(o_1,o_2,...,o_T)
O=(o1,o2,...,oT),估计模型
λ
=
(
A
,
B
,
π
)
\lambda=(A,B,\pi)
λ=(A,B,π)参数,使得观测序列
P
=
(
O
∣
λ
)
P=(O|\lambda)
P=(O∣λ)概率最大。即极大似然估计方法,具体的算法如下
方法:Baum-Welch算法(即EM算法)
(3)预测问题:也称为解码问题,即给定观测序列
O
=
(
o
1
,
o
2
,
.
.
.
,
o
T
)
O=(o_1,o_2,...,o_T)
O=(o1,o2,...,oT),求最有可能的对应状态序列。
方法:维特比算法(动态规划)
参考
1.统计学习方法
2.https://www.cnblogs.com/skyme/p/4651331.html
3.EM算法