Machine Learning-L15-EM算法全解析(下)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: Machine Learning-L15-EM算法全解析(下)

2 EM算法


2.1 算法描述


输入:观测变量数据X = ( x ( 1 ) , x ( 2 ) , . . . x ( m ) ,隐变量数据Z = ( z ( 1 ) , z ( 2 ) , . . . z ( m ) 输出:模型参数θ


观测数据X 又称不完全数据(incomplete-data),其概率分布是P ( X ∣ θ

X 和Z连在一起称完全数据(complete data),其联合概率分布是P ( Y , Z ∣ θ )


优化目标:

最大化观测数据X关于参数θ 的对数似然函数:

image.png



image.png


2.2 推导过程


image.png



image.png


由于Q i ( zi ) 是一个分布,满足


image.png

image.png

通过极大化包含隐藏数据的对数似然的下界,从而极大化对数似然$ L(\theta)$。

此时,优化目标成为:


image.png

去掉常数部分


image.png


上式也就是EM算法的M步。


E步则是log ⁡ P (x i, zi ; θ )基于条件概率分布Q i (zi ) )的期望。


2.3 算法步骤


EM通过迭代的方式逐步逼近L ( θ )的极大值(反复构造新的下界): j jj次迭代后θ 的估计值为θ j ,希望新的估计值θ j + 1

能使L ( θ ) 的值增加,即L ( θ j + 1 ) > L ( θ j )。


具体步骤如下:


选泽参数初始值θ 0 。

E步:计算联合分布的条件概率期望,完全数据的对数似然函数log ⁡ P ( X , Z ∣ θ )在给定观测数据X 和当前参数θ j下对未观测数据Z ZZ的条件概率分布P ( Z ∣ X , θ j ) 的期望:


image.png


其中,


image.png

M步:求第j + 1次迭代的参数估计值θ j + 1 :

image.png

重复EM步,直至满足收敛条件,

一般给出较小的正数ε 1 , ε 2,若满足


image.png

则停止迭代,输出此时的θ值。

L函数是EM算法的核心(有的教材中称其为Q QQ函数),每次迭代实际在求期望(E-步)及其极大化(M-步),实现参数θ j → θ j + 1 的更新,使似然函数增大或达到局部极值。


另一种理解


EM算法还可以看做用坐标下降法来最大化对数似然下界的过程,从而得到对数似然函数取得极大值时的参数估计,也就是极大似然估计的过程。

在迭代的过程中,每次固定一个变量,对另外的求极值,最后逐步逼近极值:


E步:固定θ ,优化L

M步:固定L,优化θ

交替将极值推向最大。


2.4 算法的收敛性


可以证明:

image.png

EM算法可以收敛到局部极大值,但是却不能保证收敛到全局的极大值,因此它是局部最优的算法。当然,如果我们的优化目标L ( θ , θ j ) 是凸的,则EM算法可以保证收敛到全局最大值,这点和梯度下降法相同。


3 EM算法与非监督学习

监督学习中,训练数据( x 1  , Y1) , ( x 2 ,Y2) , . . . , ( x ( m ) , y ( m ) ) 中的每个样本点由输入和输出对组成,通过学习决策函数y = f ( x ) (判别模型)或学习条件概率分布P ( y ∣ x ) (生成模型),实现数据的分类及回归。

非监督学习中,训练数据( x 1 , ) , (x 2  , ) , . . . , ( Xm , ) 中每个样本点只有输入没有对应的输出,如聚类。

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


EM算法是一种框架,逼近统计模型参数的最大似然或最大后验估计。


K-Means可以看做一种Hard EM算法,


E步:给定当前簇中心,每个对象都被指派到簇中心离该对象最近的簇(期望每个对象都属于最近的簇)。

M步:给定指定簇,对于每个簇,算法调整其中心,使得指派到该簇的对象到该中心的距离之和最小化(指派到一个簇的对象的相似度最大化)。

K-Means是模糊聚类的一种特例(隐变量是存在分布的),在模糊或基于概率模型的聚类,EM算法从初始参数出发,并且迭代直到不能改善聚类(聚类收敛或改变充分小)。


E-步:根据当前模糊聚类或概率簇的参数,把对象指派到簇中。

M-步:发现新的聚类或参数,最小化模糊聚类的SSE或基于概率模型的期望似然。


4 EM算法应用于高斯混合模型学习


4.1 高斯混合模型


高斯混合模型(Gaussian misture model)指具有如下形式的概率分布模型:


image.png


其中,α j ≥ 0 是系数,image.png

ϕ(xθj)为高斯分布密度image.png

image.png


称为第j 个分模型。


4.2 高斯混合模型参数估计


假设观测数据x 1 , x 2 , . . . , x m 高斯混合模型


image.png

生成,其中模型参数image.png

可以设想观测数据x 1 , x 2 , . . . , x m产生过程如下:


首先根据概率α j选择第j 个高斯分布模型ϕ ( x ∣ θ j )然后根据第j 个模型的概率密度函数ϕ ( x ∣ θ j ) 生成观测数据x i 。

执行上述过程m 次来生成观测数据。


反映观测数据x i 来自第j个模型的隐变量γ 是未知的,定义如下:


image.png

γ ij是0-1随机变量。


E步:根据当前模型参数,计算模型i ii对观测数据y i  的响应度:


image.png

M步:计算新一轮迭代的模型参数:


image.png


EM算法还可以解释为F函数(F function)的极大-极大算法(maximization-maximization algorithm),基于这个解释有若干变形与推广,如广义期望极大算法(GEM,Generalized Expectation Maximization)


附:数学基础


(1)Jensen不等式


如果f ff是凸函数,X 是随机变量,则f ( E [ X ] ) ⩽ E [ f ( X ) ] f(E[X]) ,特别地,如果f ff是严格凸函数,那么等号成立当且仅当P ( x = E [ X ] ) = 1 时(X 是常量);

如果f是凹函数,X 是随机变量,则f ( E [ X ] ) ⩾ E [ f ( X ) ] f(E[X]),特别地,如果f ff是严格凹函数,那么等号成立当且仅当P ( x = E [ X ] ) = 1时(X 是常量);

当f 是(严格)凹函数当且仅当− f 是(严格)凸函数。

20200406233842407.png


函数f ff是凸函数,X 是随机变量,有0.5的概率是a ,有0.5的概率是b 。X 的期望值E ( x )就是( a + b ) / 2 (,可以看出E [ f ( X ) ] ⩾ f ( E [ X ] ) 成立。


(2) 坐标下降法


坐标下降法是一种对多个参数分步迭代最终得到目标函数局部极大值(极小值)的方法

如求目标函数f ( μ , θ ) 极值,可给定初值θ  ,然后分别计算:

image.png

显然,

image.png

不断迭代后,f ( μ i + 1 , θ i ) 的值也逐渐逼近f m a x ,此时θ i 和μ i + 1  即为参数估计的值。


相关文章
|
1月前
|
算法 前端开发 数据处理
小白学python-深入解析一位字符判定算法
小白学python-深入解析一位字符判定算法
48 0
|
1月前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
44 3
|
1月前
|
搜索推荐 算法
插入排序算法的平均时间复杂度解析
【10月更文挑战第12天】 插入排序是一种简单直观的排序算法,通过不断将未排序元素插入到已排序部分的合适位置来完成排序。其平均时间复杂度为$O(n^2)$,适用于小规模或部分有序的数据。尽管效率不高,但在特定场景下仍具优势。
|
20天前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
57 4
|
21天前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
1月前
|
机器学习/深度学习 算法 PyTorch
Pytorch-RMSprop算法解析
关注B站【肆十二】,观看更多实战教学视频。本期介绍深度学习中的RMSprop优化算法,通过调整每个参数的学习率来优化模型训练。示例代码使用PyTorch实现,详细解析了RMSprop的参数及其作用。适合初学者了解和实践。
41 1
|
1月前
|
前端开发 算法 JavaScript
无界SaaS模式深度解析:算力算法、链接力、数据确权制度
私域电商的无界SaaS模式涉及后端开发、前端开发、数据库设计、API接口、区块链技术、支付和身份验证系统等多个技术领域。本文通过简化框架和示例代码,指导如何将核心功能转化为技术实现,涵盖用户管理、企业店铺管理、数据流量管理等关键环节。
|
1月前
|
机器学习/深度学习 算法 PyTorch
Pytorch-SGD算法解析
SGD(随机梯度下降)是机器学习中常用的优化算法,特别适用于大数据集和在线学习。与批量梯度下降不同,SGD每次仅使用一个样本来更新模型参数,提高了训练效率。本文介绍了SGD的基本步骤、Python实现及PyTorch中的应用示例。
42 0
|
1月前
|
机器学习/深度学习 传感器 算法
Pytorch-Adam算法解析
肆十二在B站分享深度学习实战教程,本期讲解Adam优化算法。Adam结合了AdaGrad和RMSProp的优点,通过一阶和二阶矩估计,实现自适应学习率,适用于大规模数据和非稳态目标。PyTorch中使用`torch.optim.Adam`轻松配置优化器。
49 0
|
1月前
|
存储 搜索推荐 算法
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
下一篇
无影云桌面