近似推断 - 期望最大化(EM)篇
前言
近似推断是统计学和机器学习中一个至关重要的领域,尤其在处理复杂模型和不完全数据时显得尤为重要。期望最大化( Expectation Maximization \text{Expectation Maximization} Expectation Maximization,简称 EM \text{EM} EM)算法是近似推断中的一种重要方法,它专门用于解决含有隐变量的参数估计问题。在实际应用中,我们常常面临数据不完整或属性缺失的情况,这时传统的参数估计方法便显得力不从心。而 EM \text{EM} EM算法通过迭代的方式,巧妙地利用现有数据对隐变量进行估计,并据此优化模型参数,从而为我们提供了一种有效的解决方案。
序言
EM \text{EM} EM算法的核心思想在于其两个交替进行的步骤: E-step \text{E-step} E-step(期望步骤)和 M-step \text{M-step} M-step(最大化步骤)。在 E-step \text{E-step} E-step中,我们根据当前的参数估计值,计算出隐变量的期望值;而在 M-step \text{M-step} M-step中,我们则利用这些期望值来重新估计模型参数,以最大化似然函数。这两个步骤不断迭代,直至收敛至最优解。这种迭代优化的方式使得 EM \text{EM} EM算法在处理复杂模型和不完全数据时具有显著的优势。
期望最大化
-
我们介绍的第一个最大化下界 L \mathcal{L} L 的算法是期望最大化 ( expectation maximization, EM \text{expectation maximization, EM} expectation maximization, EM) 算法。
- 在潜变量模型中,这是一个非常热门的训练算法。
- 在这里我们描述 Neal and Hinton (1999) \text{Neal and Hinton (1999)} Neal and Hinton (1999) 所提出的 EM \text{EM} EM算法。
- 与大多数我们在本章中介绍的其他算法不同的是, EM \text{EM} EM并不是一个近似推断算法,但是是一种能够学到近似后验的算法。
-
EM \text{EM} EM算法包含了交替进行两步运算直到收敛的过程:
- E \textbf{E} E步 ( expectation step \text{expectation step} expectation step):
- 令 θ ( 0 ) \boldsymbol{\theta}^{(0)} θ(0) 表示在这一步开始时的参数值。
- 对任何我们想要训练的(对所有的或者 minibatch \text{minibatch} minibatch数据均成立)索引为 i i i 的训练样本 v ( i ) \boldsymbol{v}^{(i)} v(i) 令 q ( h ( i ) ∣ v ) = p ( h ( i ) ∣ v ( i ) ; θ ( 0 ) ) q(\boldsymbol{h}^{(i)} \mid \boldsymbol{v}) = p(\boldsymbol{h}^{(i)} \mid \boldsymbol{v}^{(i)}; \boldsymbol{\theta}^{(0)}) q(h(i)∣v)=p(h(i)∣v(i);θ(0))。
- 通过这个定义,我们认为 q q q 在当前参数 θ ( 0 ) \boldsymbol{\theta}^{(0)} θ(0) 下定义。
- 如果我们改变 θ \boldsymbol{\theta} θ,那么 p ( h ∣ v ; θ ) p(\boldsymbol{h} \mid \boldsymbol{v}; \boldsymbol{\theta}) p(h∣v;θ) 将会相应的变化,但是 q ( h ∣ v ) q(\boldsymbol{h} \mid \boldsymbol{v}) q(h∣v) 还是不变并且等于 p ( h ∣ v ; θ ( 0 ) ) p(\boldsymbol{h} \mid \boldsymbol{v}; \boldsymbol{\theta}^{(0)}) p(h∣v;θ(0))。
- M \textbf{M} M步 ( maximization step \text{maximization step} maximization step):
- 使用选择的优化算法完全地或者部分地最大化关于 θ \boldsymbol{\theta} θ 的:
∑ i L ( v i , θ , q ) \sum\limits_i\mathcal{L}(\boldsymbol{v}^{i},\boldsymbol{\theta},q) i∑L(vi,θ,q) — 公式1 \quad\textbf{---\footnotesize{公式1}} —公式1
- 使用选择的优化算法完全地或者部分地最大化关于 θ \boldsymbol{\theta} θ 的:
- E \textbf{E} E步 ( expectation step \text{expectation step} expectation step):
-
这可以被看做通过坐标上升算法来最大化 L \mathcal{L} L。在第一步中,我们更新 q q q 来最大化 L \mathcal{L} L,而另一步中,我们更新 θ \boldsymbol{\theta} θ 来最大化 L \mathcal{L} L。
-
基于潜变量模型的随机梯度上升可以被看做是一个 EM \text{EM} EM算法的特例,其中 M \textbf{M} M步包括了单次梯度操作。
- EM \text{EM} EM算法的其他变种可以实现多次梯度操作。
- 对一些模型族来说, M \textbf{M} M步甚至可以通过推出解析解直接完成,不同于其他方法,在给定当前 q q q 的情况下直接求出最优解。
-
即使 E \textbf{E} E 步采用的是精确推断,我们仍然可以将 EM \text{EM} EM算法视作是某种程度上的近似推断。
- 具体地说, M \textbf{M} M步假设了一个 q q q 分布可以被所有的 θ \boldsymbol{\theta} θ 值分享。
- 当 M \textbf{M} M步越来越远离 E \textbf{E} E步中的 θ ( 0 ) \boldsymbol{\theta}^{(0)} θ(0) 时,这将会导致 L \mathcal{L} L 和真实的 log p ( v ) \log p(\boldsymbol{v}) logp(v) 的差距。
- 幸运的事,当下一个循环时, E \textbf{E} E 步把这种差距又降到了 0 0 0。
-
EM \text{EM} EM算法包含了一些不同的解释。
- 首先,学习过程的一个基本思路就是,我们通过更新模型参数来提高整个数据集的似然,其中缺失变量的值是通过后验分布来估计的。
- 这种特定的性质并不仅仅适用于 EM \text{EM} EM算法。
- 例如,使用梯度下降来最大化似然函数的对数这种方法也利用了相同的性质。
- 计算对数似然函数的梯度需要对隐藏单元的后验分布来求期望。
- EM \text{EM} EM算法另一个关键的性质是当我们移动到另一个 M \textbf{M} M 时候,我们仍然可以使用旧的 q q q。
- 在传统机器学习中,这种特有的性质在推导大 M \textbf{M} M步更新时候得到了广泛的应用。
- 在深度学习中,大多数模型太过于复杂以致于在最优大 M \textbf{M} M步更新中很难得到一个简单的解。
- 所以 EM \text{EM} EM算法的第二个特质,更多为其所独有,较少被使用。
总结
期望最大化算法作为近似推断中的一种重要工具,为我们提供了一种有效的处理不完全数据和隐变量问题的解决方案。通过迭代优化的方式, EM \text{EM} EM算法能够逐步逼近最优解,从而实现对模型参数的准确估计。无论是在科学研究、社会调查,还是在经济学、医学等领域的实际应用中, EM \text{EM} EM算法都展现出了其强大的实用性和灵活性。因此,深入理解和掌握EM算法的原理和应用,对于我们提高数据处理和模型优化的能力具有重要意义。
往期内容回顾
近似推断 - 引言篇
相关文章:

