EM算法的个人理解和推广(纯手写,拒绝转载)

EM算法被称为神学算法,机器学习领域内的十大算法之一,他可以将混合在一起的模型给区分开来,主要用于分类,而且是k-means算法解决不了的问题他都可以解决。
EM算法的全名是Expectation Maximization,中文名叫期望最大化算法,就是寻找一组参数能使这个函数的输出值达到最接近真实值。为什么他被成为神学算法,下面咱们就来聊一聊。
首先咱们来说一下什么是高斯分布,高斯分布又叫正态分布,高斯在计算天体运动的时候用最大似然将正太分布导出来了,首次将正太分布应用于实际生产中,高斯名气也比较大,所以正太分布又叫高斯分布。那咱们来看看他是在什么情况下导出来了这么个东西,到底有啥用。他是假定一个系统的输出值又一个理想值,但系统输出总是和理想值很接近但就是到不到理想值,造成其中误差的原因有很多,这些原因就符合一个高斯分布。下面来看看高斯分布的函数和图形。这里写图片描述
这里写图片描述
公式中的μ称做期望他的值是x的样本加和平均值(至于为什么期望就是平均值,极大似然估计就可以推导出来,令偏导等于0,不仅可以求出期望就是均值而且还可以求出方差就是这里写图片描述),σ**2叫做方差 ,f(x)输出值决定了图形的高度,μ决定了图形的最高点,σ决定了图形的胖瘦(就是靠近中心点的概率密度越小,图形越瘦,反之则越大越胖)。现在不知你有没有发现极大似然和正太分布都是为了能够找到极值点,从而让函数输出最似然,其中他们的微妙联系大家可以思考下,最大似然也属于高斯分布,高斯分布的运算需要极大似然来帮助运算,相辅相成。其实高斯分布遍布我们的生活而最大似然遍布整个的机器学习领域,梯度下降其实也是在求一种最大似然。现在应该明白一些了吧,下面咱们来看看他是如何将三个混合模型分开的,假设模型是高斯模型。
其中用到的知识点有极大似然估计和琴声不等式,那么先把整个的算法流程罗列出来。
构造极大似然函数
L(θ)=∏p(xi;θ)
两边取对数得到下方式子

这里写图片描述
利用琴声不等式求得L(θ)=这里写图片描述
这里写图片描述=常数C,则
求得Q(zi)=P(x属于z|x=xi;θ)
1 随机三组π、μ、σ的三个高斯分布(在这π不是圆周率的意思,而是各个样本占总样本的比例)
2 将样本数据带入这三个高斯分布中,得到三组概率γ(z|xi;θ)i为角标,表示样本从1到n,意思是每条样本在各个分布中抽样到的概率。是三大溜不同的数据
3 根据下方公式
这里写图片描述
将上面求得的三组γ值带入这个公式中,这样可以求的新的三组π、μ、σ。
然后再将这三组π、μ、σ带入原来数据的样本中就又可以得到三组新的γ(z|xi;θ),然后再将得到的新的γ带入上方的式子中就又得到了三组新的π、μ、σ这样循环往复下去会得到很多的π、μ、σ。然后再做循环的时候可以将每一步得到的π、μ、σ都带入到似然函数中,当似然函数取得了最大值时,那么这三组π、μ、σ就是我们要找的三个正太分布的参数
1 假设此混合模型为3个高斯分布混合而成,首先估计出三组π1、μ1,σ1。π2、μ2、σ2 。π3、μ3、σ3 。其中π代表各自所在整个分布中所占的比例,μ为各自的期望,σ代表各自的方差。
下面来一个小游戏,1 现在有一碗混合在一起的黑豆和白豆,假设豆子无限多那你有什么办法能告诉我这里面白豆和黑豆各自所占的比例吗?
2 如果随机抽取一个豆子,只告诉你豆子的周长数据,那你能告诉我这颗豆子属于白豆的概率是多大吗?

猜你喜欢

转载自blog.csdn.net/weixin_42912072/article/details/82106769