人工智能里的数学修炼 | 隐马尔可夫模型:基于EM的鲍姆-韦尔奇算法求解模型参数
人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型
人工智能里的数学修炼 | 隐马尔可夫模型:前向后向算法
人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态序列
人工智能里的数学修炼 | 隐马尔可夫模型:基于EM的鲍姆-韦尔奇算法求解模型参数
隐马尔可夫模型的参数为λ={A,B,π}\lambda=\{A,B,\pi\}λ={A,B,π}, 对余其参数的求解,可以分为两种情况。
第一种情况较为简单,就是我们已知长度为TTT的观测序列和对应的隐藏状态序列,即{(O,I)}\{(O,I)\}{(O,I)}是已知的,此时我们可以很容易的用最大似然来求解模型参数。
第二种情况较为复杂,很多时候,我们无法得到隐马尔可夫模型观察序列对应的隐藏序列,即只有{O}\{O\}{O}是已知的,此时,我们就需要采用到鲍姆-韦尔奇算法,其实本质上也就是就是EM算法
目录
- 一、鲍姆-韦尔奇算法原理
- 二、鲍姆-韦尔奇算法的推导
- 三、鲍姆-韦尔奇算法的流程
- 四、更多资源下载
一、鲍姆-韦尔奇算法原理
鲍姆-韦尔奇算法在每一次迭代中,都分为E和M两步,在E步,我们需要基于联合分布P(O,I∣λ)P(O,I|\lambda)P(O,I∣λ)和条件概率P(I∣O,λˉ)P(I|O,\bar{\lambda})P(I∣O,λˉ)的算出期望QQQ(其中λˉ\bar{\lambda}λˉ为当前迭代中模型参数),然后在M步中极大化这个期望,获得更新的模型参数λ\lambdaλ。通过不停的EM迭代,使得模型参数收敛
- E步的期望表达式为:
Q=∑IP(I∣O,λˉ)logP(O,I∣λ)Q=\sum_{I}P(I|O,\bar{\lambda})logP(O,I|\lambda)Q=I∑P(I∣O,λˉ)logP(O,I∣λ) - 在M步我们极大化上式,然后得到更新后的模型参数如下:
λˉ=argmaxλˉ∑IP(I∣O,λˉ)logP(O,I∣λ)\bar{\lambda}=argmax_{\bar{\lambda}}\sum_{I}P(I|O,\bar{\lambda})logP(O,I|\lambda)λˉ=argmaxλˉI∑P(I∣O,λˉ)logP(O,I∣λ)通过,E步和M步不断的迭代,我们可以得到收敛的参数λˉ\bar{\lambda}λˉ。
上面的式子可能有些地方不知道该如何计算,接下来讲解,具体的推导和计算方法
二、鲍姆-韦尔奇算法的推导
输入:长度为TTT的观测序列O={(o1),(o2),...,(oT)}O=\{(o_{1}),(o_{2}),...,(o_{T})\}O={(o1),(o2),...,(oT)},所有的可能的状态集合q1,q2,...,qN{q_{1},q_{2},...,q_{N}}q1,q2,...,qN, 所有可能的观测集合v1,v2,...,vM{v_{1},v_{2},...,v_{M}}v1,v2,...,vM
未知:隐藏的状态序列I={(i1),(i2),...,(iT)}I=\{(i_{1}),(i_{2}),...,(i_{T})\}I={(i1),(i2),...,(iT)}
目标: λ={A,B,π}\lambda=\{A,B,\pi\}λ={A,B,π}
对于鲍姆-韦尔奇算法的E步,我们需要首先计算联合分布P(O,I∣λ)P(O,I|\lambda)P(O,I∣λ)如下:
P(O,I∣λ)=πi1bi1(o1)ai1i2bi2(o2)ai2i3...bi(T−1)(oT−1)ai(T−1)i(T)biT(oT)P(O,I|\lambda)=\pi_{i1}b_{i1}(o_{1})a_{i1i2}b_{i2}(o_{2})a_{i2i3}...b_{i(T-1)}(o_{T-1})a_{i(T-1)i(T)}b_{iT}(o_{T})P(O,I∣λ)=πi1bi1(o1)ai1i2bi2(o2)ai2i3...bi(T−1)(oT−1)ai(T−1)i(T)biT(oT)因为条件概率P(I∣O,λˉ)=P(O,I∣λ)P(O,λ)P(I|O,\bar{\lambda})=\frac{P(O,I|\lambda)}{P(O,\lambda)}P(I∣O,λˉ)=P(O,λ)P(O,I∣λ)且P(O,λ)P(O,\lambda)P(O,λ)是一个参数, 期望Q可以简化为
Q=∑IP(O,I∣λˉ)logP(O,I∣λ)Q=\sum_{I}P(O,I|\bar{\lambda})logP(O,I|\lambda)Q=I∑P(O,I∣λˉ)logP(O,I∣λ)将P(O,I∣λ)P(O,I|\lambda)P(O,I∣λ)带入上式,我们有
Q=∑IP(O,I∣λˉ)logπi+∑I(∑tTlogbit(ot))P(O,I∣λˉ)+∑I(∑tT−1logaiti(t+1))P(O,I∣λˉ)Q=\sum_{I}P(O,I|\bar{\lambda})log\pi_{i}+\sum_{I}(\sum_{t}^{T}logb_{it}(o_{t}))P(O,I|\bar{\lambda})+\sum_{I}(\sum_{t}^{T-1}loga_{iti(t+1)})P(O,I|\bar{\lambda})Q=I∑P(O,I∣λˉ)logπi+I∑(t∑Tlogbit(ot))P(O,I∣λˉ)+I∑(t∑T−1logaiti(t+1))P(O,I∣λˉ)
接下来对于对于鲍姆-韦尔奇算法的M步,我们需要极大化Q,这要求对Q的三个子式子分别求导,可以得到
πˉi=γ1(i)\bar{\pi}_{i}=\gamma_{1}(i)πˉi=γ1(i)其中γt(i)=P(it=qi∣O,λ)=P(it=qi,O∣λ)P(O∣λ))\gamma_{t}(i)=P(i_{t}=q_{i}|O,\lambda)=\frac{P(i_{t}=q_{i},O|\lambda)}{P(O|\lambda))}γt(i)=P(it=qi∣O,λ)=P(O∣λ))P(it=qi,O∣λ)表示在观测序列OOO给定的条件下,时刻ttt处于状态qiq_{i}qi的概率。
aˉij=∑t=1T−1ξt(i,j)∑t=1Tγt(i)\bar{a}_{ij}=\frac{\sum_{t=1}^{T-1}\xi_{t}(i,j)}{\sum_{t=1}^{T}\gamma_{t}(i)}aˉij=∑t=1Tγt(i)∑t=1T−1ξt(i,j)这里ξt(i,j)=P(it=qi,it+1=qj∣O,λ)\xi_{t}{(i,j)}=P(i_{t}=q_{i},i_{t+1}=q_{j}|O,\lambda)ξt(i,j)=P(it=qi,it+1=qj∣O,λ)表示在观测序列OOO给定的条件下,时刻ttt处于状态qiq_{i}qi且时刻t+1t+1t+1处于qjq_{j}qj的概率。
bˉj(k)=∑t−1Tγt(j)I(ot=vk)∑t=1Tγt(j)\bar{b}_{j}(k)=\frac{\sum_{t-1}^{T}\gamma_{t}(j)I(o_{t}=v_{k})}{\sum_{t=1}^{T}\gamma_{t}(j)}bˉj(k)=∑t=1Tγt(j)∑t−1Tγt(j)I(ot=vk)
三、鲍姆-韦尔奇算法的流程
- 初始化参数λˉ={A,B,π}\bar{\lambda}=\{A,B,\pi\}λˉ={A,B,π}
- 更新迭代参数
πˉi=γ1(i)\bar{\pi}_{i}=\gamma_{1}(i)πˉi=γ1(i)
aˉij=∑t=1T−1ξt(i,j)∑t=1Tγt(i)\bar{a}_{ij}=\frac{\sum_{t=1}^{T-1}\xi_{t}(i,j)}{\sum_{t=1}^{T}\gamma_{t}(i)}aˉij=∑t=1Tγt(i)∑t=1T−1ξt(i,j)
bˉj(k)=∑t−1Tγt(j)I(ot=vk)∑t=1Tγt(j)\bar{b}_{j}(k)=\frac{\sum_{t-1}^{T}\gamma_{t}(j)I(o_{t}=v_{k})}{\sum_{t=1}^{T}\gamma_{t}(j)}bˉj(k)=∑t=1Tγt(j)∑t−1Tγt(j)I(ot=vk) - 模型收敛,停止迭代
四、更多资源下载
微信搜索“老和山算法指南”获取更多下载链接与技术交流群
有问题可以私信博主,点赞关注的一般都会回复,一起努力,谢谢支持。
人工智能里的数学修炼 | 隐马尔可夫模型:基于EM的鲍姆-韦尔奇算法求解模型参数相关推荐
- 人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态序列
人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型 人工智能里的数学修炼 | 隐马尔可夫模型:前向后向算法 人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态 ...
- 人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型
人工智能里的数学修炼 | 概率图模型 : 隐马尔可夫模型 人工智能里的数学修炼 | 隐马尔可夫模型:前向后向算法 人工智能里的数学修炼 | 隐马尔可夫模型 : 维特比(Viterbi)算法解码隐藏状态 ...
- 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数
在本篇我们会讨论HMM模型参数求解的问题,这个问题在HMM三个问题里算是最复杂的.在研究这个问题之前,建议先阅读这个系列的前两篇以熟悉HMM模型和HMM的前向后向算法,以及EM算法原理总结,这些在本篇 ...
- 鲍姆-韦尔奇算法求解HMM参数
1. HMM模型参数求解概述 HMM模型参数求解根据已知的条件可以分为两种情况. 第一种情况较为简单,就是我们已知DD个长度为TT的观测序列和对应的隐藏状态序列,即{(O1,I1),(O2,I2),. ...
- 人工智能里的数学修炼 | 矩阵的花样分解:特征值分解(EVD)、相似对角化、QR分解、Schur分解、奇异值分解(SVD)的概念纠缠与详解
前言 在高等代数里,矩阵分解是一个十分基础与重要的内容,任何一个学校对于理工科的研究生教育都会开设相应的课程,如:矩阵分析.矩阵论.线性系统等.看了不少社区的问答.笔记和博客,在它们的基础上加入一些自 ...
- 隐马尔可夫模型(三)——鲍姆-韦尔奇算法(Baum-Welch算法)
一.问题回顾 模型参数的学习问题.即给定观测序列O={o1,o2,-oT},估计模型λ=(A,B,Π)的参数.这个问题的求解需要用到鲍姆-韦尔奇算法,我会在隐马尔可夫模型系列的第三篇博客中讲解,这个问 ...
- 隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)
隐马尔科夫模型(前向后向算法.鲍姆-韦尔奇算法.维特比算法) 概率图模型是一类用图来表达变量相关关系的概率模型.它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的变表是变量间的概 ...
- 机器学习算法总结(七)——隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)...
概率图模型是一类用图来表达变量相关关系的概率模型.它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的变表是变量间的概率相关关系.根据边的性质不同,可以将概率图模型分为两类:一类是 ...
- 机器学习算法拾遗:(七)隐马尔科夫模型(前向后向算法、鲍姆-韦尔奇算法、维特比算法)
1.隐马尔科夫模型HMM 隐马尔科夫模型的图结构如下 从上图中主要有两个信息:一是观测变量xi 仅仅与与之对应的状态变量yi 有关:二是当前的状态变量yi 仅仅与它的前一个状态变量yi-1 有关. 隐 ...
最新文章
- Oracle Logminer 做数据恢复 说明示例
- 为什么static成员必须在类外初始化
- 行路的心情-让自己慢下来(11)
- mysql vim 退不出_字符集问题之 MySQL, Linux终端, vim
- 10.Partial Dependence Plots
- 线程安全性的基础知识
- [ios]iOS模拟器应用程序目录结构
- ie运行不了java脚本界面_IE浏览器不能运行js JS代码失效不能运行了如何解决
- Office 365 online的基本概念
- 倒计时 2 天!「2019 嵌入式智能国际大会」全日程大公开!
- python的list()列表数据类型的方法详解
- 53-20210316华为海思Hi3516DV300的linux系统通过网口刷机(eMMC模式)
- 洛谷P4093 [HEOI2016/TJOI2016]序列
- 4个让你相见恨晚的电脑操作技巧
- CS231A:Vanishing Points and Lines
- c语言mac小游戏,Mac自带小游戏怎么玩以打发空闲时间
- 用R进行一元线性回归分析建模
- Vue面试题你知道多少
- 解决:Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-defin
- AFNetWorking3.0 实现同步请求
热门文章
- Java语言程序设计 例题9.8(Fan类)
- JAVA毕设项目家庭记账系统(java+VUE+Mybatis+Maven+Mysql)
- 简单逆向分析使用案例(2)--CrackMe_01.exe 找出密码
- 计算机高新技术学什么,高新技术计算机教学利弊分析
- C语言总结 — 知识点导论图
- 【Vivado那些事儿】Vivado 增量综合流程
- 连接nacos服务器报错,显示/nacos/v1/ns/instance after all servers([localhost:8848])
- 一个假冒的序列号被用来注册IDM
- 什么?RecyclerView中获取点击位置的接口被废弃了?
- Java计算1+2+...+n