HMM定义
上图为HMM的贝叶斯网络,【不可观察的前提下,
都不独立,不满足条件独立判定条件(tail-to-tail)】
隐马尔科夫模型(HMM, Hidden Markov Model)可用于标注问题,在语音识别、NLP、生物信息、模式识别等领域被实践证明是有效的算法。
HMM是关于“时序”的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测,而产生观测随机序列的过程。
HMM随机生成的状态的序列,称为状态序列;每个状态生成一个观测,由此产生的观测随机序列,称为观测序列
--序列的每个位置可看做是一个时刻。
HMM的确定
根据马尔可夫随机过程,我们现在让潜在变量的概率分布
对前一个潜在变量
产生依赖。由于潜在变量是K维二值变量,因此条件概率分布对应于数字组成的表格,记做A,它的元素被称为转移概率。元素
.由于它们是概率值,因此满足
,即行和为1.
直观意思是第n-1个时间步处于状态j时,那么在第n个时间步处于状态k的概率,(即下一个时间步,状态从j转移到k的概率)
从而矩阵A由K(K-1)个独立的参数。可以显式地将条件概率分布写成
(1)
初始潜在结点
很特别,因为它没有父结点,因此它的边缘概率分布
由一个概率向量
表示,元素为
即
,
(2)
可以通过定义观测变量的条件概率分布
来确定一个概率模型,其中B是控制概率分布的参数集合。这些条件概率被称为发射概率。因此对于一个给定的B值,概率分布
由一个K维的向量组成,对应于二值向量
的K个可能状态。我们可以将发射概率表示为,
( 3 )
从而观测变量和潜在变量上的联合概率分布为,
( 4 )
其中
表示控制模型参数的集合。
从⽣成式的观点考虑隐马尔科夫模型,我们可以更好地理解隐马尔科夫模型。
【马尔科夫模型为了从⼀个混合⾼斯分布中⽣成样本,我们⾸先随机算侧⼀个分量,选择的概率为混合系数πk, 然后从对应的⾼斯分量中⽣成⼀个样本向量x。这个过程重复N次,产⽣N个独⽴样本组成的数据集。
在【隐马尔科夫模型】的情形,这个步骤修改如下。⾸先我们选择初始的潜在变量z1,概率由参数πk控制,然后采样对应的观测x1。现在我们使⽤已经初始化的z1的值,根据转移概 率p(z2 | z1)来选择变量z2的状态。从⽽我们以概率Ajk选择z2的状态k,其中k = 1, . . . ,K。⼀ 旦我们知道了z2,我们就可以对x2采样,从⽽也可以对下⼀个潜在变量z3采样,以此类推。
这是有向图模型的祖先采样的⼀个例⼦。例如,如果我们有⼀个模型,其中对⾓转移元素Akk⽐ ⾮对⾓的元素⼤得多,那么⼀个典型的数据序列中,会有连续很长的⼀系列点由同⼀个概率分布⽣成,⽽从⼀个分量转移到另⼀个分量不会经常发⽣。图13.8说明了从隐马尔科夫模型⽣成样本的过程。
HMM的参数
统一定义:
Q是所有可能的状态的集合----N是可能的状态数(等价于前面说的K维)
V是所有可能的观测的集合----M是可能的观测数(等价于观测值x的维度)
是长度为T的状态序列,O是对应的观测序列
A:状态转移概率矩阵
,
即在时刻t处于状态
的条件下时刻t+1转移到状态
的概率
B:观测(发射)概率矩阵
,
, 即在时刻t处于状态
的条件下生成观测
的概 率。
是初始状态概率向量
,
, 即 时刻t=1处于状态
的概率
HMM举例
该示例的各个参数
那么,在给定参数π、A、B的前提下,得到观测序列“红红白白红”的概率是多少?即
。 由此引出HMM的3个基本问题
HMM的3个基本问题
1)概率计算问题:前向-后向算法——动态规划
给定模型
和观测序列,计算模型λ下观测序列
出现的概率
2)学习问题:Baum-Welch算法(状态未知)——EM
已知观测序列
,估计模型
的参数,使得在该模型下观测序列
最大
3)预测问题:Viterbi算法——动态规划
解码问题:已知模型
和观测序列
求给定观测序列条件概率
最大的状态序列
概率计算问题
直接计算法:暴力算法
由公式(1)(2)
(5)
表示只与状态转移概率矩阵A和初始概率分布π有关
由公式(3)
( 6 )
表示只与观测(发射)概率矩阵B有关
由公式(4)和
同时出现的联合概率:
(7)
因此,对公式(7)中的所有可能的状态序列求和,即可得到
,即
( 8 )
对(8)式进行分析:加和符号中共有2T个因子,的遍历个数为
,因此,时间复杂度为
,指数级增长,复杂度过高。
借鉴动态规划的方法,选择一个状态推算出它的状态转移方程。
chow-liu tree
【凡是树状或者链状(类树)的图,将任何一个节点作为某一时刻状态值,能够看到的输出就是它的前向;以它作为条件能够看到的输出就是它的后向】
思考:用贝叶斯网络的这套思维体系去影响深度学习的网络,从而将深度网络精简。
定义:前向概率-后向概率
这里y等价于(前面提到的)o;q即i
前向概率:
, 表示第t个时刻位于第i号状态并且观察到了前t个观测值的概率;
或者说,前t个观测和第t个时刻位于状态i的联合概率
后向概率:
,表示在第t个时刻位于第i号状态时,能够观察到t+1及其后面的观测的概率
前向算法
定义:给定,到t时刻部分观测序列为
且状态为
的概率称为前向概率
记做:
可以递归计算前向概率及观测序列概率
初值:
, (9)
即在时刻t=1时位于状态i且观察到了
的概率
递归:对于t=1,2…T-1
, (10)
t+1时刻位于状态i的概率:t时刻的状态
转移到 t+1 时刻状态 i 的概率的和
----表示到达了t+1时刻的状态 i【我们只关注t+1时刻的状态,所以不关心t时刻的状态j,所以积分消去j】<类似全概率公式,加和规则,下面(11)同理>
那么,
即 (t+1时刻位于状态i的概率)且(观测到
)的概率
最终:我们得到
【T时刻位于状态i时,已经观测到整个序列O的概率】,将i积分掉,即得给定参数
,观测到序列O的概率
(11)
分析时间复杂度:
(11)(10)
后向算法
,表示在第t个时刻位于第i号状态时,能够观察到t+1及其后面的观测的概率
初值:
, (12)
在最后时刻T,已经不需要(没有)后面的观测,存在即为1
递推:对于t=T-1,T-2,...,1
, (13)
保证t+1时刻已经观测到序列
的前提下(即
),
还要求t时刻状态i能够转移到下一个时刻t+1的某一个状态且能够观测到
【t时刻状态i转移到t+1时刻的任一状态时,只要能观测到
即可保证
能够观测到序列
,
因此与j无关,积分消掉】
最终:当递归到最后一步t=1时,还有
未观测到,因此同理
(14)
前后向关系
根据定义公式(7):