HMM(三)维特比算法推测隐藏状态序列

HMM(三)维特比算法推测隐藏状态序列

仍沿用上一节中HMM模型盒子和球的例子,已知盒子与球的模型及取3次球以后球的颜色观测序列{红,白,红},需推测三次取球可能对应的盒子序列(隐藏状态序列),每一次分别是从哪一个盒子取的球。

www.zeeklog.com  - HMM(三)维特比算法推测隐藏状态序列


  • 第一个时刻:

计算隐藏状态分别为第一个、第二个、第三个盒子时,观测取得球o1为红球的概率。

 δ1(1)=π1b1(o1)=0.2×0.5=0.1

π1指π=(0.2,0.4,0.4)的第一个元素0.2,从第一个盒子中抽到球的概率是0.2;b1(o1)其中的o1是观测序列的第一个时刻取到的红球,b1(o1)从观测状态概率矩阵b1盒子一种取红球的概率是0.5。

δ1(2)=π2b2(o1)=0.4×0.4=0.16

π2指π=(0.2,0.4,0.4)的第2个元素0.4,从第2个盒子中抽到球的概率是0.4;b2(o1)其中的o1是观测序列的第一个时刻取到的红球,b2(o1)从观测状态概率矩阵b2盒子二种取红球的概率是0.4。

 δ1(3)=π3b3(o1)=0.4×0.7=0.28

π3指π=(0.2,0.4,0.4)的第3个元素0.4,从第3个盒子中抽到球的概率是0.4;b3(o1)其中的o1是观测序列的第一个时刻取到的红球,b3(o1)从观测状态概率矩阵b3盒子三中取红球的概率是0.7。

定义在时刻t隐藏状态为i的所有单个状态转移路径(i1,i2,...,it−1,i)中概率最大的转移路径中第t−1个节点的隐藏状态为Ψt(i),在第一个时刻,Ψt(i)=0,i=1,2,3。

Ψ1(1)=Ψ1(2)=Ψ1(3)=0
  • 第二个时刻:

计算隐藏状态分别为第一个、第二个、第三个盒子时,观测取得球o2为白球的概率。

δ2(1) = max [δ1(j) aj1] b1(o2) = max [0.1×0.5,0.16×0.3,0.28×0.2]×0.5=0.028

δ1(j) 是第一个时刻隐藏状态为第j个盒子取得红球(第一个时刻)的概率,aj1是状态转移概率分布矩阵中取到第j个盒子以后接下来再取到第1个盒子的概率,这里分别计算第一个盒子、第二个盒子、第三个盒子的概率,取其中的最大值(此时第三个盒子的概率最大)。

b1(o2)是观测状态概率矩阵中第一个盒子取到白球(第二个时刻取到的是白球)的概率为0.5

因此:

δ2(1)表示第二个时刻取到第一个盒子的最大概率为0.028

Ψ2(1)表示第二个时刻取到第一个盒子的最大概率的前一个时刻的盒子为第三个盒子。


δ2(2)=max [δ1(j) aj2] b2(o2)=max[0.1×0.2,0.16×0.5,0.28×0.3]×0.6=0.0504

δ1(j) 是第一个时刻隐藏状态为第j个盒子取得红球(第一个时刻)的概率,aj2是状态转移概率分布矩阵中取到第j个盒子以后接下来再取到第2个盒子的概率,这里分别计算第一个盒子、第二个盒子、第三个盒子的概率,取其中的最大值(此时第三个盒子的概率最大)。

b2(o2)是观测状态概率矩阵中第2个盒子取到白球(第二个时刻取到的是白球)的概率为0.6

因此:

δ2(2)表示第二个时刻取到第2个盒子的最大概率为0.0504

Ψ2(2)表示第二个时刻取到第2个盒子的最大概率的前一个时刻的盒子为第三个盒子。

δ2(3)=max [δ1(j) aj3] b3(o2)=max[0.1×0.3,0.16×0.2,0.28×0.5]×0.3=0.042

δ1(j) 是第一个时刻隐藏状态为第j个盒子取得红球(第一个时刻)的概率,aj3是状态转移概率分布矩阵中取到第j个盒子以后接下来再取到第3个盒子的概率,这里分别计算第一个盒子、第二个盒子、第三个盒子的概率,取其中的最大值(此时第三个盒子的概率最大)。

b3(o2)是观测状态概率矩阵中第3个盒子取到白球(第二个时刻取到的是白球)的概率为0.3

