隐马尔可夫模型【维特比算法】

机器学习笔记

机器学习系列笔记,主要参考李航的《机器学习方法》,见参考资料。
第一章 机器学习简介
第二章 感知机
第三章 支持向量机
第四章 朴素贝叶斯分类器
第五章 Logistic回归
第六章 线性回归和岭回归
第七章 多层感知机与反向传播【Python实例】
第八章 主成分分析【PCA降维】

第九章 隐马尔可夫模型


文章目录


维特比算法是一种动态规划算法用于寻找最有可能产生观测事件序列的隐含状态序列.

一、维特比算法核心思想

viterbi维特比算法解决的是篱笆型的图的最短路径问题,图的节点按列组织,每列的节点数量可以不一样,每一列的节点只能和相邻列的节点相连,不能跨列相连.

过程非常简单:

  1. 为了找出S到E之间的最短路径,我们先从S开始从左到右一列一列地来看。

  2. 首先起点是S,从S到A列的路径有三种可能:S-A1、S-A2、S-A3,如下图:

S-A1、S-A2、S-A3中的哪一段都有可能是全局最短路径的备选项,我们继续往右看,到了B列。按B列的B1、B2、B3逐个分析:

如上图,经过B1的所有路径只有3条:

  1. S-A1-B1
  2. S-A2-B1
  3. S-A3-B1

以上这三条路径,各节点距离加起来对比一下,我们就可以知道其中哪一条是最短的。假设S-A3-B1是最短的,那么我们就知道了经过B1的所有路径当中S-A3-B1是最短的,其它两条路径路径S-A1-B1和S-A2-B1都比S-A3-B1长,绝对不是目标答案,可以删掉了,删掉了不可能是答案的路径,就是viterbi算法(维特比算法)的重点,因为后面我们再也不用考虑这些被删掉的路径了,现在经过B1的所有路径只剩一条路径了,如下图:

以此类推后面的结点......

二、viterbi算法

viterbi算法的核心主要是:

  1. 定义时刻t每个状态 s i s_i si的路径概率 δ t ( i ) \delta_t(i) δt(i).
  2. δ t ( i ) \delta_t(i) δt(i)的递推公式.
  3. 回溯每个时刻的最优状态.

给定 λ = ( A , B , π ) \lambda=(A,B,\pi) λ=(A,B,π)和长度为 T T T的观测序列

0 = { O 1 , O 2 , ⋯   , O T } , \mathbf{0}=\{O_1,O_2,\cdots,O_T\}, 0={O1,O2,⋯,OT},

求与观测序列O最匹配的状态序列

X = { X 1 , X 2 , ⋯   , X T } . \mathbf{X}=\{X_1,X_2,\cdots,X_T\}. X={X1,X2,⋯,XT}.

相当于找到使得 P ( X ∣ 0 , λ ) P(X|0,\lambda) P(X∣0,λ)最大的状态序列 X ∗ X^* X∗, 即

X ∗ = argmax ⁡ X P ( X ∣ O , λ ) , \mathbf{X}^*=\underset{\mathbf{X}}{\operatorname*{argmax}}P(\mathbf{X}|\mathbf{O},\lambda), X∗=XargmaxP(X∣O,λ),所求的最优状态序列$ X^*$也可以定义为
X ∗ = argmax ⁡ X P ( X , O ∣ λ ) . \mathbf{X}^*=\underset{\mathbf{X}}{\operatorname*{argmax}}P(\mathbf{X},\mathbf{O}|\lambda). X∗=XargmaxP(X,O∣λ).考虑时刻 t ≤ N t\leq N t≤N 状态为 s i ( 1 ≤ i ≤ N ) s_i\quad(1\leq i\leq N) si(1≤i≤N) 的所有单个路径
( X 1 , X 2 , ⋯   , X t − 1 , X t = s i ) . (X_1,X_2,\cdots,X_{t-1},X_t=s_i). (X1,X2,⋯,Xt−1,Xt=si).所对应的概率的最大值为(也就是每个时刻每个状态对应观察序列的概率,可以递推):

