隐式马尔科夫模型中的Baum-Welch算法详解

2023-10-14 07:50

本文主要是介绍隐式马尔科夫模型中的Baum-Welch算法详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、Baum-Welch算法流程
  • 二、EM算法公式推导
    • 1)EM算法基础概念
    • 2)E步骤
    • 3)M步骤
  • 三、前置内容
    • a)条件概率和联合概率
    • b)拉格朗日乘子法的理解
    • c)隐数据
    • d)完全数据
  • 四、引用


前言

本篇分别从Baum-Welch算法流程和EM算法中所涉及公式的推导这两个方面来介绍Baum-Welch算法,旨在读者能理解如何使用Baum-Welch算法,以及掌握算法步骤中公式的来龙去脉。
为了保证阅读效率,一些前置知识点会被安排在文章末尾。
有任何的建议欢迎在评论区留言,随时看随时修改哦~谢谢大家【鞠躬


一、Baum-Welch算法流程

  1. 输入训练观测数据O=(o1,o2,…,oT). 同时初始化模型参数,从n=0开始,选取a0,b0,π0,得到模型λ0

  2. 递推n,n=1,2,…,n
    在这里插入图片描述
    接着用观测数据O和λn开始计算
    图中公式的γ和ζ将在EM公式推导中介绍。
    3)得到模型参数λ(n+1)
    根据第二步中即将展现的推导可知,在n+1时可以获得极大值。
    在这里插入图片描述
    第四步需要我们自己设置2个阈值,用来停止迭代。

二、EM算法公式推导

1)EM算法基础概念

首先,假设我们有许多组模型参数,λ1~λn,求每一个模型和O匹配的可能性(概率)P(O|λ),那么可能性最大的那个就最有可能成为隐式马尔科夫模型的参数。
O是观测序列,I是状态序列,λ是参数,λ中有3个子参数,分别是
在这里插入图片描述
同时隐式马尔科夫模型公式在EM算法中的意义为:
在这里插入图片描述
EM算法,最大似然估计,简单的说就是根据结果找出最有可能的条件。
隐式马尔科夫模型可以通过EM算法实现其参数学习。EM算法在隐式马尔科夫模型学习中的具体体现就是Baum-Welch 算法。
EM算法可以分成两个步骤,1:E步骤;2:M步骤。

2)E步骤

1)首先先进行初始化。
观测数据O=(o1,o2,…,oT), 所有隐数据写成I=(i1,i2,…,iT),确定完全数据【观测和状态在一起就是完全数据,借用完全数据的公式求这里的不完全数据(I是隐数据)】(O,I)=(o1,o2,…,oT,i1,i2,…,iT).的对数似然函数logP(O,I|λ)
在这里我们引入一个函数
在这里插入图片描述

第一个λ是表示要极大化的参数,第二个横线λ是参数当前的估计值,每一次的迭代都是在求Q函数及其极大值。
定义:完全数据的对数似然函数,在给定观测数据O,和当前参数横线λ下,隐数据I的可能性的期望称为Q函数。
Q函数在E步骤中就是求到函数内两个λ。9.11是Q函数之前的样子,E是求和符号,Z是I θ是λ,Y是O 展开就变成10.33了
在这里插入图片描述
【极大似然估计值】也就是【最大可能性的条件】。对数似然函数(9.12)和下面这一行很像(10.32)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后用琴声不等式得到下界,E(φ(x))≥ φ(E(x)),琴声不等式得到的下界会更加松【这是官方说法】更加靠下,所以在迭代上升时,上升空间更多。在优化尺度迭代中同样用到了琴生不等式,
在这里插入图片描述
此时只要等式右边【下界】变大左边一定变大,如果右边是极大值了,左边也一定是极大值了。
在这里插入图片描述
对于一个θi找到最大的θ,也就是最符合θi的参数,将其作为θ(i+1)放入下次迭代。所以对于θi来说,θ(i+1)总是极大的。
在这里插入图片描述
上图中9.17的第二行,是由第一行L(θi)展开以后log加法转乘法与第二项分母相消得来。
至此,Q函数的公式推完了,让我们继续来看E步骤的后续。
在这里插入图片描述
这个公式要注意几点不一样的,对数只取前面一部分。
在这里插入图片描述要放在log的外面。
第二,在这里插入图片描述是一个确定的值,在0到1之间,根据横线λ算出。根据9.17的公式,10.33就是在对隐函数I求期望值。
在这里插入图片描述
这里πi1是初始点,bi1观测概率,o1是当前观测,ai1i2是状态转移概率。把这个代入Q再展开
在这里插入图片描述
λ被展开成三个参数【λ参数的调用就是用到哪个调哪个,但是存放是一起存放的】,log可以吧乘转为加法。

3)M步骤

EM算法的M步,就是分别计算刚刚3项,然后对各项分别极大化,这里统一使用拉格朗日乘子法。
使用拉格朗日乘子法的原因是,拉格朗日乘子法可以对有约束等式求极值,具体在前置内容的b点中。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
上面三个公式最后的结果分别是
在这里插入图片描述
这时我们引入2个变量:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在ζ中使用的前后项的递推计算,所以我们使用
在这里插入图片描述
最后对γ和ζ的期望值进行归纳
在这里插入图片描述
随后我们将γ和ξ代入三个拉格朗日之后的参数公式
在这里插入图片描述
接着得到
在这里插入图片描述
10.39、10.40、10.41便是BW算法流程中的三个公式形式。

三、前置内容

a)条件概率和联合概率

先讲一个知识点,条件概率和联合概率
P(A|B)是在B发生的情况下,A发生的概率
P(A,B)是A,B同时发生的概率
乍一看是一样的。
举个例子
52张扑克牌。我们要找出红色4,红色四分为桃心和方片,所以有两张
P(4|红) 是先分出红黑,再找出4,
在这里插入图片描述
所以P(4|红)=1/13
P(4,红)是在全部牌中分出红色4
P(4,红)= 1/26
因为总池子不一样,条件概率的池子由条件的个数决定,联合概率的池子是不带条件的全体。
但是在不知道准确个数,没法通过比例的方法求解时,条件概率必须通过朴素贝叶斯才能求得,
否则简单相乘求的就是联合概率。

b)拉格朗日乘子法的理解

在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法。在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件。
一般情况下,最优化问题通常是指对于给定的函数f(x),求其在指定作用域上【作用域即约束】的全局最小值(最小值与最大值很容易转化,所以都一样,比如两边求倒数)
具体推导不展开,但是拉格朗日乘子法可以将带有约束的等式转化为无约束等式,这就是在等式约束时使用拉格朗日乘子法的原因。

c)隐数据

上文中E步骤中的隐数据为HMM模型本身自带,因为HMM模型本身就有未知条件和未知参数。

d)完全数据

上文说过完全数据必须要观测和状态同时存在且显式,所以HMM模型是不完全数据,但是如果我们需要确定选用什么样的概率模型,就必须要先假设数据形态为完全数据。举个例子,在上文中完全数据的形态是对数似然函数,所以我们选用对数似然函数作为不完全数据的概率模型。

四、引用

1)李航 (2011). 《统计学习方法》

这篇关于隐式马尔科夫模型中的Baum-Welch算法详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/209133

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了