工作学习中的一点体会——隐马尔科夫模型 HMM(一)
一. 提纲
1) 假设
2) 模型
3) 五个参数
4) 解决三个问题
5) 三个方法
6) Vertibe算法
7) 改进
二.两个假设
1、 马尔科夫性假设: 一个特定状态的概率仅依赖于前一状态
2、 齐次:观测状态的概率只依赖于产生这个观测状态的隐含状态
三.模型
四.五个参数
1 初始矩阵
2、A 观察序列
3、B 隐含序列
4、M 发射矩阵:隐含状态到观测状态的概率矩阵
5、N 转移矩阵:隐含状态到隐含状态的转移概率矩阵
五.解决三个问题
1、评估问题:给定一个观察序列和五个参数,求观测序列的概率
2、解码问题:给定一个观察序列和参数,求最大概率的隐含序列
3、学习问题:给定一个观察序列,如何调整参数,使得概率最大?
六.三个方法
七.Vertibe算法
1.对于我们来说,一般我们需要的是求出最大隐含状态,所以viterbi算法是我们关心的(比如词性标注,求一句话的词性,这时候词性就转换为隐含状态,当我们求出最大的隐含状态序列,也就得到了最大的词性序列)
2.viterbi 实际上是个动态规划的过程
见(二)分析
八.改进
1、 针对假设改进
1) 当前状态只和前一状态相关,根据我们生活的经验,当前的状态不仅和前一状态相关,可能还和前几个状态或者后面的状态相关,所以我们可以做的改进之一就是把状态的相关改为和前几个状态相关
2) 只依赖于当前的隐含状态相关,同样根据我们的经验,我们也许还和一些其他因素相关,比如位置(比如我们把隐含状态定义为词的开头,中间,结尾,那么句子的开始也一定是词的开头)
2、 层叠的隐马模型
中科院的几篇论文,就是先用隐马模型训练专有名词后,又套了一层或几层的隐马模型。后来又应用在了层叠的条件随机场,感觉都是一个思路
3、 不同的模型,最大熵隐马,条件随机场