自然语言处理
Part 3 hmm(隐马尔可夫模型)
前言
作为因为科研需要刚开始接触机器学习、深度学习的菜鸟,看了关于某些算法大神的解释仍是似懂非懂,特在此记录学习过程,争取通俗易懂。
隐马尔科夫模型
为了便于理解,全文以实例贯穿。
假设我们有3个盒子,每个盒子里都有红色和白色两种球,这三个盒子里球的数量分别是:
盒子 | 1 | 2 | 3 |
---|---|---|---|
红球数 | 5 | 4 | 7 |
白球数 | 5 | 6 | 3 |
按照下面的方法从盒子里抽球,开始的时候,从第一个盒子抽球的概率是0.2,从第二个盒子抽球的概率是0.4,从第三个盒子抽球的概率是0.4。以这个概率抽一次球后,将球放回。然后从当前盒子转移到下一个盒子进行抽球。规则是:如果当前抽球的盒子是第一个盒子,则以0.5的概率仍然留在第一个盒子继续抽球,以0.2的概率去第二个盒子抽球,以0.3的概率去第三个盒子抽球。如果当前抽球的盒子是第二个盒子,则以0.5的概率仍然留在第二个盒子继续抽球,以0.3的概率去第一个盒子抽球,以0.2的概率去第三个盒子抽球。如果当前抽球的盒子是第三个盒子,则以0.5的概率仍然留在第三个盒子继续抽球,以0.2的概率去第一个盒子抽球,以0.3的概率去第二个盒子抽球。
一、基本定义
- Q是所有可能的隐藏状态的集合:Q={盒子1,盒子2,盒子3}
- V是所有可能的观测状态的集合:V={红,白}
- N是可能的隐藏状态数:N=3
- M是所有的可能的观察状态数:M=2
- I 对应的状态序列
- O是对应的观察序列
- T是序列长度
- Π为初始状态分布:Π= ( 0.2 , 0.4 , 0.4 ) T (0.2,0.4,0.4)^\mathrm{T} (0.2,0.4,0.4)T
二、两个重要假设
- 齐次马尔科夫链假设。即任意时刻的隐藏状态只依赖于它前一个隐藏状态,上述示例可表示为(状态转移概率分布矩阵a):
盒子1 | 盒子2 | 盒子3 | |
---|---|---|---|
盒子1 | 0.5 | 0.2 | 0.3 |
盒子2 | 0.3 | 0.5 | 0.2 |
盒子3 | 0.2 | 0.3 | 0.5 |
a = [ 0.5 0.2 0.3 0.3 0.5 0.2 0.2 0.3 0.5 ] (1) a=\left[ \begin{matrix} 0.5 & 0.2 & 0.3 \\ 0.3 & 0.5 & 0.2 \\ 0.2 & 0.3 & 0.5 \end{matrix} \right] \tag{1} a=⎣⎡0.5