因此:

δ2(3)表示第二个时刻取到第3个盒子的最大概率为0.042

Ψ2(3)表示第二个时刻取到第3个盒子的最大概率的前一个时刻的盒子为第三个盒子。


  • 第3个时刻:

计算隐藏状态分别为第一个、第二个、第三个盒子时,观测取得球o3为红球的概率。

δ3(1)=max [δ2(j)aj1] b1(o3)=max [0.028×0.5,0.0504×0.3,0.042×0.2]×0.5=0.00756

δ3(1)表示第3个时刻取到第1个盒子的最大概率为0.00756

Ψ3(1)表示第3个时刻取到第1个盒子的最大概率的前一个时刻的盒子为第2个盒子。


δ3(2)=max [δ2(j)aj2]b2(o3)=max [0.028×0.2,0.0504×0.5,0.042×0.3]×0.4=0.01008

δ3(2)表示第3个时刻取到第2个盒子的最大概率为0.01008

Ψ3(2)表示第3个时刻取到第2个盒子的最大概率的前一个时刻的盒子为第2个盒子。


δ3(3)=max [δ2(j)aj3] b3(o3)=max [0.028×0.3,0.0504×0.2,0.042×0.5]×0.7=0.0147

δ3(3)表示第3个时刻取到第3个盒子的最大概率为0.0147

Ψ3(3)表示第3个时刻取到第3个盒子的最大概率的前一个时刻的盒子为第3个盒子。


  • 最优路径

最优路径的概率为:maxδ3(j) = 0.0147

最优路径的终点为:arg max[δ3(j)] = 第3个盒子


  • 回溯找到前2个盒子

第二个时刻,Ψ3(3) = 3  Ψ3(3) 表示第3个时刻取到第3个盒子的最大概率的前一个时刻的盒子为第3个盒子

第一个时刻,Ψ2(3) = 3  Ψ2(3)表示第2个时刻取到第3个盒子的最大概率的前一个时刻的盒子为第3个盒子

因此,最终的最优路径为I =(3,3,3)

一图胜千言,最优路径如图所示,是最上面的一条线段:第三个盒子--->第三个盒子--->第三个盒子

www.zeeklog.com  - HMM(三)维特比算法推测隐藏状态序列


欢迎关注微信公众号:“从零起步学习人工智能”。

www.zeeklog.com  - HMM(三)维特比算法推测隐藏状态序列

喜欢我们发布的信息,就在右下角点一下“好看”吧!欢迎转发分享!

Read more

🚀Zeek.ai一款基于 Electron 和 Vite 打造的跨平台(支持 Windows、macOS 和 Linux) AI 浏览器

🚀Zeek.ai一款基于 Electron 和 Vite 打造的跨平台(支持 Windows、macOS 和 Linux) AI 浏览器

是一款基于 Electron 和 Vite 打造的跨平台(支持 Windows、macOS 和 Linux) AI 浏览器。 集成了 SearXNG AI 搜索、开发工具集合、 市面上最流行的 AI 工具门户,以及代码编写和桌面快捷工具等功能, 通过模块化的 Monorepo 架构,提供轻量级、可扩展且高效的桌面体验, 助力 AI 驱动的日常工作流程。

By Ne0inhk
超快速,使用ChatGPT编写回归和分类算法

超快速,使用ChatGPT编写回归和分类算法

本文将使用一些 ChatGPT 提示,这些提示对于数据科学家在工作时非常重要。 微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩 以下是一些示例ChatGPT 提示的列表以及数据科学家的响应。 ChatGPT 提示 为决策树回归算法生成 python 代码。 下面是使用scikit-learn在 Python 中进行决策树回归的示例代码: import numpy as np import matplotlib.pyplot as plt from sklearn.tree import DecisionTreeRegressor # Generate random data rng = np.random.default_rng() x = 5 * rng.random(100) y = np.sin(x) + 0.

By Ne0inhk
力扣每日一题:993.二叉树的堂兄弟节点 深度优先算法

力扣每日一题:993.二叉树的堂兄弟节点 深度优先算法

993.二叉树的堂兄弟节点 难度:简单 题目: 在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root ,以及树中两个不同节点的值 x 和 y 。 只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true 。否则,返回 false。 示例: 示例 1: 输入:root = [1,2,3,4], x = 4, y = 3 输出:false

By Ne0inhk