机器学习——HMM(隐马尔可夫)
发布时间
阅读量:
阅读量
1、请介绍一下HMM算法
HMM描述的是一个含有隐状态的马尔可夫链所生成的不可观测的状态随机序列,再由各个状态生成观测序列的过程。隐藏的马尔科夫链随机生成的状态的序列称为状态序列;每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列
常常应用在:分词,词性标注,命名实体识别
1)初始状态概率、状态转移矩阵、发射矩阵的确定
初始概率分布
z1可能是状态1,状态2 ... 状态n,于是z1就有个N点分布:
| Z1 | 状态1 | 状态2 | ... | 状态n |
|---|---|---|---|---|
| 概率 | P1 | P2 | ... | Pn |
即:Z1对应个n维的向量。
上面这个n维的向量就是初始概率分布,记做π。
状态转移矩阵
但Z2就不能简单的“同上”完事了,因为Z2和Z1不独立,所以Z2是状态1的概率有:Z1是状态1时Z2是状态1,Z1是状态2时Z2是状态1,..., Z1是状态n时Z2是状态1,于是就是下面的表
| Z2 Z1 | 状态1 | 状态2 | ... | 状态n |
|---|---|---|---|---|
| 状态1 | P11 | P12 | ... | P1n |
| 状态2 | P21 | P22 | ... | P2n |
| ... | ... | ... | ... | ... |
| 状态n | Pn1 | Pn2 | ... | Pnn |
即:Z1->Z2对应个n*n的矩阵。
同理:Zi -> Zi+1对应个n*n的矩阵。
上面这些nn的矩阵被称为状态转移矩阵,用Ann表示。
当然了,真要说的话,Zi -> Zi+1的状态转移矩阵一定都不一样,但在实际应用中一般将这些状态转移矩阵定为同一个,即:只有一个状态转移矩阵。
图1的第一行就搞定了,下面是第二行。
观测矩阵
如果对于zi有:状态1, 状态2, ..., 状态n,那zi的每一个状态都会从下面的m个观测中产生一个:观测1, 观测2, ..., 观测m,所以有如下矩阵:
| X Z | 观测1 | 观测2 | ... | 观测m |
|---|---|---|---|---|
| 状态1 | P11 | P12 | ... | P1m |
| 状态2 | P21 | P22 | ... | P2m |
| ... | ... | ... | ... | ... |
| 状态n | Pn1 | Pn2 | ... | Pnm |
这可以用一个nm的矩阵表示,也就是观测矩阵,记做Bnm。
由于HMM用上面的π,A,B就可以描述了,于是我们就可以说:HMM由初始概率分布π、状态转移概率分布A以及观测概率分布B确定,为了方便表达,把A, B, π 用 λ 表示,即:
λ = (A, B, π)
2)HMM的详细介绍
两个假设:
- 齐次马尔科夫性假设:即假设隐藏的马尔科夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻t无关;
- 观测独立性假设:即假设任意时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测即状态无关。
****


前向算法(求解概率问题)就是 计算出来i5时的概率相加就得到最终的概率

维特比算法(求解最优隐状态)(每个时刻选择概率最大的状态)

全部评论 (0)
还没有任何评论哟~
