第10章 概率图模型

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

t=1
t=2
t=3
晴天
晴天
晴天
阴天
阴天
阴天
雨天
雨天
雨天
观察: 干旱
干燥
潮湿
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.2 马尔科夫过程
10.2.2 隐马尔科夫模型

人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.2 马尔科夫过程
10.2.2 隐马尔科夫模型

人民邮电出版社 李克清主编 《机器学习》教材配套课件
不依赖于过去的演变。也就是说,一个马尔科夫过程可以表示为系统在状
态转移过程,第t +1次结果只受第t 次结果的影响,即只与当前状态有关,
而与过去状态,即系统的初始状态以及此次转移前的所有状态无关。
对于一阶马尔科夫模型,系统在时刻t +1的状态仅仅依赖于时刻t 的状态,
而与之前的状态无关。即,如果已知当前时刻的系统状态,那么系统的未
theata = (theata.dot(self.A)) # 上一个观察状态序列值到各个隐藏状态的概率值。 theata = theata * ((self.B[:, self.observe_list[i]])) #在x轴上求和,即新的在该状态的 局部概率。 max_inx = np.argmax(theata) # 预测的当天天气状态(序号) print("theata 1:", theata, self.weather[max_inx]) retList.append(self.weather[max_inx]) return retList if __name__ == "__main__": observe_list = [0,1,3] # 观察序列 a = HMM(observe_list) # 创建一个HMM对象 predict_list = a.forward() # 前向计算 print(predict_list)
来状态独立于过去的状态。
进一步,假定从 到 的转移概率(Transition Probability)是独立于时间的,

ij=P qt1 S j | qt Si 满足 ij ≥ 0 且
N
j1 ij
1
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.2 马尔科夫过程
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.2.1 马尔科夫过程

α11
α12
α22
1
1
2
2
α21
α13
α32
α31
α23
3
3
α33
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.2 马尔科夫过程
10.2.1 马尔科夫过程

人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.2 马尔科夫过程 t
10.2.1 马尔科夫过程
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.4 综合案例
def forward(self):
retList = [] # 进行初始化,即第一天的天气状况 theata = self.pai * self.B[:, self.observe_list[0]] max_inx = np.argmax(theata) # 第一天的天气状态(序号) print("theata 1:",theata, self.weather[max_inx]) retList.append(self.weather[max_inx]) lenth = len(self.observe_list) for i in range(1,lenth): # 计算后面几天的天气状况
10.1 引言
概率图模型主要包括
表示理论 推理理论 学习理论。
用概率图模型解决问题,一般包括下面几个内容:
学习。训练概率模型中的参数(包括结构参数); 似然计算。给定参数,估计特定观测值的条件概率; 识别解码。给定参数和观测值,推测隐变量的取值。
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.1 Байду номын сангаас言
常用的学习方法有:
最大似然估计 贝叶斯估计
推理问题的一般形式包括
信度更新 计算最大可能误差 最大后验假设。
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.2 马尔科夫过程
10.2.1 马尔科夫过程
马尔科夫过程有如下特性:在已知系统当前状态的条件下,它未来的演变
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.4 综合案例
运行结果:
theata 1: [ 0.378 0.0425 0.01 ] Sunny theata 1: [ 0.040425 0.03770312 0.00775625] Sunny theata 1: [ 0.00157887 0.00569521 0.01576309] Rain ['Sunny', 'Sunny', 'Rain']
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.3 Viterbi算法
t=0 0.378
t=1 0.0378
t=2 0.000945
0.0425
0.0354
0.00354
0.01 观察: 干旱
0.0047 干燥
0.01107 潮湿
对于天气状态预测问题,采用Viterbi算法进行计算。
运行结果:
天气转移矩阵 t +1
0.2
0.8
0.7
0.3

