EM算法及其推广---《统计学习方法》第9章

2023-10-29

EM算法是一种迭代算法,用于含有隐变量概率模型参数的极大似然估计,或极大后验概率估计。EM算法的每次迭代由两步组成:E步求期望值,M步求最大值。
(EM算法是一种对模型参数的估计,该模型中含有隐变量)

EM算法的引入

EM算法

概率模型有时既含有观测变量,又含有隐变量或潜在变量。如果概率模型的变量都是观测变量,那么就可以通过极大似然估计或贝叶斯估计法估计模型参数。但是,当模型中含有隐变量的时候,就不能简单的使用这些估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。
观测数据的似然函数:

P(Y|θ)=zP(z|θ)P(Y|z,θ) P ( Y | θ ) = ∑ z P ( z | θ ) P ( Y | z , θ )
对似然函数求最大值的结果就是参数 θ θ 的极大似然估计。也就是对数似然函数 L(θ)=logP(Y|θ) L ( θ ) = log ⁡ P ( Y | θ ) 的极大似然估计。
EM算法与初值的选择有关,选择不同的初值可能得到不同的参数估计值。
(Q函数)完全数据的对数似然函数 logP(Y,Z|θ) l o g P ( Y , Z | θ ) 关于在给定观测数据Y和当前参数 θ(i) θ ( i ) 下对未观测数据Z的条件概率分布 P(Z,Y|θ(i)) P ( Z , Y | θ ( i ) ) 的期望称为Q函数,即
Q(θ,θ(i))=Ez[logP(Y,Z|θ)|Y,θ(i)] Q ( θ , θ ( i ) ) = E z [ log ⁡ P ( Y , Z | θ ) | Y , θ ( i ) ]

EM算法的导出

EM算法是通过不断求解下界(对数似然函数的下界)的极大化逼近求解对数似然函数极大化的算法。

EM在非监督学习中的应用

EM算法可以用于生成模型的非监督学习。生成模型由联合概率分布P(X,Y)表示,可以认为非监督学习训练数据是联合概率分布产生的数据,X为观测数据,Y为未观测数据。

EM算法的收敛性

定理1 设 PY|θ P ( Y | θ ) 为观测数据的似然函数, θ(i) θ ( i ) 为EM得到的参数估计序列, PY|θ(i) P ( Y | θ ( i ) ) 为对应的似然函数序列,则 PY|θ(i) P ( Y | θ ( i ) ) 是单调递增的。
初值的选择十分重要,常用的方法是选择几个不同的初值进行迭代,然后对得到的各个估计值加以比较,从中选择最好的。

EM算法在高斯混合模型学习中的应用

EM算法的一个重要应用是高斯混合模型(Gaussian misture model, GMM)的参数估计。

EM算法的推广

F函数
GEM函数

相关问题总结

