问答总结
- 学习问题分为哪两种,它们的条件是怎样的?
- 在有监督的学习问题中,如何估计参数?
- 在无监督的学习问题中,我们采用EM算法求解模型。EM算法的 Q Q Q函数是什么?
- 解决无监督学习问题的算法是什么?
一、目标
前文中说过,隐马尔可夫模型的学习问题是指:
已知观测序列
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∣λ)最大。即使用极大似然估计方法估计参数。即:
λ
∗
=
a
r
g
max
λ
P
(
O
∣
λ
)
\lambda^*=arg \max_{\lambda}P(O|\lambda)
λ∗=argλmaxP(O∣λ)
具体的,我们还可以细化为
- (1)训练数据包括观测序列和对应的状态序列。——监督学习
- (2)训练数据仅仅包括观测序列。——无监督学习。
二、监督学习方法
输入训练样本为
S
=
{
(
O
1
,
I
1
)
,
(
O
2
,
I
2
)
,
.
.
.
,
(
O
s
,
I
s
)
}
S = \{(O_1, I_1),(O_2,I_2), ..., (O_s, I_s)\}
S={(O1,I1),(O2,I2),...,(Os,Is)},我们采取极大似然估计法估计模型
λ
=
(
A
,
B
,
π
)
\lambda = (A, B, \pi)
λ=(A,B,π).
1、转移概率
a
i
j
a_{ij}
aij的估计:
- 令 A i j A_{ij} Aij为样本中状态 i i i转到状态 j j j的频数。则 a i j ^ = A i j ∑ j = 1 N A i j \hat{a_{ij}} = \frac{A_{ij}}{\sum_{j=1}^NA_{ij}} aij^=∑j=1NAijAij
2、观测概率 b j ( k ) b_j(k) bj(k)的估计:
- 令样本中状态
j
j
j且观测为
k
k
k的频数是
B
j
k
B_{jk}
Bjk, 则:
b j ( k ) ^ = B j k ∑ i = 1 M B j k \hat{b_j(k)} = \frac{B_{jk}}{\sum_{i=1}^MB_{jk}} bj(k)^=∑i=1MBjkBjk
3、初始状态概率 π i \pi_i πi的估计 π i ^ \hat{\pi_i} πi^为样本中初始状态为 q i q_i qi的频率。
三、无监督学习方法
1、学习方法—EM
当输入训练样本
S
S
S只包含观测序列
S
=
{
O
1
,
O
2
,
.
.
.
,
O
S
}
S = \{O_1, O_2, ..., O_S\}
S={O1,O2,...,OS}, 我们将状态序列看作不可观测的隐数据
I
I
I, 那么HMM事实上是含有隐变量的概率模型:
λ
∗
=
a
r
g
max
λ
P
(
O
∣
λ
)
=
a
r
g
max
λ
∑
I
P
(
O
∣
I
,
λ
)
P
(
I
∣
λ
)
\lambda^* = arg \max_{\lambda}P(O|\lambda) = arg \max_{\lambda}\sum_{I}P(O|I,\lambda)P(I|\lambda)
λ∗=argλmaxP(O∣λ)=argλmaxI∑P(O∣I,λ)P(I∣λ)
对于含隐变量的模型,它的参数学习可以使用 E M EM EM方法。
EM方法简单的脉络如下
- 起因: 最大似然的缺陷.
- 两个(可以是多个)分布 (一般只是参数不同).两类数据,但是混合在一起,因此无法直接使用使用最大似然,求得两个分布的参数.(参考文献1中四川人东北人例子)
- 因此考虑映入隐变量(一般代表着数据的类别).
- 矛盾: 先鸡还是先蛋问题.
- 隐变量(属于哪一类的概率)需要分布参数来确定.
- 分布参数需要隐变量的值加上数据来确定.
- 不知该从哪里下手.
- 启发式: 一个一个来
- 初始化两个分布的参数.
- 根据两个分布的参数算出隐变量的概率.
- 按算出隐变量的概率更新分布的参数.
- 如果直接多个分布最大似然来求,涉及到 l o g log log相加, 数学上太麻烦.
- 考虑jenson不等式. 搞出一个最大似然的下界.
- 优化下界, 即可优化最大似然.
- 省去下界的无关项,推出优化目标,取名为Q函数
- 就这样交替更新.
- 最后收敛到一个较好值.
- 注意:
- EM算法并不保证收敛到全局最优,因此和初值的选取有关系.
2、EM方法步骤
(1)、确定完全数据的对数似然函数。
- 观测数据: O = ( o 1 , o 2 , . . . . , o T ) O = (o_1, o_2, ...., o_T) O=(o1,o2,....,oT)
- 隐数据: I = ( i 1 , i 2 , . . . , i T ) I=(i_1, i_2, ..., i_T) I=(i1,i2,...,iT)
- 完全数据: ( O , I ) = ( o 1 , . . . , o T , i 1 , . . . i T ) (O, I) = (o_1, ..., o_T,i_1, ...i_T) (O,I)=(o1,...,oT,i1,...iT)
- 完全数据对数似然函数: l o g P ( O , I ∣ λ ) logP(O, I| \lambda) logP(O,I∣λ)
(2)、EM算法E步: 求Q函数
Q
(
λ
,
λ
ˉ
)
Q(\lambda, \bar{\lambda})
Q(λ,λˉ)
Q
(
λ
,
λ
ˉ
)
=
∑
I
l
o
g
P
(
O
,
I
∣
λ
)
P
(
I
∣
O
,
λ
ˉ
)
=
∑
I
l
o
g
P
(
O
,
I
∣
λ
)
P
(
I
,
O
∣
λ
ˉ
)
P
(
O
∣
λ
ˉ
)
\begin{aligned} Q(\lambda, \bar{\lambda}) &= \sum_{I}logP(O, I|\lambda)P(I|O,\bar{\lambda}) \\ &= \sum_{I}logP(O,I|\lambda)\frac{P(I, O|\bar{\lambda})}{P(O|\bar{\lambda})} \end{aligned}
Q(λ,λˉ)=I∑logP(O,I∣λ)P(I∣O,λˉ)=I∑logP(O,I∣λ)P(O∣λˉ)P(I,O∣λˉ)
由于
Q
Q
Q函数是关于
λ
\lambda
λ的参数,而
P
(
O
∣
λ
ˉ
)
P(O|\bar{\lambda})
P(O∣λˉ)对
λ
\lambda
λ是常数。因此极大化
Q
Q
Q函数时我们可以省去它,简化
Q
Q
Q函数为:
Q
(
λ
,
λ
ˉ
)
=
∑
I
l
o
g
P
(
O
,
I
∣
λ
)
P
(
O
,
I
∣
λ
ˉ
)
Q(\lambda, \bar{\lambda}) = \sum_{I}logP(O, I|\lambda)P(O, I|\bar{\lambda})
Q(λ,λˉ)=I∑logP(O,I∣λ)P(O,I∣λˉ)
(3)、EM算法M步:极大化 Q Q Q函数 Q ( λ , λ ˉ ) Q(\lambda, \bar{\lambda}) Q(λ,λˉ)求得更新后的模型参数 A , B , π A,B,\pi A,B,π
推导过程省略,可参考李航统计学习方法第二版P205。