人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.2 马尔科夫过程
10.2.1 马尔科夫过程
t=1
t=2
t=0
0.2
雨天
0.2
雨天
雨天
0.3
晴天
0.3
晴天
晴天
t=3 雨天
t=n-1
... 雨天
0.2
t=n 雨天
晴天 ... 晴天
0.3
晴天
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.2 马尔科夫过程
10.2.2 隐马尔科夫模型
隐马尔科夫模型(Hidden Markov Model,HMM)是一个统计模型。
假定,人们只能观察到显式的观测向 量序列,而无法直接观察到底层的马 尔科夫链状态空间,但是观测向量与 底层的马尔科夫链状态空间之间是相 互关联的,可以通过一定的概率分布 表现出来。 因此,隐马尔科夫模型是一个双重随 机过程:具有一定状态数的隐马尔科 夫链和可观测向量的随机函数集。
晴天
转移矩阵A t t +1 晴天 阴天 雨天 晴天 0.5 0.375 0.125 阴天 0.25 0.125 0.625 雨天 0.25 0.375 0.375
初始化概率向量:(0.63,0.17,0.20)
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.2 马尔科夫过程
10.2.2 隐马尔科夫模型
10.3 Viterbi算法
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.3 Viterbi算法

人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.3 Viterbi算法

人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.3 Viterbi算法
(3)计算第三天的状态转移概率。
{'Rain': 0.010000000000000002, 'Cloudy': 0.0425, 'Sunny': 0.378} {'Rain': 0.004725, 'Cloudy': 0.0354375, 'Sunny': 0.0378} {'Rain': 0.01107421875, 'Cloudy': 0.00354375, 'Sunny': 0.0009450000000000001} [{'Sunny': 0.378}, {'Sunny': 0.0378}, {'Rain': 0.01107421875}]
科夫链),用无向图模型表示描述变量间的相互依赖(如鉴别模 型)。 概率图模型包括四个要素:
• 语义。图与概率值之间的关联关系; • 结构。变量间的依赖关系; • 实现。结点和函数的具体形式,即概率分布类型(多项分布,高斯
分布等);
• 参数。概率分布的具体参数,如均值,方差等。
人民邮电出版社 李克清主编 《机器学习》教材配套课件
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.4 综合案例
雨天
阴天
晴天
马尔科夫链表示的天气转换图
Sunny Cloudy Sunny 0.50 0.375 Cloudy 0.25 0.125
Rain 0.25 0.375
Rain 0.125 0.625 0.375
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.4 综合案例
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.4 综合案例
HMM的前向算法的具体实现代码如下:
import numpy as np class HMM():
def __init__(self, observe_list): # 初始状态序列 self.pai = [0.63, 0.17, 0.20] # 状态转移矩阵 self.A = np.array([[0.500, 0.375, 0.125], [0.250, 0.125, 0.625], [0.250, 0.375, 0.375]]) # 发射矩阵 self.B = np.array([ [0.60, 0.20, 0.15, 0.05], [0.25, 0.25, 0.25, 0.25], [0.05, 0.10, 0.35, 0.50] ]) # 天气状态 self.weather = ['Sunny', 'cloudy', 'Rain'] # 海藻湿度 self.seaweed = ['Dry', 'Dryish', 'damp', 'Soggy'] # 观察序列 self.observe_list = observe_list
10.2 马尔科夫过程
10.2.2 隐马尔科夫模型

(5)根据前面(1)~(4)步计算结果,构造一个HMM天气预报图
t=0
t=1
t=2
0.378
0.12128
0.00355
0.0425
0.0377
0.01291
0.01 观察: 干旱
0.0039 干燥
0.02009 潮湿
人民邮电出版社 李克清主编 《机器学习》教材配套课件
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.2 马尔科夫过程
10.2.2 隐马尔科夫模型

人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.2 马尔科夫过程
10.2.2 隐马尔科夫模型
潮湿
湿润
干燥
显状态
隐状态
雨天
阴天
干旱
晴天 阴天 雨天
混淆矩阵B 干旱 干燥 湿润 潮湿
0.6 0.2 0.15 0.05 0.25 0.25 0.25 0.25 0.05 0.1 0.35 0.5
第10章 概率图模型
学习目标
概率图模型 马尔科夫过程
学习目标
隐马尔科夫模型 Viterbi算法
人民邮电出版社 李克清主编 《机器学习》教材配套课件
10.1 引言
概率图模型是一类用图形模式表达的基于概率关系模型的总称。 概率图模型既用有向无环图模型表示,条件的依赖方向(如隐马尔
相关文档
最新文档