1.EM算法的由来/原理
我们面对一个含有隐变量的概率模型,目标是极大化观测数据(不完全数据)关于参数 θ θ 的对数似然函数,但是这一极大化的困难是在计算过程中有未观测数据并有包含和(或积分)的对数。那么EM算法通过迭代不断求解下界的极大化逼近求解对数似然函数极大化的算法。
2.算法的过程;
1)选择参数初值
2)E步:确定Q函数,也就是求出完全数据的对数自然函数关于在给定观测数据Y和当前参数下对未观测数据的条件概率分布 P(Z,Y|θ(i)) P ( Z , Y | θ ( i ) ) 的期望
3)M步:求Q函数的极大值,得出第i+1次迭代的参数的估计值。
4)重复2-3步直到收敛。
3.采用EM算法求解的模型有哪些?为什么不用牛顿法或者梯度下降法?
一般有混合高斯、协同过滤、k-means。算法一定会收敛,但是可能会收敛到局部最优。EM算法是一种非梯度下降算法,解决了梯度下降等优化方法的缺陷:求和的项数将随着隐变量的数目以指数级上升,会给梯度计算带来麻烦)。
4.用EM算法推导解释K-means:
k-means算法是高斯混合聚类在混合成分方差相等,且每个样本仅指派一个混合成分时候的特例。k-means中每个样本所属的类就可以看成是一个隐变量。
在E步中,我们固定每个类的中心,通过对每一个样本选择最近的类优化目标函数;在M步,重新更新每个类的中心点,该步骤可以通过对目标函数求导实现,最终可得新的类中心就是类中样本的均值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EM算法及其推广---《统计学习方法》第9章 的相关文章

  • 【机器学习算法-python实现】逻辑回归的实现(LogicalRegression)

    转载请注明出处 xff1a http blog csdn net buptgshengod 1 背景知识 在刚刚结束的天猫大数据s1比赛中 xff0c 逻辑回归是大家都普遍使用且效果不错的一种算法 xff08 1 xff09 回归 先来说说
  • 机器学习算法——K-近邻算法(代码实现手写数字识别)

    0 引言 xff0c K 近邻算法是一种非常有效的分类算法 xff0c 它非常有效且易于掌握 原理 xff1a K 近邻算法通过计算不同样本之间的距离来分类物品 使用前 xff0c 我们需要有一个训练样本集 xff0c 并且样本集中每个数据
  • CNN的重点整理

    1 常用的非线性激活函数 sigmoid tanh relu等等 前两者sigmoid tanh比较常见于全链接层 后者relu常见于卷积层 这里先简要介绍下最基础的sigmoid函数 btw 在本博客中SVM那篇文章开头有提过 sigmo
  • 变分推断(Variational Inference)解析

    一 什么是变分推断 假设在一个贝叶斯模型中 x x x为一组观测变量 z z z为一组隐变量 参数也看做随机变量 包含在 z
  • 算法实践1_线性回归

    参数解释 sklearn linear model LinearRegression fit intercept True normalize False copy X True n jobs None 超参 解释 类型 默认值 fit i
  • 转置卷积(Transposed Convolution)

    目录 1 卷积操作及转置卷积的定义 1 1 卷积操作 1 2 转置卷积 1 3 转置卷积的步骤 2 转置卷积的理解 2 1 stride 1转置卷积的理解 2 1 1 一维形式 2 1 2 二维形式 2 1 3 公式计算 2 2 strid
  • 加权随机抽样算法

    1 基于均匀分布概率的算法 例如 3等奖抽中的概率是70 2等奖是20 1等奖是10 这样 大部分人都只能中3等奖 小部分人是二等奖 而只有特别少的人才可能拿到一等奖 产生0 100之间的均匀分布的随机数 当随机数在0 70时 就获得3等奖
  • 树形算法

    树形算法 adaboost GBDT 回归问题 XGBOOST lightgbm bagging和boosting 区别 adaboost 二分类问题 给定一个数据集T x1 y1 x2 y2 xn yn 其中y取1和 1 权值初始化 D1
  • 机器学习二-kmeans-kdtree

    机器学习纯java代码 点击打开链接 KD树介绍http www pelleg org shared hp kmeans html 我们的数据集也是从5高斯分布中随机生成的8000个点 你应该看到底层的Gaussians 蓝色边界表示 根
  • 机器学习算法(二十四):最近邻算法 KNN(k-nearest neighbor)

    目录 1 基于实例的学习 2 k 最近邻法 2 1 算法概述 2 2 kNN算法的一般流程 2 3 距离公式 2 4 k值的选择 2 5 KNN特点 2 5 1 特点 2 5 2 KNN算法的优势和劣势 3 距离加权最近邻算法 k 最近邻算
  • 【深度学习】常见优化算法

    本文介绍常见的一阶数值优化算法 这些方法在现代神经网络框架 tensorflow caffe torch 中已经是标准配置 问题 设系统参数为 omega 对于样本 i i i 其代价函数为
  • 推荐系统详解

    1 基于内容的推荐系统 1 基于内容的推荐算法概述 基于内容的推荐算法 Content based Recommendations CB 也是一种工业界应用比较广的一种推荐算法 由于协同过滤推荐算法中仅仅基于用户对于商品的评分进行推荐 所以
  • 机器学习算法(二十三):DTW(Dynamic Time Warping,动态时间调整)

    目录 1 DTW 动态时间调整 2 算法的实现 3 例子 4 python实现 5 DTW的加速算法FastDTW 5 1 标准DTW算法 5 2 DTW常用加速手段 5 3 FastDTW 1 DTW 动态时间调整 动态时间调整算法是大多
  • SVM算法笔记(2)

    线性可分支持向量机与硬间隔最大化 1 线性可分支持向量机 一般地 训练数据线性可分 存在无穷个分离超平面可将两类数据正确分开 感知机利用误分类最小的策略 求得分离超平面 解有无穷多个 线性可分支持向量机利用间隔最大化求最优分离超平面 解唯一
  • FP-growth算法(仅理解部分,代码待更新)

    FP growth算法 仅理解部分 代码待更新 1 简介 2 构建FP树 2 1 FP树简介 2 2 FP树的构建步骤 2 3 FP树的构建实例 step1 扫描数据集 对所有元素项的出现次数进行计数 step2 去掉不满足最小支持度的元素
  • Transformer详解

    Transformer 什么是transformer 为什么需要用transformer encoder sub encoder block multi head self attention FFN input decoder input
  • 【BERT类预训练模型整理】

    BERT类预训练模型整理 1 BERT的相关内容 1 1 BERT的预训练技术 1 1 1 掩码机制 1 1 2 NSP Next Sentence Prediction 1 2 BERT模型的局限性 2 RoBERTa的相关内容 2 1
  • pandas数据判断是否为NaN值的方式

    实际项目中有这样的需求 将某一列的值 映射成类别型的数据 这个时候 需要我们将范围等频切分 或者等距切分 具体的做法可以先看某一些特征的具体分布情况 然后我们选择合适的阈值进行分割 def age map x if x lt 26 retu
  • kaggle:泰坦尼克生存预测( R语言机器学习分类算法)

    本文在基本的多元统计分析技术理论基础上 结合机器学习基本模型 选择Kaggle 数据建模竞赛网站 的入门赛 Titanic生存预测作为实战演练 较为完整地呈现了数据建模的基本流程和思路 采用的模型有逻辑回归 决策树 SVM支持向量机以及进阶
  • 用KNN(K近邻算法)和ANN(人工神经网络)建立预测模型

    数据 输入 32 维的向量 输出一个值 有151组这样的数据 目的 用这样一组数据建立一个预测模型 输入32维的向量就能预测一个值 代码部分 1 导入工具包 在import pandas as pd import seaborn as sn

随机推荐

  • Python构建SVM分类器(线性)

    1 SVM建立线性分类器 SVM用来构建分类器和回归器的监督学习模型 SVM通过对数学方程组的求解 可以找出两组数据之间的最佳分割边界 2 准备工作 我们首先对数据进行可视化 使用的文件来自学习书籍配套管网 首先增加以下代码 import
  • 腾讯云阿里云服务器被打进黑洞怎么办

    当腾讯云腾讯云服务器被打进黑洞了我们该怎么办 首先我们要知道以下的这些 黑洞 是什么 黑洞是指服务器受攻击流量超过本机房黑洞阈值时 云计算服务商屏蔽服务器的外网访问 当服务器进入黑洞一段时间后 如果系统监控到攻击流量停止 黑洞会自动解封 进
  • 程序员微信名昵称_微信名字大全

    微信名字 好听的微信名字大全 只求一份安定 无可置疑 吥 恠侑嗳 丶演绎悲伤 一生承诺 简单灬爱 流年灬未亡 舞动D 灵魂 别在我面前犯贱 没有背景丶只有背影 乂日光倾城 丶猫猫er 雪花 飞舞 在哪跌倒 就在哪躺下 淡抹丶悲伤 稀饭你的笑
  • 考研算法题:最短边数最短路

    题目 一个图有很多条最短路 求所有最短路里面的边数最少的最短路的边数 思路1 先求最短路 然后BFS倒推寻找最短边数的最短路的边数 找到直接返回cnt值 include
  • 机器学习- CS 760 Machine Learning

    代码后台私我
  • 【Spring】ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) 问题解决

    1 概述 转载 ERR INCOMPLETE CHUNKED ENCODING 200 OK 问题解决 我是在做这个项目的时候遇到这个报错 Spring Spring 网络原因导致日志下载失败 2 简述 浏览器调用接口报错 net ERR
  • Python使用threading.Timer实现执行可循环的定时任务

    前言 Python中使用threading Timer执行定时任务时 执行任务是一次性的 类似于JS中的setTimeout方法 我们对其在封装 改造成可循环的定时器 类似于JS中setInterval方法的效果 值得注意的是 thread
  • 关于distinct——去除重复记录

    distinct译为 不同的 有区别的 在SQL语句中表示去除重复记录的意思 举例 在员工表emp中查询所有的工作岗位 分析 在员工表中的工作岗位字段下有重复的工作岗位 我们在查询的时候就希望将重复的工作岗位显示出一个来就行 在不使用关键字
  • 【模块介绍】6×6矩阵键盘(硬件部分和扫描方式)

    目录 概述 原理图 扫描方式 扫描法 单个按键按下 多个按键按下 行反转法 图解 成品 概述 矩阵键盘非常常见 就是利用键盘组成矩阵来减少IO口的使用 做成6 6的矩阵键盘可以使用12个IO口读取36个按键 矩阵键盘的优势在于成本低 无需其
  • Java中switch case的使用

    Java switch case语句 switch case用来判断一个变量与一系列值中某个值是否相等 每个值称为一个分支 switch case规则 switch语句中变量类型可以是 byte short int char 从Java S
  • 网上疯传的《阿里Java架构师成长之路》!,网友瞬间沸腾了

    工作1 5年开发经验 当你们提出涨工资的时候 或者要offer的时候底气怎么样 是不是底气十足 不给涨工资就辞职 是不是有自信提出来主管 或者是项目经理都能同意 他们相当设法把你留住 如果这样你才是成功 什么技术都没有何谈工资 给你分析一下
  • Algo_math、判断两圆包含

    给定一个圆A X Y 圆心 R为半径 圆B x y 圆心 r为半径 判断 圆B 是否在 圆A 的内部 上图 则不包含 等价于 绿线长度 lt R X x
  • Java面试题详解:什么是面向对象编程

    参考答案 一般我们可以围绕面向对象的几个特征去展开 封装 继承 抽象 多态 个人理解 面向对象编程有点类似于数学建模 一般用于解决一个复杂的问题 解决这个问题通常涉及到多个物理或抽象概念 并且它们之间会有各种关系及交互行为 面向对象编程其实
  • boost.asio服务器使用io_service作为work pool

    使用io service作为处理工作的work pool 可以看到 就是通过io service post投递一个Handler到io service的队列 Handler在这个io service run内部得到执行 有可能你会发现 io
  • linux下查看谁在用显卡

    一般查看显卡的使用情况使用的命令为 nvidia smi 但是这个只能输出显卡的占用及进程 看不到谁在用 信息如下 但是可以借助上面的PID信息 查看对应的进程是谁调用的 命令为 ps f p 4417 其中4417就是上图中的其中一个PI
  • 激活函数---Sigmoid、Tanh、ReLu、softplus、softmax

    激活函数 就是在神经网络的神经元上运行的函数 负责将神经元的输入映射到输出端 常见的激活函数包括 Sigmoid TanHyperbolic tanh ReLu softplus softmax 这些函数有一个共同的特点那就是他们都是非线性
  • 数据结构:树的概念和结构

    文章目录 1 树的概念 2 树的结构 3 树的相关概念 4 树的表示 孩子表示法 双亲表示法 孩子兄弟表示法 5 树在实际中的应用 1 树的概念 树是一种非线性的数据结构 它是由 n n gt 0 个有限结点组成一个具有层次关系的 把它叫做
  • TCP —— TCP连接的建立与释放

    一 TCP连接管理 在TCP连接建立的过程中 要解决以下三个问题 要使每一方都能够确知对方的存在 要允许双方协商一些参数 如最大窗口值 是否使用窗口扩大选项 时间戳选项及服务质量等 能够对运输实体资源 如缓存大小 连接表中的项目等 进行分配
  • echarts 暂无数据的完美解决办法

    前景 很简单的一个思想 我希望没有数据的时候 不显示图表 并且用empty来替换 但是直接使用v if 会出错 因为调用的时候 拿不到dom了 v if直接把dom干掉了 怎么办呢 直接上步骤 1 第一步 我们应该在每次点击按钮的时候 发送
  • EM算法及其推广---《统计学习方法》第9章

    EM算法是一种迭代算法 用于含有隐变量的概率模型参数的极大似然估计 或极大后验概率估计 EM算法的每次迭代由两步组成 E步求期望值 M步求最大值 EM算法是一种对模型参数的估计 该模型中含有隐变量 EM算法的引入 EM算法 概率模型有时既含