近似推断 - 期望最大化(EM)篇
前言 近似推断是统计学和机器学习中一个至关重要的领域,尤其在处理复杂模型和不完全数据时显得尤为重要。期望最大化( Expectation Maximization \text{Expectation Maximization} Expectation Maximization,简称 EM \text{EM} EM࿰…...

arp欺骗及其实验
ARP欺骗(ARP Spoofing)是一种网络攻击技术,攻击者通过伪造ARP(地址解析协议)消息,将其MAC地址与目标IP地址关联,从而实现对网络流量的截获、篡改或重定向。以下是ARP欺骗的详细信息:…...
HDU The Boss on Mars(容斥原理)
题目大意: ACM 有 n 名员工,现在是他们从老板那里拿薪水的时候了。所有员工都从 1 到 n 编号。原因不明,如果员工的工作编号是 k,他今年可以获得 k^4 Mars 美元。所以为 ACM 工作的员工非常富有。 因为员工人数太多,…...

nnUnet 大模型学习笔记(续):训练网络(3d_fullres)以及数据集标签的处理
目录 1. 数据集处理 1.1 实现脚本 1.2 json文件 2. 设置读取路径 2.1 设置路径 2.2 数据集转换 2.3 数据集预处理 2.4 训练(3d_fullres) 3. 训练结果展示 关于nnUnet 数据集的处理和环境搭建,参考上文:第四章:nnUnet大模…...

Java中的数据结构与集合源码
目录 一、数据结构 1.1 数据结构概念 1.2 研究对象 1.3 常见存储结构 1.3.1 数组 1.3.2 链表 1.单向链表 2.双向链表 1.3.3 二叉树 1.3.4 栈(FILO,先进后出) 1.3.5 队列(FIFO,先进先出) 二、集合…...

Java应用程序的测试覆盖率之设计与实现(三)-- jacoco cli 客户端
一、背景 上文已把覆盖率数据采集好了,并提供远程连接的tcp地址及端口。 jacoco cli文档jacoco cli jar包 jacococli.jar 我下载好了,放在github工程里。 本文主要是介绍如何使用jacoco cli 客户端读取并生成覆盖率报告。 二、使用 1、dump覆盖率统…...

Deepin V23 / 统信UOS 下安装与配置 tftp
几个月前,我将开发系统从 ubuntu 切换到 Deepin,当时写过一篇文章《使用国产操作系统作为开发系统》。几个月下来,没有感觉有什么不适应,Ubuntu 能做的事情,在 Deepin 上都能做。而且有 UOS 应用商店的加持,…...

java基础学习:定时任务常见实现方式
一、Timer解析 TaskQueue:小顶堆,存放timeTask。 TimerThread:任务执行线程 死循环不断检查是否有任务需要开始执行,有就执行它。始终是一个线程在执行。 单线程执行任务,任务有可能相互阻塞: schedul…...

句柄是什么?有什么用?举例说明
在C#编程中,“句柄”(Handle)是一个与操作系统资源相关联的标识符。句柄是一个指针或者索引,用于在程序代码中引用系统资源,如窗口、文件、线程等。由于直接操作这些资源非常危险且复杂,操作系统提供句柄作…...

Jenkins学习笔记
Jenkins学习笔记 NumTitleComments1官网 官方网站 中文文档2基础Jenkins基础3groovy1.groovy语法 2.groovy 入门4pipelinepipeline基本语法介绍5Github actiongithub action6Shared library1 2...

AI 解读软考高级操作系统顺序存取、直接存取、随机存取、相联存取的区别
这几个术语描述了不同类型的存储方式,它们涉及数据存取的顺序和灵活性。为了更好地理解,我们可以先通过生活中的例子来感受这些概念。 生活化例子 1. 顺序存取: 想象你在看一盘录像带(比如老式的VHS录像带)。如果你想…...

STM32烧写准备
目录 一.安装stlink驱动二.烧写器固件升级三.安装烧写程序四.进行测试1.流水灯 五.出现的问题1.升级固件问题2.测试时连接问题 一.安装stlink驱动 amd64是用在64位的,x86用在32位;双击运行即可 出现以下情况表示安装完成当连接上STM32开发板时ÿ…...

为Windows Terminal 配置zsh + Oh-My-Zsh!
参考: 为Windows Terminal 配置zsh Oh-My-Zsh! [非WSL] https://zhuanlan.zhihu.com/p/625583037 Package: zsh - MSYS2 Packages 安装配置 1、安装 Windows Terminal(必须) Method 1: 打开 Microsoft Store,搜索 “Windows Terminal”。点击 “…...

RNN、LSTM 与 Bi-LSTM
一. RNN 循环神经网络(Recurrent Neural Network, RNN)是深度学习领域一类具有内部自连接的神经网络能够学习复杂的矢量到矢量的映射。 最大特点:前面的序列数据可以用作后面的结果预测中。 一个简单的循环神经网络结构,其结构包…...

第一性原理
第一性原理是指从最基本的真理出发,分析和推导复杂现象或问题,不依赖于传统的假设或经验,而是从根本的原则出发进行思考。 将复杂问题拆解为更小的部分,逐一分析。在理解了这些基本部分的基础上,再进行组合和构建&…...

DOM NamedNodeMap 接口详解
DOM NamedNodeMap 接口详解 引言 在文档对象模型(DOM)中,NamedNodeMap 接口提供了一种方式来操作元素的属性集合。它是一种特殊的 NodeList,其中的每个节点都有一个名称和值。本文将详细介绍 NamedNodeMap 接口,包括其属性、方法和使用场景。 NamedNodeMap 接口概述 N…...

EasyExcel自定义下拉注解的三种实现方式
文章目录 一、简介二、关键组件1、ExcelSelected注解2、ExcelDynamicSelect接口(仅用于方式二)3、ExcelSelectedResolve类4、SelectedSheetWriteHandler类 三、实际应用总结 一、简介 在使用EasyExcel设置下拉数据时,每次都要创建一个SheetWr…...

Burp Suite Professional 2024.9 for macOS x64 ARM64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2024.9 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接:https://sysin.org/blog/burp-suite-pro-mac/ 查看最新版。原创作品,转载请保留出处。 作者主页࿱…...

使用Mock库进行依赖注入的实用指南
使用Mock库进行依赖注入的实用指南 在现代软件开发中,测试是确保代码质量的重要环节。尤其是在进行单元测试时,依赖注入(Dependency Injection, DI)是一种常用的设计模式,它可以帮助我们更好地管理依赖关系,提高代码的可测试性。本文将深入探讨如何使用Python的unittest…...

nosql课本习题
nosql题目 1. 文档数据库相比其他 NoSQL 的突出优势和特点是什么? 答案: 文档数据库的突出优势在于它的灵活性和可扩展性。不同于传统的关系型数据库,文档数据库允许存储半结构化和非结构化数据,每个文档可以有不同的字段&#x…...

springboot 3.2.5集成spring security 只放行get请求,其他请求403
环境配置 jdk 17 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.5</version><relativePath/> <!-- lookup parent from repository --></…...

【linux】麒麟v10安装ELKB(ARM架构)
安装elasticsearch 创建目录 #放安装软件的位置 mkdir -pv /software#安装elasticsearch目录 mkdir -pv /usr/local/elasticsearch#安装kibana目录 mkdir -pv /usr/local/kibana 解压elasticsearch tar -zxvf elasticsearch-8.8.1-linux-aarch64.tar.gz -C /usr/local/elast…...

帝国CMS – AutoTitlePic 自动生成文章标题图片插件
帝国CMS – AutoTitlePic 自动生成文章标题图片插件 AutoTitlePic,自动生成文章标题图片插件。功能特点: 1、安装方便、使用简单。老站、新站都能使用。 2、自动生成图片,安装后静默运行。所以本插件也没有预览图片。 3、扩展性强&#x…...

Docker安装Mysql5.7,解决无法访问DockerHub问题
Docker安装Mysql5.7,解决无法访问DockerHub问题 简介 Docker Hub 无法访问,应用安装失败,镜像拉取超时的解决方案。 摘要 : 当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的…...

React中使用Antd开源组件Popover等部分组件原生样式改变问题
1.如果发现某个组件的样式在单独的样式文件中更改不了,得在全局中更改时,我们可以使用一下方法: <Popoverplacement"bottomLeft"title{null}trigger"click"content{contentopic}overlayClassName{pinsInputLess.nop…...

Linux 配置 ssh —— ubuntu
Linux 配置 ssh —— ubuntu 设置 ip 这里我们选择使用系统 DHCP 自动分配的 IP,有些教程推荐使用自定义 IP,但是这样我们就没法上网,所有这里采用自定义 IP 即可 安装并启动 ssh 首先需要安装 ssh: sudo apt-get install op…...

eCAP超声波测距-ePWM电机调速
目录 eCAP超声波测距 整体框架 关键模块 实验效果 PWM电机调速 DRV8833基本介绍 整体框架 eCAP超声波测距 本实验所用的超声波HC-SR04模块如下图所示,左边为正面图,右边为反面图。 HC-SR04基本工作原理: (1)采…...

【K8s】Kubernetes 词汇表
微思网络 厦门微思网络 K8S认证工程师(CKA)备考与学习指南https://mp.weixin.qq.com/s/XsEVpU7dKnJDBopynWW3GQ K8S-CKA课程试听:Container 概述 词汇表 此术语表旨在提供 Kubernetes 术语的完整、标准列表。其中包含特定于 Kubernetes 的技术术语以及…...

高级java每日一道面试题-2024年10月20日-数据库篇[Redis篇]-Redis为什么是单线程的?
如果有遗漏,评论区告诉我进行补充 面试官: Redis为什么是单线程的? 我回答: Redis的单线程模型 Redis在6.0版本之前的设计是基于单线程模型的,这意味着Redis的网络IO和键值对数据的读写操作是由单个主线程来完成的。这种设计选择主要是出于以下几个原因&#x…...

SW-LIMS在化妆品行业稳定性试验中的应用
化妆品的稳定性是提供产品相关质量安全和潜在安全风险评价的一个重要数据来源,能为产品的安全性评估以及安全性预期提供佐证,通过设置产品保质期的边界和相关内容也能为化妆品上市后的监管提供依据。 通过稳定性试验,可以发现化妆品中可能存在的有害物质,避免这些物质在使用过…...