概率图模型
(4)隐状态转移概率矩阵 A2*2 :
正常骰子A 正常骰子A 灌铅骰子B 0.9 0.8 灌铅骰子B 0.1 0.2
(5)观测值生成概率矩阵 B2*6 :
观测值 1 2 1/6 1/8 3 1/6 1/8 4 1/6 5 1/6 6 1/6 3/8
正常骰子A 1/6 灌铅骰子B 0
3/16 3/16
HMM实例1(球和缸)
HMM实例1——描述
设有N个缸,每个缸中装有很多彩球,球的颜色 由一组概率分布描述。实验进行方式如下: 根据初始概率分布,随机选择N个缸中的一个开 始实验。 根据缸中球的颜色的概率分布,随机选择一个球 ,记球的颜色为 O1 ,并把球放回缸中。 根据描述缸的转移概率分布,随机选择下一口缸 ,重复以上的步骤。 最后得到一个描述球的颜色的序列 O1,O2,、、、、 称 为观察值序列O。
HMM的表述
(4)A={ aij },aij =P( qt s j | qt 1 si ) (1≤i,j≤N) :隐状态转移 概率矩阵A N *N a11 a12 ... a1N a a 22 ... a 2 N 21 A N* N ... ... ... ... a N 1 a N 2 ... a NN
每个状态可能的观察值数目
彩球颜色数目
与时间无关的状态转移概率矩 在选定某个缸的情况下,选 阵 择另一个缸的概率 给定状态下,观察值概率分布
初始状态空间的概率分布
每个缸中球的颜色分布
初始时选择某口缸的概率
HMM实例2——赌场的欺诈
某赌场在掷骰子根据点数决定胜负时候 采取了如下作弊手段: 在连续多次掷骰子的过程中,通常使 用公平骰子A,偶尔混入一个灌铅骰子B。
一次连续掷骰子过程模拟:
时间 骰子 掷出 点数 1 A 3 2 A 3 3 A 4 4 B 5 5 A 1 6 A 6 7 A 2
明序列 隐序列
查封赌场之后,调查人员发现了一些连续 掷骰子的记录,其中有一个骰子掷出的点 数记录如下: 12455264621461461361366616646616366 16361651561511514612356234、、、
HMM实例1——约束
• 在上述实验中,有几个要点需要注意: 不能被直接观察缸间的转移 从缸中所选取的球的颜色和缸并不是一一 对应的
每次选取哪个缸由一组转移概率决定
实例1中HMM的基本要素
• 模型五元组ℷ=(N,M,π,A,B)来描述HMM
参数 N 含义 状态数目 实例 缸的数目
M A B
π
t (i, j ) P ( S i , S j | O, )
at (i )aij b j (Ot 1 ) t 1 ( j ) P (O | ) at (i )aij b j (Ot 1 ) t 1 ( j )
P( S i , S j , O | ) P (O | )
人体运动特 征提取
Baum-Welch算法 求argmaxP(O|ℷ)
HMM分类 模型训练
前向后向算法 计算P(O|ℷ)
人体动作的 分类识别
HMM动作识别的训练过程
已知动 作序列 特征 提取 BaumWelch重 估
概率图模型
Probabilistic graph model
模型表示
图论
概率图 模型
概率 论
• 节点:随机变量或一组随机变量 • 连接弧:随机变量间的依赖关系 • 研究对象间依赖关系的一种工具
B A C A C B
• 概率图模型完全可以用纯概率的方式表达
,而图结构的引入提供了理论的直观性
分类
有向概率见的,只有通过观 测序列的随机过程才能表现出来 观察到的事件与状态并不是一一对应,而是通过 一组概率分布相联系
HMM是一个双重随机过程,两个组成部分:
马尔科夫链:描述状态的转移,用转移概率描
述。 一般随机过程:描述状态与观察序列间的关系, 用观察值概率描述。
t ,Ot vk
在t=1 处于状态i的次 数 在时刻T内,状态i转 移到状态j的总次数, 除以在时间T内,状态 i被经过的总次数
(3)
b j (k )
r ( j)
t t t
r ( j)
在时刻T内,经过状态j, 并且状态j对应的观测事 件为Vk的总数除以时间T 内,经过状态j的总数
HMM在动作识别中的一般过程
问题1——前向算法
问题1——后向算法
问题2——Viterbi算法
一个前向变量 t (i) t (i) =maxP( O1 , O2 ,...Ot ; Si | ) 给定模型下,产生t以前的部分观 测符号序列(包含t在内){ O1 , O2 ,...Ot },且时刻又处于状态 Si 的最大概 率
问题1——评估问题
• 给定 一个骰子掷出的点数记录 12455264621461461361366616646616366 16361651561511514612356234 • 问题 会出现这个点数记录的概率有多大? 求P(O|ℷ)
问题2—— 解码问题
• 给定 一个骰子掷出的点数记录 12455264621461461361366616646616366 16361651561511514612356234 • 问题 点数序列中那些点数是用骰子B掷出的? 求maxQ{P(Q|O,ℷ)}
迭代算法:
问题3——Baum-Welch算法
目的:给定观察值序列O,通过计算一个模 型ℷ=*A,B,π+,使得P(O|ℷ)最大 算法步骤: 1.初始模型(待训练模型)ℷ0 2.基于ℷ0以及观察值序列,计算新模型ℷ 3.如果|logP(O|ℷ)-logP(O|ℷ0)|<σ,说明训练 已达到预期效果,算法结束 4.否则,令ℷ0=ℷ,继续第2步工作
• 作弊问题由五个部分构成: (1)隐状态空间S(状态空间): S={正常骰子A,灌铅骰子B},赌场具体使 用哪个骰子赌徒是不知道的。 (2)观测空间O:O={1,2,3,4,5,6}。正常骰子A 和灌铅骰子B的所有六个面可能取值。 (3)初始状态概率空间π: π={初始选A的概率,初始选B的概率}
(1)无向图
(2)有向图
图1 有向图和无向图示( e 表示边,n 表示点)
隐马尔科夫模型
Hidden Markov Model
主要内容
HMM定 义
HMM实 例
HMM在 动作识别 中的应用
HMM三 个基本问 题
HMM的三个假设
对于一个随机事件,有观察值序列:O= O1,O 2,、、、O T, 该事件隐含着一个状态序列: Q= q1 , q2 ,、、、qT 。 假设1:马尔科夫性假设(状态构成一阶马尔科夫链) P( q i | q i 1 ...q1)=P( qi | qi 1 ) 假设2:不动性假设(状态与具体时间无关) P( qi 1 | qi )=P( q j 1 | q j ),对任意i,j成立 假设3:输出独立性假设(输出仅与当前状态有关) P( O1,O 2,、、、O T | q1 , q2 ,、、、qT )=∏P( O t | q t )
5.设t=t+1,如果t<T,重复步骤3、4,否则结束
HMM的三个基本问题
评估问题:给定观察序列O= O1,O 2,、、、O T, 以及模型ℷ=(π,A,B),如何计算P(O|ℷ)? 算法:Forward—Backward算法 解码问题:给定观察序列O= O1,O 2,、、、O T, 以及模型ℷ,如何选择一个对应的状态序列S= q1 , q2 ,、、、qT ,使得S能够最为合理的解释观 察序列O? 算法:Viterbi算法 学习问题:如何调整模型参数ℷ=(π,A,B),对于给 定观测值序列O= O1,O 2,、、、OT, 使得P(O|ℷ)最大? 算法:Baum-Welch算法
(5) B={b j (k )}, b j (k ) =P( Ot Vk | qt s j) (1≤j≤N,1≤k≤M) 观察值概率分布矩阵 B N *M
B N *M b11 b 21 ... b N 1 b12 b22 ... bN 2 b1M ... b2 M ... ... ... bMM ...
• A和B之间相互转换的概率写成矩阵如下:
正常骰子A 正常骰子A 灌铅骰子B 0.9 0.8 灌铅骰子B 0.1 0.2
• A和B产生各观测值概率的区别为:
观测值 1 2 3 4 5 6
正常骰子A
灌铅骰子B
1/6
0
1/6
1/8
1/6
1/8
1/6
1/6
1/6
3/16 3/16 3/8
骰子作弊问题模型化
问题3——学习问题
• 给定 一个骰子掷出的点数记录 12455264621461461361366616646616366 16361651561511514612356234 • 问题 作弊骰子掷出各点数的概率是怎样的?公 平骰子掷出各点数的概率又是怎样的?赌 场是何时换用骰子的?
• 将HMM的图应用到赌场作弊问题中:
给定模型ℷ和观察 序列O,在时刻t 处在状态i,时刻 t+1处在状态j的 期望概率
a (i)a b ( x
i 1 j 1 t ij j
N
N
t 1
) t 1 ( j )
rt (i ) t (i, j )
j 1 T 1 t 1 T 1 N t t
N
给定模型和观测序列条 件下,在时间t处于状 态i的概率 在时间T内,从状 态i进行转移的次数
马尔科夫模型的图解: 假定观测序列为v={ v1 , v2 , v3 ,...,vi ,... } (可见) 假定隐马尔科夫链为,x=( x1 , x2 , x3 ,...,xi ,... ) (不可见) 马尔科夫链示意图如下: