Jun 4, 2009

动态模型(HMM, CRF)用于分类

这几天突然理解不了 HMM 模型为什么能用于分类,序列可长可短,有一长一短两输出序列 O1, O2,都是由某一个 HMM 模型生成的,则短序列的概率 p(O1) 要大,长序列的概率p(O2)要小,数量级差很多。假设用于动作分类,跳跃的动作长度短,走路的动作长度长,那岂不是肯定是跳跃的概率大。

一团浆糊。这里有几个概念没理解清楚。

首先是序列源的概率,HMM 模型可以求得似然概率 p(O|M), M 代表模型,这个概率的隐含条件是序列长度固定
\sum_O p(O|M) = 1 公式中,O 的长度是固定的。
实际上 p(O|M)=p(O^n|M)
参见 无忘所能-序列源的概率 一节,真正的可变序列的概率 p(O|M) 是不可以求的。

HMM 用于分类的步骤
1. 对每一类 c 训练一个 HMM,则 p(O|M_c) 相当于是 class conditional density
2. 求 p(c)
3. 分类
给定 O, 严格按照贝叶斯分类的方法
c = arg max_c p(c|O) = arg max_c p(O|M_c)p(c)
如果 p(c) 为 uniform 的话,就是最大似然,看哪个模型的似然函数最大就是哪一个?

这个要注意,给定 O,则对于所有类别的模型 p(x|c),x 的定义域就是长度固定的序列,而不是所有长度的序列。
即对于分类问题,x 的定义域对于所有模型是一致的

另外,给定跳跃和走路序列,分别用跳跃模型和走路模型,求似然概率,p(O1|M1), p(O2|M2), 不出意外的话,
p(O1|M1) >> p(O2|M2)
能不能说跳跃比走路更加可能,不行。x 的定义域是不一致的,不能比较。

同样的,给定跳跃和走路序列,用于走路模型,求似然概率,p(O1|M2), p(O2|M2), 不出意外的话,
p(O1|M2) > p(O2|M2)
能不能说跳跃比走路更加可能,不行。x 的定义域是不一致的,不能比较。

0 comments: