韦尔奇算法
A. 马尔可夫算法不正确的是
马尔可夫算法不正确的是参考如下:
前向、后向算法解决的是一个评估问题,即给定一个模型,求某特定观测序列的概率,用于评估该序列最匹配的模型。
Baum-Welch算法解决的是一个模型训练问题,即参数估计,是一种无监督的训练方法,主要通过EM迭代实现;
维特比算法解决的是给定 一个模型和某个特定的输出序列,求最可能产生这个输出的状态序列。如通过海藻变化(输出序列)来观测天气(状态序列),是预测问题,通信中的解码问题。
HMM模型一共有三个经典的问题,含三种算法:
1 、评估问题: 前向算法
评估观察序列概率。即给定模型λ=(A,B,Π)λ=(A,B,Π)和观测序列O={o1,o2,...oT}O={o1,o2,...oT},计算在模型λλ下观测序列OO出现的概率P(O|λ)P(O|λ)。这个问题的求解需要用到前向后向算法,我们在这个系列的第二篇会详细讲解。这个问题是HMM模型三个问题中最简单的。
2 、学习问题: Baum-Welch算法(向前向后算法)
模型参数学习问题。即给定观测序列O={o1,o2,...oT}O={o1,o2,...oT},估计模型λ=(A,B,Π)λ=(A,B,Π)的参数,使该模型下观测序列的条件概率P(O|λ)P(O|λ)最大。这个问题的求解需要用到基于EM算法的鲍姆-韦尔奇算法,这个问题是HMM模型三个问题中最复杂的。
3 、解码问题: Viterbi算法
预测问题,也称为解码问题。即给定模型λ=(A,B,Π)λ=(A,B,Π)和观测序列O={o1,o2,...oT}O={o1,o2,...oT},求给定观测序列条件下,最可能出现的对应的状态序列,这个问题的求解需要用到基于动态规划的维特比算法。
B. 隐马尔可夫模型(基础)
假设t时刻的状态只与t-1时刻的状态有关,与更早的时刻无关,这一假设称为一阶马尔可夫假设。如果状态有n种取值,在t时刻取任何一个值与t-1时刻取任何一个值的条件概率构成了一个n×n的矩阵A,称为状态转移概率矩阵。无论t时刻的状态值是什么,在下一时刻一定会转向n个状态种一个,因此他们的转移概率和必须为1。
在实际应用种,人们不能直接观察到状态的值,即状态的值是隐含的,只能得到观测的值。因此对模型进行扩充,得到隐马模型。
观测序列是能得到的值。
状态序列是因,观测序列是果,因为处于某种状态才有了某一观测值。
定义状态观测矩阵B,表示t时刻状态值为s时的观测值为v的概率
t时刻的状态z=i的概率最大状态序列中,t-1时刻的状态值,有了这两个变量,就可以得到维特比算法。
训练时给定一组样本,确定状态转移矩阵和观测矩阵,通过最大似然估计实现。如果已知训练样本集中每个观测序列对应的状态序列,给定初始状态如:p0=[0.5, 0.2, 0.3], k步转化过程为:p0=p0*pk。计算机程序需要利用迭代变量,借助循环实现。经过多步转化p0收敛于固定值(稳态)。可以通过最大似然估计得到模型参数。
状态空间:隐状态S的取值范围
观测空间:观测状态O的取值范围
转移概率:矩阵各元素都是用概率表示。其值非负,并且各行元素之和等于1。在一定条件下是互相转移的,故称为转移概率矩阵。矩阵中的行数与列数可以相等,也可以不等。当它们相等时,矩阵就是一个方阵。由转移概率组成的矩阵就是转移概率矩阵。也就是说构成转移概率矩阵的元素是一个个的转移概率不同状态之间的转移概率,可以用转移矩阵表示,记做a
发射概率:初始状态的概率分布,在知道当前标签的情况下,发射的概率,记做π
输出概率:基于当前状态,不同输出的概率分布,记做b
模型参数λ = (a, b, π)
1、 齐次假设:即马尔科夫假设
2、 观测独立性假设:观测值只取决于对应的状态值,与其他状态无关
(1)首先, HMM模型表示为: lambda = HMM(A, B, pi), 其中A, B, pi都是模型的参数, 分别称作: 转移概率矩阵, 发射概率矩阵和初始概率矩阵.
(2)接着, 我们开始训练HMM模型, 语料就是事先准备好的一定数量的观测序列及其对应的隐含序列, 通过极大似然估计求得一组参数, 使由观测序列到对应隐含序列的概率最大.
(3)在训练过程中, 为了简化计算, 马尔可夫提出一种假设: 隐含序列中每个单元的可能性只与上一个单元有关. 这个假设就是着名的隐含假设.
(4)训练后, 我们就得到了具备预测能力的新模型: lambda = HMM(A, B, pi), 其中的模型参数已经改变.
(5)之后给定输入序列(x1, x2, ..., xn), 经过模型计算lambda(x1, x2, ..., xn)得到对应隐含序列的条件概率分布.
(6)最后, 使用维特比算法从隐含序列的条件概率分布中找出概率最大的一条序列路径就是我们需要的隐含序列: (y1, y2, ..., yn).
状态转移矩阵通过训练样本学习得到,采用最大似然估计。
初始状态取每种值的概率Π,状态转移概率矩阵A,观测概率矩阵B
隐马尔可夫模型需要解决以下三个问题:
(1)估值问题(观测序列出现的概率)。给定隐马尔可夫模型的参数A和B,计算一个观测序列x出现的概率值p(x)。前向后向算法
(2)解码问题(观测序列最大化的隐含序列)。给定隐马尔可夫模型的参数A和B以及一个观测序列x,计算最有可能产生此观测序列的状态序列z。
已知一个观测序列,寻找最有可能产生它的状态序列。维特比算法
(3)学习问题。给定隐马尔可夫模型的结构,但参数未知,给定一组训练样本,确定隐马尔可夫模型的参数A和B。
保姆韦尔奇算法
隐马尔可夫模型对条件概率p(x|z)建模,因此是一个生成式模型。