隐马尔可夫模型(四)-概率计算问题

2024-05-16

1. 隐马尔可夫模型(四)-概率计算问题

回顾隐马尔可夫模型的三个基本问题:
                                          
 在这一讲中,我们将解决第一个问题,即概率计算问题。计算概率的主要方法,书中提到了两种方法,一种是前向概率计算法,一种是后向概率计算法,但我们首先会介绍一种从概念上可行但是计算上不可行的计算方法。
                                          
 前向计算法是从第一步开始,每次计算前向概率,根据李航老师书中提供的算法即例子,前向计算法十分易于理解。
                                                                                                                          
 结合下面的例子,我们会对前向计算法有更深的认识
                                                                                  
 后向计算的思想跟前向计算是相反的,我们不断计算后向概率来得到结果
                                                                                  
 书中并没有后向计算的例子,我们还是用刚才的数据,通过后向计算的结果,发现与前向计算的结果是相同的:

隐马尔可夫模型(四)-概率计算问题

2. 隐马尔可夫模型的基本问题

1. 评估问题。给定观测序列 O=O1O2O3…Ot和模型参数λ=(A,B,π),怎样有效计算某一观测序列的概率,进而可对该HMM做出相关评估。例如,已有一些模型参数各异的HMM,给定观测序列O=O1O2O3…Ot,我们想知道哪个HMM模型最可能生成该观测序列。通常我们利用forward算法分别计算每个HMM产生给定观测序列O的概率,然后从中选出最优的HMM模型。这类评估的问题的一个经典例子是语音识别。在描述语言识别的隐马尔科夫模型中,每个单词生成一个对应的HMM,每个观测序列由一个单词的语音构成,单词的识别是通过评估进而选出最有可能产生观测序列所代表的读音的HMM而实现的。2.解码问题给定观测序列 O=O1O2O3…Ot 和模型参数λ=(A,B,π),怎样寻找某种意义上最优的隐状态序列。在这类问题中,我们感兴趣的是马尔科夫模型中隐含状态,这些状态不能直接观测但却更具有价值,通常利用Viterbi算法来寻找。这类问题的一个实际例子是中文分词,即把一个句子如何划分其构成才合适。例如,句子“发展中国家”是划分成“发展-中-国家”,还是“发展-中国-家”。这个问题可以用隐马尔科夫模型来解决。句子的分词方法可以看成是隐含状态,而句子则可以看成是给定的可观测状态,从而通过建HMM来寻找出最可能正确的分词方法。3. 学习问题。即HMM的模型参数λ=(A,B,π)未知,如何调整这些参数以使观测序列O=O1O2O3…Ot的概率尽可能的大。通常使用Baum-Welch算法以及Reversed Viterbi算法解决。怎样调整模型参数λ=(A,B,π),使观测序列 O=O1O2O3…Ot的概率最大?

3. 01 隐马尔可夫模型 - 马尔可夫链、HMM参数和性质

  先直白得讲性质: 当前的状态只和上一时刻有关,在上一时刻之前的任何状态都和我无关。我们称其 符合 马尔可夫性质。
    下面是理论化的阐述:    设{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的三个问题 - 概率计算、学习、预测 

01 隐马尔可夫模型 - 马尔可夫链、HMM参数和性质

4. 隐马尔可夫模型的基本算法

针对以下三个问题,人们提出了相应的算法*1 评估问题: 前向算法*2 解码问题: Viterbi算法*3 学习问题: Baum-Welch算法(向前向后算法)

5. 隐马尔可夫模型的基本概述

一种HMM可以呈现为最简单的动态贝叶斯网络。隐马尔可夫模型背后的数学是由LEBaum和他的同事开发的。它与早期由RuslanL.Stratonovich提出的最优非线性滤波问题息息相关,他是第一个提出前后过程这个概念的。在简单的马尔可夫模型(如马尔可夫链),所述状态是直接可见的观察者,因此状态转移概率是唯一的参数。在隐马尔可夫模型中,状态是不直接可见的,但输出依赖于该状态下,是可见的。每个状态通过可能的输出记号有了可能的概率分布。因此,通过一个HMM产生标记序列提供了有关状态的一些序列的信息。注意,“隐藏”指的是,该模型经其传递的状态序列,而不是模型的参数;即使这些参数是精确已知的,我们仍把该模型称为一个“隐藏”的马尔可夫模型。隐马尔可夫模型以它在时间上的模式识别所知,如语音,手写,手势识别,词类的标记,乐谱,局部放电和生物信息学应用。隐马尔可夫模型可以被认为是一个概括的混合模型中的隐藏变量(或变量),它控制的混合成分被选择为每个观察,通过马尔可夫过程而不是相互独立相关。最近,隐马尔可夫模型已推广到两两马尔可夫模型和三重态马尔可夫模型,允许更复杂的数据结构的考虑和非平稳数据建模。

隐马尔可夫模型的基本概述

6. 隐马尔科夫模型(HMM)

隐马尔可夫模型(Hidden Markov Model),简称HMM, 是一种基于 概率统计 的模型,是一种结构最简单的 动态贝叶斯网 ,是一种重要的 有向图模型 。它用来描述一个含有隐含未知参数的 马尔可夫过程(Markov Process) 。其难点是从 可观察参数 中确定该过程的 隐参数 ,然后利用这些参数来作进一步的分析。
  
 马尔可夫过程 (Markov Process),它因俄罗斯数学家安德烈·马尔可夫而得名,代表数学中具有马尔可夫性质的离散 随机过程 。它的原始模型马尔可夫链,由安德烈·马尔可夫于1907年提出。
  
 X1, … , Xn,每个状态值取决于前面有限个状态。如果 Xn+1 对于过去状态的条件概率分布仅是  Xn 的一个函数,则
                                                                                  
 在马尔科夫链中,每一个圆圈代表相应时刻的状态,有向边代表了可能的状态转移,权值表示状态转移概率。 
  
 这里“隐”指的是马尔科夫链中任意时刻的状态变量是不可见的,也就是说状态序列S0,S1,...,St无法直接观测到。但是HMM中每时刻有一个可见的观测值Ot与之对应,而且Ot有且仅于当前时刻隐状态St有关,St外化表现为Ot的概率称为输出概率,因此隐马尔科夫模型的结构图如下所示。 
                                          
 因此,隐马尔科夫模型中马尔科夫链指的是隐状态S0,S1,...,St序列。
  
 HMM模型可以用五元组(O,S,A,B,π)表示。其中
  
 根据以上HMM模型五元组表示,我们可以归纳出HMM模型解决的三个经典的问题。 
  
 如何用简单易懂的例子解释隐马尔可夫模型? https://www.zhihu.com/question/20962240
最新文章
热门文章
推荐阅读