δ t ( i ) = max ⁡ X 1 , X 2 , . . . , X t − 1 P ( X t = s i , X 1 , X 2 , ⋯   , X t − 1 , O 1 , O 2 , ⋯   , O t ) , \delta_t(i)=\max\limits_{X_1,X_2,...,X_{t-1}}P(X_t=s_i,X_1,X_2,\cdots,X_{t-1},O_1,O_2,\cdots,O_t), δt(i)=X1,X2,...,Xt−1maxP(Xt=si,X1,X2,⋯,Xt−1,O1,O2,⋯,Ot),

显然对最优路径 X ∗ X^* X∗而言,
P ( X ∗ , O ∣ λ ) = max ⁡ 1 ≤ i ≤ N δ T ( i ) , P(X^*,O|\lambda)=\max\limits_{1\leq i\leq N}\delta_T(i), P(X∗,O∣λ)=1≤i≤NmaxδT(i),而且
X T ∗ = arg ⁡ max ⁡ s i , 1 ≤ i ≤ N δ T ( i ) . X_T^* = \arg\max\limits_{s_i,1\leq i\leq N} \delta_T( i) . XT∗=argsi,1≤i≤NmaxδT(i).

结合第一部分的动态规划思想,路径最大概率 δ t ( i ) ( 2 ≤ t ≤ T ) \delta_t(i)(2\leq t\leq T) δt(i)(2≤t≤T)的递推公式 如下:
δ t ( i ) = max ⁡ 1 ≤ j ≤ N [ δ t − 1 ( j ) a j i ] b i ( O t ) , i = 1 , 2 , ⋯   , N . \delta_t(i)=\max_{1\leq j\leq N}[\delta_{t-1}(j)a_{ji}]b_i(O_t),\mathrm{~}i=1,2,\cdots,N. δt(i)=1≤j≤Nmax[δt−1(j)aji]bi(Ot), i=1,2,⋯,N.由此我们可以递推计算出 δ T ( i ) , i = 1 , 2 , ⋯   , N . \delta_T(i),\quad i=1,2,\cdots,N. δT(i),i=1,2,⋯,N.完整算法框架如下:

参考资料

  1. 如何通俗的理解维特比算法
  2. 李航. 机器学习方法. 清华大学出版社, 2022.
相关推荐
qzhqbb2 小时前
基于统计方法的语言模型
人工智能·语言模型·easyui
冷眼看人间恩怨2 小时前
【话题讨论】AI大模型重塑软件开发:定义、应用、优势与挑战
人工智能·ai编程·软件开发
2401_883041082 小时前
新锐品牌电商代运营公司都有哪些?
大数据·人工智能
pianmian13 小时前
python数据结构基础(7)
数据结构·算法
AI极客菌3 小时前
Controlnet作者新作IC-light V2:基于FLUX训练,支持处理风格化图像,细节远高于SD1.5。
人工智能·计算机视觉·ai作画·stable diffusion·aigc·flux·人工智能作画
阿_旭4 小时前
一文读懂| 自注意力与交叉注意力机制在计算机视觉中作用与基本原理
人工智能·深度学习·计算机视觉·cross-attention·self-attention
王哈哈^_^4 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
Power20246664 小时前
NLP论文速读|LongReward:基于AI反馈来提升长上下文大语言模型
人工智能·深度学习·机器学习·自然语言处理·nlp
数据猎手小k5 小时前
AIDOVECL数据集:包含超过15000张AI生成的车辆图像数据集,目的解决旨在解决眼水平分类和定位问题。
人工智能·分类·数据挖掘
好奇龙猫5 小时前
【学习AI-相关路程-mnist手写数字分类-win-硬件:windows-自我学习AI-实验步骤-全连接神经网络(BPnetwork)-操作流程(3) 】
人工智能·算法