欢迎访问喜蛋文章网
你的位置:首页 > 读后感 > 文章正文

《解析深度学习:语音识别实践》读书笔记-隐马尔可夫模型

时间: 2021-10-08 11:41:40 | 作者:Alpha猫 | 来源: 喜蛋文章网 | 编辑: admin | 阅读: 114次

《解析深度学习:语音识别实践》读书笔记-隐马尔可夫模型

标题里用的《解析深度学习:语音识别实践》这本书,因为主要的学习路线是根据这本书来的。但是《统计学习方法》这本书对我的帮助也非常大。

HMM的核心是状态这个概念,状态本身是一个随机变量,通常取离散值。从马尔可夫链延伸至隐马尔可夫模型(HMM),涉及在马尔可夫链的每一个状态上增加不确定性或统计分布。因此,一个HMM是一个马尔可夫链的双随机过程概率函数。当马尔可夫序列或者HMM的状态被限定为离散的,且HMM状态的各分布间没有重叠时,它便成为一个马尔可夫链。

隐马尔可夫模型是可用于标注问题的统计学习模型,描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型。

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

隐马尔可夫模型的定义

定义:隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测从而产生观测随机序列的过程,隐藏的马尔可夫链随机生成的状态的序列,称为状态序列;每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列。序列的每一个位置又可以看作是一个时刻。

隐马尔可夫模型由初始概率分布、状态转移概率分布以及观测概率分布确定。隐马尔可夫模型的形式定义如下:

Q 是所有可能的状态的集合, V 是所有可能的观测的集合: Q=left{ q_1,q_2,...,q_N right},V=left{v_1,v_2,...,v_M right} 其中, N 是可能的状态数, M 是可能的观测数。I 是长度为 T 的状态序列, O 是对应的观测序列: I=left(i_1,i_2,...,i_Tright),O=left(o_1,o_2,...,o_Tright) A 是状态转移概率矩阵: A=left[a_{ij} right]_{Ntimes N} 其中, a_{ij}=Pleft(i_{t+1}=q_j|i_t=q_i right),i=1,2,...,N;j=1,2,...,N 是在时刻 t 处于状态 q_i 的条件下在时刻 t+1 转移到状态 q_j 的概率。B 是观测概率矩阵: B=left[b_j left(k right) right]_{Ntimes M} 其中, b_j left(k right)= Pleft(o_t=v_k|i_t=q_j right),k=1,2,...,M;j=1,2,...,N 是在时刻 t 处于状态 q_j 的条件下生成观测 v_k 的概率。pi 是初始状态概率向量: pi = left(pi_iright) 其中, pi_i=Pleft(i_1=q_i right),i=1,2,...,N 是时刻 t=1 处于状态 q_i 的概率。

隐马尔可夫模型由初始状态概率向量 pi 、状态转移概率矩阵 A 和观测概率矩阵 B 决定。 piA 决定状态序列。 B 决定观测序列。因此,隐马尔可夫模型 lambda 可以用三元符号表示,即 lambda=left(A,B,pi right) A,B,pi 称为隐马尔可夫模型的三要素。

状态转移概率矩阵 A 与初始状态概率向量 pi 确定了隐藏的马尔可夫链,生成不可观测的状态序列。观测概率矩阵 B 确定了如何从状态生成观测,与状态序列综合确定了如何产生观测序列。

隐马尔可夫模型的基本假设

    齐次马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻 t 的状态只依赖于其前一时刻的状态,与其他时刻的状态及观测无关,也与时刻 t 无关: P left(i_t|i_{t-1},o_{t-1},...,i_1,o_1 right)=P left(i_t|i_{t-1} right),t=1,2,...,T 观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关: P left(o_t|i_T,o_T,i_{T-1},O_{T-1},...,i_{t+1},o_{t+1},i_t,i_{t-1},o_{t-1},...,i_1,o_1right) = Pleft( o_t|i_tright)

隐马尔可夫模型的例子

根据以下规则从两个盒子中抽球

开始,从4个盒子里以等概率随机选取1个盒子,从这个盒子里随机冲出1个球,记录其颜色后,放回;然后,从当前盒子随机转移到下一个盒子,规则是:如果当前盒子是盒子1,那么下一个盒子一定是盒子2;如果当前是盒子2或3,那么分别以概率0.4和0.6转移到左边或右边的盒子;如果当前是盒子4,那么各以0.5的概率停留在盒子4或转移到盒子3;确定转移的盒子后,再从这个盒子里随机抽出1个球,记录其颜色,放回;如此下去,重复进行5次,得到一个球的颜色的观测序列

在这个过程中,观察者只能观测到球的颜色的序列,观测不到球是从哪个盒子取出的,即观测不到盒子的序列。

在这个例子中有两个随机序列,一个是盒子的序列(状态序列),一个是球的颜色的观测序列(观测序列)。前者是隐藏的,只有后者是可观测的。这是一个隐马尔可夫模型的例子。根据所给条件,可以明确状态集合、观测集合、序列长度以及模型的三要素。

观测序列的生成过程

根据隐马尔可夫模型定义,可以将一个长度为T 的观测序列 O=left(o_1,o_2,...,o_T right) 的生成过程描述如下。

输入:隐马尔可夫模型 lambda=left(A,B,pi right) ,观测序列长度 T ;输出:观测序列 O=left(o_1,o_2,...,o_T right) 。(1)按照初始状态分布 pi 产生状态 i_1 ;(2)令 t=1 ;(3)按照状态 i_t 的观测概率分布 b_{i_t}left(kright) 生成 o_t ;(4)按照状态 i_t 的状态转移概率分布 left{a_{i_t i_{t+1}}right} 产生状态 i_{t+1}i_{t+1}=1,2,...,N (5)令 t=t+1 ;如果 tlt T ,转步(3);否则,终止。

