做者:樱花猪算法
摘要:网络
本文为七月算法(julyedu.com)12月机器学习第十七次课在线笔记。隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔科夫过程。其难点是从可观察的参数中肯定该过程的隐含参数,而后利用这些参数来做进一步的分析。在早些年HMM模型被很是普遍的应用,而如今随着机器学习的发展HMM模型的应用场景愈来愈小然而在图像识别等领域HMM依然起着重要的做用。机器学习
引言:函数
隐马尔科夫模型是马尔科夫链的一种,它的状态不能直接观察到,但能经过观测向量序列观察到,每一个观测向量都是经过某些几率密度分布表现为各类状态,每个观测向量是由一个具备相应几率密度分布的状态序列产生。因此,隐马尔科夫模型是一个双重随机过程----具备必定状态数的隐马尔科夫链和显示随机函数集。自20世纪80年代以来,HMM被应用于语音识别,取得重大成功。到了90年代,HMM还被引入计算机文字识别和移动通讯核心技术“多用户的检测”。HMM在生物信息科学、故障诊断等领域也开始获得应用。学习
本次课程以中文分子算法为实践背景基础来说述隐马尔科夫模型。本次课程主要分享了隐马尔科夫模型的几率计算、参数估计和模拟预测等方法,结合课程上提到的实力,咱们可以感觉大HMM可以经久不衰的强大力量。spa
马尔科夫模型在推导过程当中用到了以前提到的一些经典算法须要融汇贯通。3d
预备知识:orm
几率论和数理统计、矩阵论、贝叶斯网络、EM算法blog
1、隐马尔科夫模型:ci
1、定义
隐马尔科夫模型(HMM,Hidden Markov Model)可用标注问题,在语音识别、NLP、生物信息、模式识别等领域被实践证实是有效的算法。
HMM是关于时序的几率模型,描述由一个隐藏的马尔科夫链生成不可观测的状态随机序列,再由各个状态生成观测随机序列的过程。
隐马尔科夫模型随机生成的状态随机序列,称为状态序列;每一个状态生成一个观测,由此产生的观测随机序列,称为观测序列。
Z是未知的,X是已知的,咱们经过对X来作Z的推论,就是隐马尔科夫模型。
二、HMM的肯定
HMM由初始几率分布π、状态转移几率分布A以及观测几率分布B肯定。
描述整个隐码模型。
三、HMM的参数:
Q是全部可能的状态的集合,N是可能的状态数;
V是全部可能的观测的集合,M是可能的观测数。
2、HMM的几率计算问题:
一、直接计算:
按照几率公式,列举全部可能的长度为T的状态序列,求各个状态序列I与观测序列
的联合几率
,而后对全部可能的状态序列求和,从而获得
。
二、前向算法
前向几率定义:给定λ,定义到时刻t部分观测序列为且状态为qi的几率称为前向几率,记作:
前向算法计算方案:
初值:
递推:对于t=1,2,...,T-1
有:
最终:
三、后向算法
定义:给定λ,定义到时刻t状态为qi的前提下,从t+1到T的部分观测序列为的几率为后向几率,记作:
计算方法:
初值:
递推:对于t=T-1,T-2,...,1
最终:
2、预测算法
一、预测的近似算法
A. 在每一个时刻t选择在该时刻最有可能出现的状态it*,从而获得一个状态序列I*={i1*,i2*…iT*},将它做为预测的结果。
B. 给定模型和观测序列,时刻t处于状态qi的几率为:
C. 选择几率最大的i做为最有可能的状态(注:会出现此状态在实际中可能不会发生的状况)
二、Viterbi算法
Viterbi算法实际是用动态规划解HMM预测问题,用DP求几率最大的路径(最优路径),这是一条路径对应一个状态序列。
定义变量:在时刻t状态为i的全部路径中,几率的最大值。
具体过程:
定义:
递推: