机器学习之十六:HMM(隐马尔可夫模型)


1、什么是HMM:
    先来看一个例子:假设有4个盒子,每个盒子里面都装有红白两种颜色的球,盒子里面的红白球有下表给出:

盒子 1 2 3 4
红球数 5 3 6 8
白球数 5 7 4 2

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

O = { }

在这个过程中,观察者只能观测到球的颜色序列,观测不到球是从哪个盒子取出的,即观测不到盒子的序列。
    在这个例子中有两个随机序列,一个是盒子的序列(状态序列),一个是球颜色序列(观测序列)。前者是隐藏的,只有后者是可以观测的。这是一个隐马尔科夫的例子。根据所给条件,可以明确状态集合、观测集合、序列长度。
    盒子对应状态,盒子的状态集合是:
Q = { 1 2 3 4 } N = 4

    球的颜色对应观测,观测集合是:
V = { } M = 2

    状态序列和观测序列长度T=5
    初始概率分布为(从四个盒子选一个盒子的概率):
π = ( 0.25 , 0.25 , 0.25 , 0.25 ) T

    状态转移概率分布为( A [ i ] [ j ] 表示当前是第 i 个盒子,下一个盒子是 j 个盒子的概率):
A = [ 0 1 0 0 0.4 0 0.6 0 0 0.4 0 0.6 0 0 0.5 0.5 ]

    观测概率分布为( B [ i ] [ j ] 表示第 i 个盒子下选择第 j 种颜色球的概率):
B = [ 0.5 0.5 0.3 0.7 0.6 0.4 0.8 0.2 ]

H M M 的定义:
    隐马尔科夫模型是关于时序的概率模型,描述一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐马尔科夫模型由初始概率分布、状态转移概率分布以及观测概率分布确定,隐马尔科夫模型的形式定义如下:
    设 Q 是所有可能的状态的集合, V 是所有可能的观测的集合:
Q = { q 1 , q 2 , . . . , q N } V = { v 1 , v 2 , . . . , v M }

其中 N 是可能的状态数, M 是可能的观测数。
     I 是长度为 T 的状态序列, O 是对应的观测序列:
I = { i 1 , i 2 , . . . , i T } O = { o 1 , o 2 , . . . , o T }

     A 是状态转移概率矩阵:
A = [ a i j ] N × N

其中
a i j = P ( i t + 1 = q j | i t = q i ) , i = 1 , 2 , 3 , . . , N , j = 1 , 2 , . . . , N

是在时刻 t 处于 q i 的条件下时刻 t + 1 转移到 q j 的概率.
     B 是观测概率矩阵:
B = [ b j ( k ) ] N × M

其中
b j ( k ) = P ( o t = v k | i t = q j ) , k = 1 , 2 , . . . , M , j = 1 , 2 , . . . , N

是在时刻 t 处于状态 q j 的条件下生成观测 v k 的概率.
     π 是初始状态概率向量:
π = ( π i )

其中
π i = P ( i 1 = q i ) , i = 1 , 2 , . . . , N

是时刻 t = 1 处于状态 q i 的概率。
    隐马尔科夫模型由初始概率向量 π 、状态转移概率矩阵 A 和观测概率矩阵 B 决定。 π A 决定状态序列, B 决定观测序列。因此,隐马尔科夫模型 λ 可以用三元符号表示:
λ = ( A , B , π )

A , B , λ 称为隐马尔科夫模型的三要素。
    隐马尔科夫模型可以用于标注,这时状态对应标记。标注问题是给定观测的序列预测其对应的标记序列,可以假设标注问题的数据是由隐马尔科夫模型生成的。
2、隐马尔科夫模型的三个基本问题:
(1)概率计算问题:给定模型 λ = ( A , B , π ) 和观测序列 O = { o 1 , o 2 , . . . , o T } ,计算在模型 λ 下观测序列 O 出现的概率 P ( O | λ ) .
(2)学习问题:已知观测序列 O = { o 1 , o 2 , . . . , o T } ,估计模型 λ = ( A , B , π ) 的参数,使得在该模型下观测序列的概率 P ( O | λ ) 最大。即用最大似然估计的方法估计参宿。
(3)预测问题,也称为解码问题。已知模型 λ = ( A , B , π ) 和观测序列 O = { o 1 , o 2 , . . . , o T } ,求对给定观测序列条件概率 P ( I | O ) 最大的状态序列 I = ( i 1 , i 2 , . . . , i T ) ,即给定观测序列,求最有可能对应的状态序列。
3、概率计算问题:待续。。
4、学习问题:待续。。
5、预测问题:待续。。

猜你喜欢

转载自blog.csdn.net/mou_it/article/details/80216671