求网络剧《请你离我远一点资源百度云》百度云资源

上一节我们详细的阐述了隐马尔鈳夫的三个基本问题结合者背景知识理解这三个问题还是很容易的,因为隐马尔可夫的提出就是建立在语音识别的基础上提出来的因此根据背景知识学习更容易吸收和深入理解,简单的来说就是物理意义这里大家理解算法类的都尽量通过物理意义进行理解,这样学习效果会更好另外就是本节只会解决前两个基本问题,结尾引出第三问题然后分析问题的难点在哪里,讲明白为什么要引入EM算法然后丅一节将从最大释然估计讲解,由此引入EM算法最后在解决第三个问题,废话不多说下面开始:

隐马尔可夫的定义放在这里:

一般的,┅个HMM记为一个五元组其中,S为状态的集合K为输出符号的集合,分别是初始状态的概率分布、状态转移概率和符号发射概率为了简单,有时也将其记为三元组详情解释请查看

先把第一个基本问题拿过来看一下,没有深入理解的建议看我上一节的什么是三个基本问题():

首先我们需要分析一下问题给出的条件是观察序列和模型,让我们求在已知条件的情况下的条件概率即上一节我们详细的阐述了这個问题是为了解决语音识别中的语音输入问题,即根据语料库计算出最有可能输入的语音(拼音)序列下面我们就开始推公式了:

对任意的状态序列,有:

这里解释一下上式的表示在已知模型和状态序列的情况下求发射的符号序列的概率(HMM使用B表示符号发射概率),可鉯写成每个状态下发射符号O的概率的乘积这里隐藏一个假设即不同的状态发射的符号是相互独立的,因此可以写成(1)式我们继续:

這里的表示的在已知模型的情况下求总状态转移的概率,HMM的定义状态转移概率使用A来表示因此可以写成每个状态转移概率的乘积(这里馬尔科夫链可得),继续往下:

上面的(3)式是根据(1)、(2)两式得来的怎么解释他呢?意思是在模型的情况下的状态转移和发射符號序列的概率(这里是条件概率O,Q是一体的)他就等于在模型的情况下的状态转移概率乘上即在和Q条件下的发射符号的概率,这里大镓需要好好体会,他们是不是相等的

此时得到式后就好办了,是条件下的联合概率分布那么我在条件的情况下也可以求边缘密度分咘,因此就有下式:

上式大家应该很容理解了分别带进去后就会得到上式,所以第一个问题最后就化简成上式了那么我们如何求解呢?我们先看前一部分他是求和的这部分的计算量不大,一旦转态转移Q确定下来基本上求和就确定下来了难点在于后一部分的求积,既嘫要求最后的概率最大那么就要求累乘的概率每转移到一个状态的概率达到最大,好到这里我们再想想我们现在的目标是总体是概率朂大,而上式的前一部分是求和只要每个状态的转移和发射符号的概率最大那么求和的结果就会最大,后一部分要求转移概率的总乘积嘚概率最大另外就是大家看看这里目标和算法中的哪个算法最类似?这里要求最大概率是针对全局概率因此不能使用贪心算法,因为貪心算法只可能取得局部最优解因此这里使用动态规划求解是最合适的,动态规划的算法这里不再详细解释了年后我会专门开一个栏目讲算法的,这里我先简单的解释一下动态规划的核心思想他是从结果分析,然后从结果(全局)出发反推到开始,把结果都记录下來然后写代码时通过递归直接调用计算好的结果,这里计算量就下来了下面总体分析一下上式:

上述推导方式很直接,但面临一个很夶的困难是必须穷尽所有可能的状态序列。如果模型中有N个不同的状态时间长度为T,那么有NT个可能的状态序列。这样计算量会出現“指数爆炸”。当T很大时几乎不可能有效地执行这个算法。为此人们提出了前向算法或前向计算过程(forward procedure),利用动态规划的方法来解決这一问题使“指数爆炸”问题可以在时间复杂度为的范围内解决。
HMM中的动态规划问题一般用格架(trellis或lattice)的组织形式描述对于一个在某┅时间结束在一定状态的HMM,每一个格能够记录该HMM所有输出符号的概率较长子路径的概率可以由较短子路径的概率计算出来,如下图:

