11.EM算法、HMM模型

EM算法入门

11.EM算法、HMM模型_第1张图片
11.EM算法、HMM模型_第2张图片

算法介绍

极⼤似然估计

11.EM算法、HMM模型_第3张图片
11.EM算法、HMM模型_第4张图片
11.EM算法、HMM模型_第5张图片

EM算法实例描述

11.EM算法、HMM模型_第6张图片
11.EM算法、HMM模型_第7张图片

EM算法流程

11.EM算法、HMM模型_第8张图片

EM算法实例

11.EM算法、HMM模型_第9张图片
11.EM算法、HMM模型_第10张图片
11.EM算法、HMM模型_第11张图片

EM初级版

11.EM算法、HMM模型_第12张图片
11.EM算法、HMM模型_第13张图片
11.EM算法、HMM模型_第14张图片

EM进阶版

11.EM算法、HMM模型_第15张图片

11.EM算法、HMM模型_第16张图片
11.EM算法、HMM模型_第17张图片
11.EM算法、HMM模型_第18张图片

HMM模型入门

马尔科夫链

11.EM算法、HMM模型_第19张图片
⻢尔科夫链即为状态空间中从⼀个状态到另⼀个状态转换的随机过程。
11.EM算法、HMM模型_第20张图片

例子

在这里插入图片描述
11.EM算法、HMM模型_第21张图片
11.EM算法、HMM模型_第22张图片

HMM简介

在这里插入图片描述

例子

11.EM算法、HMM模型_第23张图片
11.EM算法、HMM模型_第24张图片
11.EM算法、HMM模型_第25张图片
在这里插入图片描述

例子进阶

11.EM算法、HMM模型_第26张图片

解决问题二

在这里插入图片描述
11.EM算法、HMM模型_第27张图片

解决问题一

11.EM算法、HMM模型_第28张图片
11.EM算法、HMM模型_第29张图片
11.EM算法、HMM模型_第30张图片
11.EM算法、HMM模型_第31张图片

解决问题三

11.EM算法、HMM模型_第32张图片
11.EM算法、HMM模型_第33张图片
11.EM算法、HMM模型_第34张图片
11.EM算法、HMM模型_第35张图片
11.EM算法、HMM模型_第36张图片

HMM模型基础

11.EM算法、HMM模型_第37张图片

定义

11.EM算法、HMM模型_第38张图片

⻬次⻢尔科夫链假设

11.EM算法、HMM模型_第39张图片

观测独⽴性假设

11.EM算法、HMM模型_第40张图片

HMM模型实例

11.EM算法、HMM模型_第41张图片
11.EM算法、HMM模型_第42张图片
11.EM算法、HMM模型_第43张图片
11.EM算法、HMM模型_第44张图片

HMM观测序列的⽣成

11.EM算法、HMM模型_第45张图片

HMM模型的三个基本问题

11.EM算法、HMM模型_第46张图片

前向后向算法评估观察序列概率

11.EM算法、HMM模型_第47张图片
11.EM算法、HMM模型_第48张图片
11.EM算法、HMM模型_第49张图片
前向后向算法是前向算法和后向算法的统称,这两个算法都可以⽤来求HMM观测序列的概率

前向算法

11.EM算法、HMM模型_第50张图片
11.EM算法、HMM模型_第51张图片

算法总结

11.EM算法、HMM模型_第52张图片
从递推公式可以看出,我们的算法时间复杂度是O(T N2),⽐暴⼒解法的时间复杂度O(T NT )少了⼏个数量级。

例子

在这里插入图片描述
在这里插入图片描述
11.EM算法、HMM模型_第53张图片
11.EM算法、HMM模型_第54张图片
11.EM算法、HMM模型_第55张图片

后向算法

熟悉了⽤前向算法求HMM观测序列的概率,现在我们再来看看怎么⽤后向算法求HMM观测序列的概率。 后向算法和前向算法⾮常类似,都是⽤的动态规划,唯⼀的区别是选择的局部状态不同,后向算法⽤的是“后向概率”。
11.EM算法、HMM模型_第56张图片
11.EM算法、HMM模型_第57张图片

维特⽐算法解码隐藏状态序列

给定模型和观测序列,求给定观测序列条件下,最可能出现的对应 的隐藏状态序列。 HMM模型的解码问题最常⽤的算法是维特⽐算法,当然也有其他的算法可以求解这个问题。 同时维特⽐算法是⼀个通⽤的求序列最短路径的动态规划算法,也可以⽤于很多其他问题

HMM最可能隐藏状态序列求解概述

11.EM算法、HMM模型_第58张图片

维特⽐算法概述

11.EM算法、HMM模型_第59张图片
11.EM算法、HMM模型_第60张图片
11.EM算法、HMM模型_第61张图片

维特⽐算法流程总结

11.EM算法、HMM模型_第62张图片
11.EM算法、HMM模型_第63张图片
11.EM算法、HMM模型_第64张图片

实例

11.EM算法、HMM模型_第65张图片
11.EM算法、HMM模型_第66张图片

鲍姆-⻙尔奇算法

11.EM算法、HMM模型_第67张图片

原理

11.EM算法、HMM模型_第68张图片
在这里插入图片描述

HMM模型API

官网

pip3 install hmmlearn

hmmlearn介绍

11.EM算法、HMM模型_第69张图片

MultinomialHMM实例

from hmmlearn import hmm
import numpy as np

# 设定隐藏状态的集合
states = ["box 1", "box 2", "box3"]
n_states = len(states)

# 设定观察状态的集合
observations = ["red", "white"]
n_observations = len(observations)

# 设定初始状态分布
start_probability = np.array([0.2, 0.4, 0.4])

# 设定状态转移概率分布矩阵
transition_probability = np.array([
  [0.5, 0.2, 0.3],
  [0.3, 0.5, 0.2],
  [0.2, 0.3, 0.5]
])

# 设定观测状态概率矩阵
emission_probability = np.array([
  [0.5, 0.5],
  [0.4, 0.6],
  [0.7, 0.3]
])
# 设定模型参数
model = hmm.MultinomialHMM(n_components=n_states)

# 设定初始状态分布
model.startprob_ = start_probability

# 设定状态转移矩阵
model.transmat_ = transition_probability

# 设定观测状态该路矩阵
model.emissionprob_ = emission_probability
# 设置观测序列值
seen = np.array([[0,1,0]]).T
seen

在这里插入图片描述

# seen 为二维数据,要先用flatten转换为一维
print("球的观测顺序为:\n",",".join(map(lambda x : observations[x],seen.flatten())))

在这里插入图片描述

#  维特比 模型训练
box =  model.predict(seen)
box

在这里插入代码片在这里插入图片描述

print("盒子最可能的隐藏状态顺序为:\n",",".join(map(lambda x : states[x],box.flatten())))

在这里插入图片描述

print("要注意的是score函数返回的是以⾃然对数为底的对数概率值,我们在HMM问题⼀中⼿动计算的结果是未取对数的原始 概率是0.13022,\n",model.score(seen))

在这里插入图片描述

import math

math.exp(model.score(seen))

在这里插入图片描述

你可能感兴趣的:(#,机器学习-算法入门,聚类,算法,机器学习)