机器学习——EM算法

EM算法是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,其中一个为期望步(E步),另一个为极大步(M步),所以算法被称为EM算法(Expectation Maximization Algorithm)。EM算法受到缺失思想影响,最初是为了解决数据缺失情况下的参数估计问题。
例如当两种高斯分布的人混在一块了,我们又不知道哪些人属于第一个高斯分布,哪些属于第二个,所以就没法估计这两个分布的参数。反过来,只有当我们对这两个分布的参数作出了准确的估计的时候,才能知道到底哪些人属于第一个分布,那些人属于第二个分布。所以这里就是说EM估计就是因为多了一个隐含变量(抽取得到的每个样本都不知道是从哪个分布抽取的)使得本来简单的可以求解的问题变复杂了。

EM算法的推导

随机变量 X X X是有 K K K个高斯分布混合而成,取各个高斯分布的概率为 π 1 , π 2 , ⋅ ⋅ ⋅ , π K 。 若 观 测 到 随 机 变 量 \pi_1,\pi_2,···,\pi_K。若观测到随机变量 π1,π2,,πKX$的一系列样本: x 1 , x 2 , . . . , x m x_1,x_2,...,x_m x1,x2,...,xm,包含m个独立样本,希望从中找到该组数据的模型 p ( x , z ) p(x,z) p(x,z)的参数。
对于这样多个高斯分布混合而成的模型,称作高斯混合模型(GMM)。
在这里插入图片描述
取对数似然函数
在这里插入图片描述
由于样本来自不同的高斯分布,我们并不知道每个样本来自哪个分布,因此这个似然函数无法求解。一个方法是考虑隐变量,用z标记样本来自哪个总体,则z就是隐变量,需要最大化的似然函数就变为:
在这里插入图片描述
似然函数求解
z是隐随机变量,不方便直接找到参数估计。策略:计算 l ( θ ) l(\theta) l(θ)下界函数,求该下界的最大值;重复该过程,直到收敛到局部最大值。
在这里插入图片描述
Jensen不等式
在这里插入图片描述
当x为常数时等号成立。

Q i Q_i Qi是z的某一个分布, Q i > = 0 Q_i>=0 Qi>=0,有:
在这里插入图片描述
寻找尽量紧的下界
为了使等号成立:
在这里插入图片描述
在这里插入图片描述
得到 Q ( z ) Q(z) Q(z),大功告成, Q ( z ) Q(z) Q(z)就是 p ( z i ∣ x i ) p(z_i|x_i) p(zixi),或者写成 p ( z i ) p(z_i) p(zi),代表第 i i i个数据是来自 z i z_i zi的概率。

EM算法整体框架
首先,初始化参数θ
(1)E-Step:根据参数 θ θ θ计算每个样本属于 z i z_i zi的概率,这个概率就是 Q Q Q
(2)M-Step:根据计算得到的 Q Q Q,求出含有 θ θ θ的似然函数的下界并最大化它,得到新的参数 θ θ θ;
  重复(1)和(2)直到收敛。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pytorch是一个开源的机器学习框架,它提供了丰富的工具和函数来实现机器学习算法。它支持多种机器学习算法的实现,包括但不限于线性回归、逻辑回归、支持向量机、决策树、随机森林、神经网络等。你可以使用pytorch的内置计算函数或基本的运算符号来进行计算操作,同时pytorch还提供了优化器和损失函数来帮助优化模型的训练过程。 在pytorch中,你可以使用tensor类型的数据进行机器学习算法的实现。如果有批处理的需求,你可以使用dataloader来加载和处理数据。你可以建立模型并完成训练过程,包括前向传播、损失反向传播和参数优化。你还可以使用matplotlib等库进行数据可视化,以便更好地理解和分析模型的结果。 总结起来,pytorch提供了丰富的工具和函数,使得机器学习算法的实现变得简单而高效。你可以根据自己的需求选择合适的算法,并使用pytorch来进行模型的训练和优化。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [机器学习学习源码包含几乎所有机器学习算法pytorch实现源码.zip](https://download.csdn.net/download/DeepLearning_/88195974)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [机器学习PyTorch——1.基本运算](https://blog.csdn.net/qq_52914337/article/details/122377696)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Pytorch机器学习经典算法——线性回归](https://blog.csdn.net/qq_42887663/article/details/125667340)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值