这裏解释一下上图是什么意思 首先表示状态,即隐马尔可夫总共有N个状态每一个时刻的状态都是这里面的一种可能情况,因此上图的意思就是横向是时间走向1,2,3,4,,T纵向就是每个时刻的可能选择的所有状态了,也就是说肯定存在一个通路是我们想要的如上图的红线蕗径。因此从上图可以看出状态转移的可能输太多了计算量很庞大,因此使用动态规划解决计算量大问题使用递归去搜索全局最优解,下面是就是如何推出递归表达式呢同时这个算法又叫前项算法。

       为了找到递归的表达式或者说为了实现前项算法这里需要定义一个Φ间变量(前项变量)即,如下定义:

前项算法的主要思想是如果可以快速计算前项变量,那么就可以根据计算出是在所有状态下观察箌序的概率:

所有说现在是如何构造这个递推关系式这一点其实在算法中也是最难的即建模思想,这个需要你深入理解各个算法的优缺點的情况下找出他们的递推关系,所以有时间的朋友还是把算法好好学一学过段时间我也单独开开一系列总结算法。我们下面就分析洳何找出他们的关系即和的关系如果这一节你看不懂,或者理解困难说明你对动态规划的算法理解的不深入,可以暂时停下来学习一丅动态规划这个算法下面开始推倒他们的关系:

在前项算法中,采用动态规划的方法计算前向变量其实现思想基于如下:

在时间的前姠变量可以根据在时间时的前向变量的值来归纳计算:

下面同示意图进行详细解释上式的意义:

上图代表的意思大家应该都懂吧,这里是時间t到t+1的转移过程假设在t时刻的中间变量概率为,而表示在已知观察序列 的情况下从时间到达下一个时间时的状态为的概率。从初始時间开始到HMM到达状态,并输出观察序列的过程可以分解为一下两个步骤:

(1)从初始时间开始到时间HMM到达状态,并输出观察序列;

(2)从状态转移到状态并在状态输出。

这里的可以是HMM的状态集的任意一个状态根据的定义,从某一个状态出发完成第一步的概率就是洏完成第二步的概率为。因此从初始时间到这个过程的概率为。由于HMM可以从不同的转移到一共有N个不同的状态,需要把能转移到这个狀态的概率求和这里大家可能会迷惑为什么是是在t时刻的求和呢?这里简单的解释一下因为在t时刻的N种状态都有可能转移到,此时我們要求的是转移到的概率有多大而在t时刻时我们已经分别知道了t-1时刻转移到t时刻的所有状态的概率,这就是从全局出发即我不管t时刻從哪个状态转移到的概率,而是考虑总体上只关心t+1时刻在状态时的总概率是多少这是动态规划的核心思想了。 因此就得到了上式的推倒

因此通过上式可以以此计算,为HMM的状态变量由此我们给出前项算法的伪代码:

在初始化步骤中,是初始状态的概率是在状态输出的概率,那么就是在时刻t=1时,HMM在状态输出序列即前项变量,一共有N个状态因此需要初始化N个前项变量.

现在来分析一下前项算法的时间複杂性,由于每计算一个必须考虑时的所有N个状态转移到状态的可能性其时间复杂性为,那么对应每个时间t,要计算N个前项变量,因此時间复杂性为,因而在1,2。。T整个过程中,前项算法的总时间复杂性为

上面就是前项算法了解决第一个基本问题还有另外一个方法就是后向算法,其实和前项算法很类似的这里不细讲了,只把过程写一下

和前项算法类似,这里也定义一个前项变量.

与计算前向变量一样可以用动态规划的算法计算后向变量。类似地在时间t状态为的条件下,HMM输出观察序列的过程可以分解为以下两个步骤:
(1)  从时間t到时间HMM由状态到状态,并从输出;

(2)在时间的状态为的条件下,HMM输出观察序列

根据后向变量的归纳关系,按,顺序依次计算(x为HMM的状态)就可以得到整个观察序列.

同理计算时间复杂度为也为。

还有一种算法是二者的结合如下式:

以上就是解决第一个问题的算法了,下媔介绍解决第二个问题的算法即维特比算法

这里也把第二个问题直接拿过来了,不懂的建议看我的上一篇博客:

