notebook notebook
首页
  • 计算机网络
  • 计算机系统
  • 数据结构与算法
  • 计算机专业课
  • 设计模式
  • 前端 (opens new window)
  • Java 开发
  • Python 开发
  • Golang 开发
  • Git
  • 软件设计与架构
  • 大数据与分布式系统
  • 常见开发工具

    • Nginx
  • 爬虫
  • Python 数据分析
  • 数据仓库
  • 中间件

    • MySQL
    • Redis
    • Elasticsearch
    • Kafka
  • 深度学习
  • 机器学习
  • 知识图谱
  • 图神经网络
  • 应用安全
  • 渗透测试
  • Linux
  • 云原生
面试
  • 收藏
  • paper 好句
GitHub (opens new window)

学习笔记

啦啦啦,向太阳~
首页
  • 计算机网络
  • 计算机系统
  • 数据结构与算法
  • 计算机专业课
  • 设计模式
  • 前端 (opens new window)
  • Java 开发
  • Python 开发
  • Golang 开发
  • Git
  • 软件设计与架构
  • 大数据与分布式系统
  • 常见开发工具

    • Nginx
  • 爬虫
  • Python 数据分析
  • 数据仓库
  • 中间件

    • MySQL
    • Redis
    • Elasticsearch
    • Kafka
  • 深度学习
  • 机器学习
  • 知识图谱
  • 图神经网络
  • 应用安全
  • 渗透测试
  • Linux
  • 云原生
面试
  • 收藏
  • paper 好句
GitHub (opens new window)
  • 深度学习

  • 机器学习

    • 吴恩达-机器学习

    • 浙大胡浩基-机器学习

    • 莫烦-机器学习算法的数学解析与 Python 实现

    • 李航-统计学习方法

      • 机器学习及监督学习概论
      • 感知机
      • k 近邻法
      • 朴素贝叶斯法
      • EM 算法
        • 1. EM 算法的引入
          • 1.1 三硬币模型的例子
          • 1.2 EM 算法
          • 1.3 EM 算法的导出
        • 2. EM 算法的收敛性
    • 李沐-实用机器学习

  • 知识图谱

  • AI
  • 机器学习
  • 李航-统计学习方法
yubin
2022-12-19
目录

EM 算法

极大似然估计要解决的问题是,当有一堆观测数据 ,并知道它们服从的概率分布形式(比如服从二项分布) 时,求出使得 likelihood 最大化的 ,即 。而 EM 算法解决的就是含有 latent variable 时的极大似然估计问题。

# 1. EM 算法的引入

# 1.1 三硬币模型的例子

一个介绍 EM 算法的例子。

三硬币模型 假设有 3 枚硬币:A、B、C,它们正面朝上的概率分别是 、、,然后做如下投硬币的实验:先扔 A,若 A 朝上则再扔 B,朝下则再扔 C,也就是说第二步仍谁是取决于 A 朝上还是朝下;第二步掷硬币的结果作为本次实验的观察结果,正面记为 1,反面记为 0。独立重复 n 次试验(这里 n = 10),观察结果如下:

1, 1, 0, 1, 0, 0, 1, 0, 1, 1

我们只能观察最终的结果,但不知道每一次实验中是 A 朝上还是朝下,也就是不知道投的是 B 硬币还是 C 硬币。现在的任务是估计三枚硬币分别朝上的概率 、、。

解 我们知道将一枚硬币抛出,朝上朝下是服从二项分布的。现在我们:

  • 令 Y 表示 observable variable,表示一次试验的结果是 0 或 1。
  • 硬币 A 的投掷结果记为 Z,表示 latent variable,它无法直接被观测到。
  • 模型参数 ,即这三枚硬币朝上的概率,我们的任务就是要估计它的值。

注意,随机变量 Y 是可以观测的,而 Z 无法被观测到,也就是说我们不知道在一次试验中 A 的投掷结果,只知道最终 B 或 C 的投掷结果。

观测到的数据表示为 ,未观测到的数据表示为 ,那么似然函数就是:

上面的式子就是对每个观测数据的连乘。按照极大似然估计的方法,往往转换成对数的形式,因此对数似然函数写成:

而我们的目标就是找出能够最大化 的 :

由于里面存在 latent variable,这个问题是没有解析解的,只有通过迭代的方法来求解。EM 算法就是可以用于求解这个问题的一种迭代算法。

无法直接求解的原因在于,这里的 P(Y) 根本不知道是什么,因为所观测到的样本非常复杂,所以我们可以先假定它服从某个模型,即有一个生成模型,z -> y,然后 。通过人为引入一个 latent variable z,然后做出 Z -> Y 的假设,这样求 就使得问题具体化了。

# 1.2 EM 算法

一般地,用 Y 表示观测随机变量的数据,Z 表示隐随机变量的数据。Y 和 Z 连在一起称为完全数据(complete-data),观测数据 Y 又称为不完全数据(incomplete-data)。

EM 算法通过迭代求出极大似然估计 的结果。每轮迭代分成 E 步和 M 步。

首先介绍一个概念:Q function:

Q function

完全数据的对数似然函数 关于在给定观测数据 Y 和当前估计的参数值 下,对未观测数据 Z 的条件概率分布 的期望称为 Q function,即:

  • Q function 是 EM 算法的核心,最好把 Q function 的定义背下来。
  • 这里之所以对 Z 积分,主要是可以实现将隐变量 z 给去掉。

下面正式介绍 EM 算法:

EM Algorithm

input:观测变量数据 Y,隐变量数据 Z,联合分布 ,条件分布

output:模型参数 的估计值

  1. 选择参数的初值 ,开始迭代。
  2. Expectation:记 为第 i 论迭代参数 的估计值,在第 i+1 次迭代的 E 步,写出 Q function:。
  3. Maximization:求能够 maximize 的 ,作为本轮(即第 i+1 论)的参数估计值 :

  1. 重复 E 步和 M 步,直到收敛。

下面对 EM 算法做几点说明:

  • EM 算法是初值敏感的,即选择不同的初值可能得到不同的参数估计值。
  • Q function 中, 的第一个变元表示要极大化的参数,是一个变量,而第二个变元表示参数的当前估计值,是一个常数。
  • 可以证明,这个迭代过程是可以收敛的。
  • EM 算法的计算过程中,迭代停止的条件一般是设置一个阈值,当 的估计值变化小于阈值时停止,或者:

# 1.3 EM 算法的导出

见原书

# 2. EM 算法的收敛性

反正是可以收敛的,证明也不难,见原书。

编辑 (opens new window)
上次更新: 2022/12/21, 07:46:42
朴素贝叶斯法
Model Combination(Bagging & Boosting, etc)

← 朴素贝叶斯法 Model Combination(Bagging & Boosting, etc)→

最近更新
01
Deep Reinforcement Learning
10-03
02
误删数据后怎么办
04-06
03
MySQL 一主多从
03-22
更多文章>
Theme by Vdoing | Copyright © 2021-2024 yubincloud | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×