隐马尔可夫模型的3个基本问题

    概率计算问题。给定模型 lambda= left(A,B,pi right) 和观测序列 O=left(o_1,o_2,...,o_T right) ,计算在模型 lambda 下观测序列 O 出现的概率 Pleft(O|lambdaright)学习问题。已知观测序列 O=left(o_1,o_2,...,o_T right) ,估计模型 lambda=left(A,B,pi right) 参数,使得在该模型下观测序列概率 P left(O|lambda right) 最大。即用极大似然估计的方法估计参数。预测问题,也称为解码问题。已知模型 lambda=left(A,B,pi right) 和观测序列O=left(o_1,o_2,...,o_T right) ,求对给定观测序列条件概率 Pleft(I|O right) 最大的状态序列 I=left(i_1,i_2,...,i_T right) 。即给定观测序列,求最有可能的对应的状态序列。

概率计算算法

采用按照概率公式直接计算的方法计算量大,不可行。故采用计算观测序列概率 Pleft(O|lambdaright) 的前向与后向算法。

前向算法

前向概率:给定隐马尔可夫模型 lambda ,定义到时刻 t 部分观测序列为 o_1,o_2,...,o_t 且状态为 q_i 的概率为前向概率,记作 alpha_t left(i right)= P left(o_1,o_2,...,o_t,i_t=q_i|lambda right)

可以递推地求得前向概率 alpha_t left(iright) 及观测序列概率 P left(O|lambda right)

观测序列概率的前向算法

输入:隐马尔可夫模型 lambda ,观测序列 O ;输出:观测序列概率 P left(O|lambda right)

    初值 alpha_1 left(iright)=pi_i b_i left(o_1 right),i=1,2,...,N 递推 对 t=1,2,...,T-1alpha_{t+1} left(iright)=left[sum_{j=1}^{N}{alpha_t left(jright)a_{ji}} right] b_i left(o_{t+1}right),i=1,2,...,N 终止 Pleft(O|lambdaright)=sum_{i=1}^{N}{alpha_T left(iright)}

后向算法

后向概率:给定隐马尔可夫模型 lambda ,定义在时刻 t 状态为 q_i 的条件下,从 t+1T 的部分观测序列为 o_{t+1},o_{t+2},...,o_T 的概率为后向概率,记作 beta_t left(iright)=P left(o_{t+1},o_{t+2},...,o_T|i_t=q_i,lambda right)

可以用递推的方法求得后向概率 beta_t left(i right) 及观测序列概率 P left(O|lambda right)

观测序列概率的后向算法

输入:隐马尔可夫模型 lambda ,观测序列 O ;输出:观测序列概率 P left(O|lambdaright)

    beta_T left(iright)=1,i=1,2,...,Nt=T-1,T-2,...,1 beta_t left(iright)=sum_{j=1}^{N}{a_{ij}b_j left(o_{t+1} right)}beta_{t+1} left(jright),i=1,2,...,N P left(O|lambda right)=sum_{i=1}^N pi_ib_i left(o_1 right)beta_1 left(iright)

学习算法

监督学习方法

假设已给训练数据包含 S 个长度相同的观测序列和对应的状态序列 left{left(O_1,I_1 right) ,left(O_2,I_2 right),...,left(O_S,I_S right)right} ,那么可以利用极大似然估计法来估计隐马尔可夫模型的参数。

Baum-Welch算法

假设给定训练数据只包含 S 个长度为 T 的观测序列 left{O_1,O_2,...,O_S right} 而没有对应的状态序列,目标是学习隐马尔可夫模型 lambda=left(A,B,pi right) 的参数。我们将观测序列数据看作观测数据 O ,状态序列数据看作不可观测的隐数据 I ,那么隐马尔可夫模型事实上是一个含有隐变量的概率模型 P left(O|lambda right) = sum_I P left(O|I,lambda right) Pleft(I|lambda right)

它的参数学习可以由 EM 算法实现。

预测算法

维特比

维特比算法实际是用动态规划解隐马尔可夫模型预测问题,即用动态规划求概率最大路径(最优路径)。这时一条路径对应着一个状态序列。

根据动态规划原理,最优路径具有这样的特性:如果最优路径在时刻 t 通过结点 i_t^* ,那么这一路径从结点 i_t^* 到终点 i_T^* 的部分路径,对于从 i_t^*i_T^* 的所有可能的部分路径来说,必须是最优的。

依据这一原理,我们只需从时刻 t=1 开始,递推地计算在时刻 t 状态为 i 的各条部分路径的最大概率,直至得到时刻 t=T 状态为 i 的各条路径的最大概率。时刻 t=T 的最大概率即为最优路径的概率 P^*,最优路径的终结点 i_T^* 也同时得到。之后,为了找出最优路径的各个结点,从终结点 i_T^* 开始,由后向前逐步求得结点 i_{T-1}^* ,...,i_1^* ,得到最优路径 I^*= left(i_1^*,i_2^*,...,i_T^* right) 。这就是维特比算法。

这个里面多数来源于《统计学习方法》的第十章内容,结合例子能够更好地帮助理解。

Reference

【1】《统计学习方法》,李航著.

【2】《解析深度学习:语音识别实践》,俞栋著.

文章标题: 《解析深度学习:语音识别实践》读书笔记-隐马尔可夫模型
文章地址: http://www.xdqxjxc.cn/duhougan/125067.html
Top