码迷,mamicode.com
首页 > 编程语言 > 详细

七月算法-12月机器学习在线班--第十七次课笔记-隐马尔科夫模型HMM

时间:2016-05-13 20:36:54      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:

七月算法-12月机器学习--第十七次课笔记-隐马尔科夫模型HMM

七月算法(julyedu.com)12月机器学习在线班学习笔记http://www.julyedu.com

 

隐马尔科夫模型

三个部分:概率计算,参数估计,模型预测

1,HMM定义

HMM由初始概率分布π、状态转移概率分布A以及观测概率分布B确定。技术分享

技术分享

Eg:以中文分词为例子

隐状态为技术分享="2",是不是终止字,是/否?(Y/N)即是不是最后一个字。

A矩阵:第一个:当前是终止字,下一个也是终止字的概率

B是当前的隐状态是终止词,观察到的终止字是什么,char

技术分享

参数总结,隐状态是离散的,B是N*M矩阵,A是N*N的矩阵

 

1.2 HMM的两个基本性质

齐次假设:技术分享

观测独立性假设:技术分享

如果实践中,符合这两个性质,则可以考虑是否用HMM模型

Eg: 选一个盒子,摸一个放回

技术分享

该示例的各个参数

技术分享

1.3 HMM的3个基本问题

1,概率计算问题:前向-后向算法——动态规划

2, 学习问题:Baum-Welch算法(状态未知)——EM

3, 预测问题:Viterbi算法——动态规划

1.3.1 概率计算问题

三种方法,直接算法,前向算法,后向算法

1.3.2 直接算法

技术分享

 

 

对所有可能的状态序列I求和,得到观测序列O的概率技术分享

技术分享

直接算法,时间复杂度太高,只停留在理论阶段

 

1.3.3 前向算法

前向概率-后向概率的定义

技术分享

  • 前向算法

    1,初值: 技术分享

2,递推:对于t=1,2…T-1

技术分享

3,最终

技术分享

前向算法的时间复杂度是o(T*技术分享)

1.3.4 后向算法

技术分享

1.3.5 前后向关系

在某一个时刻,

技术分享

1.3.6 单个状态的概率技术分享

求给定模型λ和观测O,在时刻t处于状态qi的概率

技术分享

最有可能发生的隐状态,取一个最大值技术分享

γ的意义:

技术分享

不是Viterbi算法

1.3.7 两个状态的联合概率

求给定模型λ和观测O,在时刻t处于状态qi并且时刻t+1处于状态qj的概率。

技术分享

1.4 HMM学习问题

1, 若训练数据包括观测序列和状态序列,则HMM的是监督学习;

2,若训练数据只有观测序列,则HMM的学习需要使用EM算法,是非监督学习。

1.4.1 Baum-Welch算法

本质上是EM算法

  1. 假设 技术分享是HMM参数的当前估计值,技术分享为待求的参数。

技术分享

  1. EM过程

    A, EM的STEP1先求联合概率

    技术分享

    以上分成了3个部分,

    B, EM的STEP2-期望极大值部分

    技术分享

     

1.5 HMM预测算法

两种算法:近似算法, Viterbi算法

1.5.1 Viterbi算法

Viterbi算法实际是用动态规划解HMM预测问题,用DP求概率最大的路径(最优路径),这是一条路径对应一个状态序列。

定义变量技术分享:在时刻t状态为i的所有路径中,概率的最大值。

技术分享

总结:实践中分词的隐状态可以有多个,eg:开头,中间,最后一个等等

七月算法-12月机器学习在线班--第十七次课笔记-隐马尔科夫模型HMM

标签:

原文地址:http://www.cnblogs.com/sweet-dew/p/5490912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!