01 隐马尔可夫模型 - 马尔可夫链、HMM参数和性质
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了01 隐马尔可夫模型 - 马尔可夫链、HMM参数和性质相关的知识,希望对你有一定的参考价值。
参考技术A先直白得讲性质: 当前的状态只和上一时刻有关,在上一时刻之前的任何状态都和我无关。我们称其 符合 马尔可夫性质。
下面是理论化的阐述:
设X(t), t ∈ T是一个 随机过程 ,E为其状态空间,若对于任意的t1<t2< ...<tn<t,任意的x1,x2,...,xn,x∈E,随机变量X(t)在已知变量X(t1)=x1,...,X(tn)=xn之下的条件分布函数只与X(tn)=xn有关,而与X(t1)=x1,...,X(tn-1)=xn-1无关,即条件分布函数 满足 下列等式,此性质称为 马尔可夫性 ;如果随机过程 满足 马尔可夫性,则该过程称为马尔可夫过程。
马尔可夫链 是指具有马尔可夫性质的随机过程。在过程中,在给定当前信息的情况下,过去的信息状态对于预测将来 状态 是无关的。
例子: 在今天这个时间点而言,过去的股价走势对我预测未来的股价是毫无帮助的。
PS:上面马尔可夫链中提到的 状态 ,在本例指的是 股价 。
在马尔可夫链的每一步,系统根据 概率分布 ,可以从一个状态变成另外一个状态,也可以保持当前状态不变。状态的改变叫做 转移 ,状态改变的相关概率叫做 转移概率 。
例子: 当前时间状态下的股价,可以转变成下一时刻的股价,股价的转变即 状态的改变 。这个状态现在可以上升(股价提高),状态也可以下降。我可以根据当前股票的价格去决定下一刻股价上升、下降、不变的概率。这种股价变动的概率称为 状态转移概率 。
马尔可夫链中的 三元素是 :状态空间S、转移概率矩阵P、初始概率分布π。
1、状态空间S - 例: S是一个集合,包含所有的状态 S 股价 =高,中,低 ;
2、初始概率分布π - 例:
股价刚发行的时候有一个初始价格,我们认为初始价格为高的概率为50%,初始价格为中的概率是30%,初始价格为低的概率是20%。我们记股票价格的初始概率分布为:π=(0.5,0.3,0.2);对应状态:(高、中、低); 初始概率分布是一个向量 ,如果有n个状态,π是n维向量。
3、转移概率矩阵P - 例:
现在有个股价为中,下一个时刻状态转变的可能性有三种,中→高、中→低、中→中;将三种转变的概率。此外当前时刻也有股票的价格属于低,对应的转变可能包括低→高、低→低、低→中;即每种状态都有可能转变成其他的状态,若一共有n个状态,形成的 转移概率矩阵 应该是n×n阶矩阵。这里需要注意的是,股价从高→低,和低→高的概率是不同的。
设将天气状态分为晴、阴、雨三种状态,假定某天的天气状态只和上一天的天气状态有关,状态使用1(晴)、2(阴)、3(雨)表示,转移概率矩阵P如下:
第n+1天天气状态为j的概率为:
因此,矩阵P即为条件概率转移矩阵。矩阵P的第i行元素表示,在上一个状态为i的时候的分布概率,即每行元素的和必须为1。
隐马尔可夫模型(Hidden Markov Model, HMM)是一种统计模型,在语音识别、行为识别、NLP、故障诊断等领域具有高效的性能。
HMM是关于时序的概率模型,描述一个含有未知参数的马尔可夫链所生成的不可观测的状态随机序列,再由各个状态生成观测随机序列的过程。
HMM是一个双重随机过程---具有一定状态的隐马尔可夫链和随机的观测序列。
HMM随机生成的状态随机序列被称为状态序列;每个状态生成一个观测,由此产生的观测随机序列,被称为观测序列。
思考: z1,z2...,zn是 不可观测的状态,x1,x2,...xn是 可观测到的序列 ;不可观测的状态觉得可观测序列的值(z的取值决定x的取值);
1、在 z1、z2 不可观测 的情况下,x1和z2独立吗?x1和x2独立吗?
回答: 这个问题可以回顾之前的 贝叶斯网络 来理解。
首先z1,z2都是离散的值,但x1的值可能是离散的也可能是连续的。比如z是天气情况,每天天气的改变是离散的。x是因为天气而改变的一些其他状态,比如x=(地面是否潮湿、路上行人数量、雨伞销售数量...);
在z1和z2不可观测的情况下,x1和z2不独立,x1和x2也是不独立的。
2、 在 z1、z2可观测 的情况下,x1和z2独立吗?x1和x2独立吗?
回答: 在z1和z2可观测的情况下,因为x1和z2的取值只和z1有关,所以就独立了。同样在给定了z1和z2的情况下,x1和x2也独立。
请回顾贝叶斯网络中的独立性问题来思考这个问题。
04 贝叶斯算法 - 贝叶斯网络
回顾:
一般而言,贝叶斯网络的有向无环图中的节点表示随机变量,可以是可观察到的变量,或隐变量,未知参数等等。连接两个节点之间的箭头代表两个随机变量之间的因果关系(也就是这两个随机变量之间非条件独立);如果两个节点间以一个单箭头连接在一起,表示其中一个节点是“因”,另外一个节点是“果”,从而两节点之间就会产生一个条件概率值。
PS:每个节点在给定其直接前驱的时候,条件独立于其非后继。
HMM 由隐含状态S、可观测状态O、初始状态概率矩阵π、隐含状态转移概率矩阵A、可观测值转移矩阵B(又称为混淆矩阵,Confusion Matrix);
π和A决定了状态序列,B决定观测序列,因此HMM可以使用三元符号表示,称为HMM的三元素:
S可以统计历史出现的所有状态;
初始概率分布π,统计S中各个状态各自出现的概率作为我们的初始概率分布π向量值;
S是所有可能的状态集合,O是所有可能的观测集合:
I是长度为T的状态序列,Q是对应的观测序列:
S=下雨,阴天,晴天;O=地上干,地上湿
I = 晴,雨,雨,阴,晴,阴
Q=干,湿,湿,湿,干,干
A是隐含状态转移概率矩阵:
其中aij是在时刻t处于状态si的条件下时刻t+1转移到状态sj的概率。
a 晴雨 = 某天是晴天条件下,下一天是雨天的概率。 (某一时刻→下一时刻)
B是可观测值转移概率矩阵:
其中bij是在时刻t处于状态si的条件下生成观测值oj的概率。
b 晴干 = 某天是晴天条件下,某天是地是干的的概率。 (同一时刻)
π是初始状态概率向量:
其中πi是在时刻t=1处于状态si的概率。
π 晴 = 初始第一天是晴天的概率;
π 雨 = 初始第一天是雨天的概率;
p(i t | .....) 表示在从 t-1时刻的观测值q t-1 ,一直到第1时刻观测值q1 的条件下,在第t时刻发生状态的概率。
性质1: 最终分析结果发现,在第t时刻发生状态的概率it只和t-1时刻有关。
性质2: 第t时刻的观测值qt只和第t时刻的状态it有关。
假设有三个盒子,编号为1,2,3;每个盒子都装有黑白两种颜色的小球,球的比例。如下:
按照下列规则的方式进行有放回的抽取小球,得到球颜色的观测序列:
1、按照π的概率选择一个盒子,从盒子中随机抽取出一个球,记录颜色后放回盒子中;
2、按照某种条件概率选择新的盒子,重复该操作;
3、最终得到观测序列:“白黑白白黑”
例如: 每次抽盒子按一定的概率来抽,也可以理解成随机抽。
第1次抽了1号盒子①,第2次抽了3号盒子③,第3次抽了2号盒子②.... ; 最终如下:
①→③→②→②→③ 状态值
白→黑→白→白→黑 观测值
1、 状态集合: S=盒子1,盒子2,盒子3
2、 观测集合: O=白,黑
3、 状态序列和观测序列的长度 T=5 (我抽了5次)
4、 初始概率分布: π 表示初次抽时,抽到1盒子的概率是0.2,抽到2盒子的概率是0.5,抽到3盒子的概率是0.3。
5、 状态转移概率矩阵 A:a11=0.5 表示当前我抽到1盒子,下次还抽到1盒子的概率是0.5;
6、 观测概率矩阵 B:如最初的图,b11=第一个盒子抽到白球概率0.4,b12=第一个盒子抽到黑球概率0.6;
在给定参数π、A、B的时候,得到观测序列为“白黑白白黑”的概率是多少?
这个时候,我们不知道隐含条件,即不知道状态值:①→③→②→②→③ ;
我们如何根据π、A、B求出测序列为“白黑白白黑”的概率?
02 隐马尔可夫模型 - HMM的三个问题 - 概率计算、学习、预测
隐马尔可夫模型(HMM)总结
摘要:
1.算法概述
2.算法推导
3.算法特性及优缺点
4.注意事项(算法过程,调参等注意事项)
5.实现和具体例子
6.适用场合
内容:
1.算法概述
隐马尔科夫模型(Hidden Markov Model)是关于时序的概率模型,描述由一个隐含的马尔科夫链生成不可观测的状态序列,再由状态序列生成观测序列的过程。这种通过观测序列预测隐含的标记序列的问题叫做标注。
下图来自维基百科:
并且本文有如下符号表示:
其中就是我们需要求得的一个三元组;拿中文分词的例子来说,分词中的状态序列是{ Begin,Middle,End,Single },对应单个字成词的就是Single,双连词就是{Begin,End},三联词就是{Begin,Middle,End}。而我们观测到的就是一个句子;通过HMM实现的分词算法可以通过
求得初始{ Begin,Middle,End,Single }这四个状态的分布,以及各个状态间相互转移的条件概率矩阵,当前状态对应一个中文词(Unicode编码)的条件概率矩阵。另一个直观的例子来自《统计学习方法》,是给定4个盒子(4个状态),每个盒子有若干红,白小球,给定一个观测序列,求对应盒子的序列。
最后马尔科夫模型的两个基本假设:
1.齐次马尔科夫假设:马尔科夫链的当前状态之和其前一刻的状态有关,与其它状态无关;对应的概率语言是:
2.观测独立性假设:当前的观测只与该时刻的马尔科夫链相关,与其它观测及状态无关;对应的概率语言是:
2.算法推导
以下可以看作是HMM算法的一步步拆分,并且依次加深理解:
1.在模型给定下求观测序列的概率,即
前向算法(动态规划算法):求观测序列为y1,y2,...,yt,并且t时间点对应状态的概率
后向算法(动态规划算法):已知t时间点对应状态,求观测序列y(t+1),y(t+2),...,y(T)的概率
2.求解模型参数,使用对数极大似然估计,,得到三元组
1)建立目标函数: 2)拆分三项:
由概率加和为1,建立拉格朗日函数,求得三个最大化的
3.求最可能的状态序列,即:维特比算法
3.算法特性及优缺点 待续~~~
4.注意事项(算法过程,调参等注意事项)
5.实现和具体例子
6.适用场合
以上是关于01 隐马尔可夫模型 - 马尔可夫链、HMM参数和性质的主要内容,如果未能解决你的问题,请参考以下文章
02 隐马尔可夫模型 - HMM的三个问题 - 概率计算问题
机器学习算法之——隐马尔可夫模型(Hidden Markov Models,HMM) 代码实现