这里还是简单的通过语喑识别的例子进行解释一下其实简单来说就是我们输入了正确的语音信号(拼音),现在的问题是我们在已知模型和观察序列(拼音、語音信号)的情况下去计算出对应的隐藏序列(汉字序列)使其最符合我们的观察序列。还不懂的看我的上一篇博客别拖,别稀里糊塗

维特比(Viterbi)算法用于求解HMM中的第二个问题,即给定一个观察序列和模型如何快速有效地选择在一定意义下“最优”的状态序列使得該状态序列“最好地解释”观察序列。即在给定的模型和观察给定序列O的条件下使的条件概率最大的状态序列,如下:

所以如何求上式嘚最大概率呢维特比算法使用了动态规划的搜索算法求解这种最优状态序列,为了实现这种搜索首先定义一个维特比变量.

定义:  维特仳变量在时间t时,HMM沿着某一条路径到达状态并输出观察序列的最大概率:

这里我想还是解释一下上式,如果深入理解动态规划思想的朋伖上面的式子还是很简单的,因此这里我还是来简单的解释一下吧,首先我们的目的是求最大概率的状态序列而背景框架是和前向算法一样的 ,我们知道如果穷举计算量太大了,而且这里的最大概率是全局最优的因此最适合的就是动态规划算法了,动态规划算法嘚思想是从全局出发也就是从结果出发这里的结果是 ,即最后一步的需要概率和最后一步以前的概率都是最大的这样才能保证最后结果是最大的,然后最后一步是通过上一步过来的即上式了那么要保证最后一步最大就要保证从上一步的状态转移到最后的状态的概率最夶,这样不停寻找上一步就得出结果了

这种递归关系使我们能够运用动态规划搜索技术。为了记录在时间t时HMM通过哪一条概率最大的路徑到达状态,维特比算法设置了另外一个变量用于路径记忆让记录该路径上状态的前一个(在时间t-1的)状态。根据这种思路给出如下維特比算法。     

维特比算法的时间复杂性与前向算法、后向算法的时间复杂性一样也是。在实际应用中往往不只是搜索一个最优状态序列,而是搜索n个最佳(n-best)路径因此,在格架的每个结点上常常需要记录m个最佳(m-bestm<n)状态。  

首先这个问题很重要而且解决起来也很困难,偅要体现在他是构建模型的因为我们的第一个问题和第二个问题都是建立在模型已知的情况下才能计算,所以这个问题的解决很重要困难稍后解释。因此这个问题是最基础的问题但是为什么要作为第三个问题呢?这是因为这个问题解决起来太麻烦了因此这样安排。夶家知道我们刚开始是没有模型的即HMM的参数都不知道但是我们有什么呢?我们有语料因为通过语料可以求解HMM的三个参数即状态转移概率A、符号发射概率B和初始状态概率分布。这里呢要想计算出这些参数首先我们应该有完美的语料,如果没有完美的语料怎么办呢所有峩们从两方面进行探讨即有完美语料和没有完美语料。

所谓完美语料就是我既知道发射符号的序列也知道状态转移序列,这里我们就可鉯使用最大释然估计计算HMM的参数了下面通过书面语进行说明:

上面的是冲击函数即当两个参数相等是为1,反之为0

不完美语料是指知道观察序列但是不知道状态转移序列因此无法用最大释然估计进行解决,此时可以是使用EM 算法【Expectation Maximization(期望最大化)】到这里本节就结束了,丅一节将从最大释然估计开始然后讲EM算法,最后再讲三个问题的具体解决过程

注:本节主要参考了宗成庆的《统计自然语言处理》

}
您正在搜索的页面可能已经删除、更名或暂时不可用
  • 确保浏览器的地址栏中显示的网站地址的拼写和格式正确无误。
  • 如果通过单击链接而到达了该网页请与网站管理員联系,通知他们该链接的格式不正确
  • 单击按钮尝试另一个链接。

技术信息(为技术支持人员提供)

  • 转到 并搜索包括“HTTP”和“404”的标题
  • 打开“IIS 帮助”(可在 IIS 管理器 (inetmgr) 中访问),然后搜索标题为“网站设置”、“常规管理任务”和“关于自定义错误消息”的主题
}

我要回帖

更多关于 请你离我远一点资源百度云 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信