大数据经典算法EM算法 讲解
- 格式:pdf
- 大小:1.39 MB
- 文档页数:26
"EM" 可以表示不同的概念,具体的计算公式取决于你所指的具体问题或领域。
以下是一些与"EM" 相关的常见计算公式:1. **期望最大化算法(Expectation-Maximization, EM)**:EM算法用于估计具有潜在变量的概率模型参数。
它通常包括两个主要步骤:E步骤(Expectation)和M步骤(Maximization)。
EM算法的计算公式涉及到概率密度函数和最大似然估计,具体的公式可能会根据问题的不同而变化。
通常情况下,EM算法的更新规则如下:- **E步骤(Expectation)**:计算在给定当前参数下,潜在变量的条件期望值。
- **M步骤(Maximization)**:使用条件期望值来更新模型的参数以最大化似然函数。
2. **电磁场计算**:在电磁学领域,计算电场或磁场的公式可以根据具体问题而变化。
例如,计算电场强度E的公式可以使用库仑定律:- E = k * |q| / r^2其中,E表示电场强度,k是电场常数,q是电荷量,r是距离。
3. **能量质量等效性(E=mc²)**:这是爱因斯坦的质能等效性公式,用于计算物质的能量与其质量之间的关系。
公式为:- E = m * c²其中,E表示能量,m表示质量,c表示光速。
4. **教育评估中的期望值(Expected Value)**:在教育评估中,期望值通常用于计算学生或测试结果的平均得分。
期望值的计算公式为:- E(X) = Σ (x * P(x))其中,E(X)表示期望值,x表示可能的得分,P(x)表示每个得分发生的概率。
EM算法-完整推导前篇已经对EM过程,举了扔硬币和⾼斯分布等案例来直观认识了, ⽬标是参数估计, 分为 E-step 和 M-step, 不断循环, 直到收敛则求出了近似的估计参数, 不多说了, 本篇不说栗⼦, 直接来推导⼀波.Jensen 不等式在满⾜:⼀个 concave 函数, 即形状为 "⋂" 的函数f(x)λj≥0∑jλj=1 类似于随机变量的分布的前提条件下, 则有不等式:f(∑jλj x j)≥∑jλj f(x j)恒成⽴, 则该不等式称为 Jensen 不等式. 是有些不太直观哦, (sum 是最后哦, 有时候会犯晕).为了更直观⼀点, 考虑λ只有两个值, 即:λ1=1−tλ2=1其中,0⩽"\bigcap" 函数 f(x) 中有⼀段区间 [a, b], 构造出该范围内的⼀个点x_t当, x_t = (1+t)a + tb则有:f((1-t)a +tb) \ge (1-t)f(a) + tf(b)这⾥跟之前写过的 convex 其实是⼀模⼀样的, 要是还不直观, 就⾃个画个草图就秒懂了.左边是函数的值, 右边连接两个端点a,b的函数值的直线, 因为是 "\bigcap 的", 故函数值必然在直线的上⽅.⽤数学归纳法, 当 M > 2:f(\sum \limits _{j=1}^M \lambda_j x_j) \ge \sum \limits _{j=1}^M \lambda_j f(x_j)EM算法推导假设给定⼀个包含 n 个独⽴的训练样本的数据集, D = \{ x_1, x_2, x_3...x_n) \}希望拟合⼀个概率模型p(x, z) , 其对数似然函数(log likelihood)为:为啥要 log, 乘法变加法, 不太想说了, ⾃⼰都重复吐⾎了似然, 不加log 前是: l(\theta) = \prod \limits _{i=1}^n p(x; \theta)的嘛, 样本的联合概率最⼤l(\theta) = \sum \limits _{i=1}^n log \ p(x; \theta)= \sum \limits _{i=1}^n log \ \sum \limits _{z} p(x, z; \theta)理解\sum \limits _{z} p(x, z; \theta)给定\theta的前提下, 关于 x, z 的联合概率跟之前扔硬币是⼀样的, 对于每个独⽴数据的产⽣, 其实还有⼀个隐含的因素 z (扔硬币中,到底这次试验是来⾃于硬币A 还是硬币B每个Z因素, 影响着 p(x,z) 的联合概率分布. 考虑所有的 z, 则是全概率了呀.对于p(x; \theta)直接通过 x 来观测\theta⽐较难 (扔硬币中, 没有上帝视⾓, 不知道扔结果是哪个硬币产⽣的)z^{(i)}是⼀个隐变量(latent), 如果能观测到z^{(i)}则参数预测会容易很多, EM算法就是来解决这个问题的EM 算法呢, 分为两个步骤:在 E 步中, 构建l(\theta)的下界函数 (给定\theta来找 z)在 M 步中, 最⼤化这个下界函数不太直观, 就回顾上篇扔硬币的栗⼦, 这⾥的 z 就是那个来⾃哪⾥A 还是 B 的概率(每次试验)设Q_i为关于 z 的概率分布, 即\sum \limits _{z} Q_i(z) = 1 (z 如是连续变量则\sum \rightarrow \int_z) ,则对于上⾯的对数似然函数:= \sum \limits _{i=1}^n log \ \sum \limits _{z} p(x_i, z_i; \theta) \ (1)对 p 的部分, 同时乘上和除以Q_i(z_i)不改变等式 , 这种技巧, 中学的 "配平⽅或数列裂项求和" ⼀样滴= \sum \limits _i log \sum \limits _{z_i} Q_i(z_i) \frac {p(x_i, z_i; \theta)}{Q_i(z_i) } \ (2)log 函数是 concave 的, 联想 jensen不等式f(\sum \limits _j \lambda_j x_j) \ge \sum \limits _j \lambda_j f(x_j)即 log 对于与 f(); \sum \limits _{z_i} Q_i(z_i) 对应于 \sum \limits _j \lambda_j ; 最后⼀项对x_j\ge \sum \limits_{i} \sum \limits_{z_i}Q_i(z_i) \ log \frac {p(x_i, z_i; \theta)}{Q_i(z_i) } \ (3)就类似与, 把⼀个, 函数⾥⾯的参数, 提取到函数外⾯来. 如还是不理解, 回看之前写的 convex 篇什么时候会取到等于?即当\frac {p(x_i, z_i; \theta)}{Q_i(z_i) } = c是个常数的时候, (2) 和 (3) 是相等的.即p(x_i, z_i; \theta) = c \ * Q_i(z_i)在\theta给定下, 关于 x, z 的联合概率分布与隐变量 z 的分布是⼀个线性关系因为\sum \limits_{z_i} Q_i(z_i) = 1, 如果将Q_i(z_i)认为是给定x_i 和 z_i的后验概率分布, 这样就得到了该似然函数的⼀个下界,根据全概率(后验) 与贝叶斯公式:Q_i(x_i) = \frac {p(x_i, z_i; \theta)}{\sum \limits _{z_i} p(x_i, z_i; \theta)}=\frac {p(x_i, z_i; \theta)}{p(x; \theta)}=p(z_i|x_i, \theta)相当于求给定\theta 和 x_i的情况下, 求 z_i 的条件概率, 果然, 深刻理解贝叶斯公式显得多么重要呀再回顾⼀波贝叶斯公式:设A1,A2,A3..构成完备事件组, 则对任意⼀事件B有:P(A_i|B) = \frac {P(A_i)P(B|A_i)}{\sum \limits _{i=1}^n P(A_i)P(B|A_i)}同上述, 只要当我们取Q_i(z_i)的值为给定\theta 和 x_i的后验概率分布的时候, 就能保证:\frac {p(x_i, z_i; \theta)}{Q_i(z_i) }的值是⼀个常数 (反过来推的), 既然是个常数, 也就**前⾯ (3) 的地⽅可以取等号啦, 即: **\sum \limits _{i=1}^n log \ \sum \limits _{z} p(x_i, z_i; \theta) = \sum \limits_{i} \sum \limits_{z_i}Q_i(z_i) \ log \frac {p(x_i, z_i; \theta)}{Q_i(z_i) }这样⼀来, 相当于在 E 步得到了似然函数的⼀个下界, 然后在 M 步, 求解(3) 最⼤值时候的参数\theta . 然后重复以上的 E, M 步骤:E-步: For each i:Q_i(z_i) = p(z_i | x_i; \theta)M-步, 更新\theta:\theta = arg \ max _\theta \sum \limits_{i} \sum \limits_{z_i}Q_i(z_i) \ log \frac {p(x_i, z_i; \theta)}{Q_i(z_i) }....循环直到收敛, 则估计出了参数\theta但, 万⼀不收敛呢?, so, 必须证明⼀波, EM算法是收敛的哦证明EM算法会收敛假设\theta^{(t)} 和 \theta^{(t+1)}为EM算法的连续两个步骤的参数值, 欲证l (\theta)收敛, 只需证:l(\theta^{(t)}) \leq l(\theta^{(t+1)})即可EM算法使得似然函数的值单调递增即可根据前⾯关于⽤ jensen不等式的取等条件, 推导出, 取得Q_i(z_i)^{(t)}的⽅式是:Q_i ^{(t)} (z_i) = p(z_i | x_i; \theta ^{(t)})此条件下, 使得jensen不等式取等即:l(\theta^{(t)}) = \sum \limits_{i} \sum \limits_{z_i}Q_i(z_i) \ log \frac {p(x_i, z_i; \theta ^t)}{Q_i(z_i) }⽽参数\theta^{(t+1)}的取值⽅式, 是使得上⾯的这个等式的值最⼤, 则必然l(\theta^{(t+1)}) \ge l(\theta^{(t)})展开⼀波:l(\theta^{(t+1)}) \ge \sum \limits_{i} \sum \limits_{z_i}Q_i^t(z_i) \ log \frac {p(x_i, z_i; \theta ^{(t+1)})}{Q_i^t(z_i) } \ (4)\ge \sum \limits_{i} \sum \limits_{z_i}Q_i^t(z_i) \ log \frac {p(x_i, z_i; \theta^t)}{Q_i^t(z_i) }\ (5)=l(\theta^{(t)}) \ (6)(4) 源于不等式的性质, 必然成⽴嘛(5) 就是取最⼤值的⼀个过程必然成⽴(6) 取相等的⽅式去是应⽤了 Jensen不等式即证明了l(\theta^{(t)}) \leq l(\theta^{(t+1)}) , 即EM算法是收敛的呀.⼩结⾸先是要理解,参数估计的是在⼲嘛, 需要回顾统计学的基础知识, 或理解上篇扔硬币的栗⼦核⼼, ⽤到了⼀个jensen 不等式, 需要回顾凸函数的⼀些性质来理解⼀波推导的⽅式呢, 依旧是极⼤似然估计, 带log (乘法边加法)推导核⼼技巧是全概率与贝叶斯公式, 真正理解太重要, 如LDA, 逻辑回归, 贝叶斯...这些算法都⽤到了.证明收敛, 其实只是⼀些, 推理的技巧, 还是挺有意思的.总体上, EM算法, 理解起来,我感觉不是很容易, 但, 也没有想象的那样难, 只要肯坚持, 正如爱因斯坦所说的那样嘛, 当然也为了⾃勉⽬前在经济和精神双重困境中的⾃⼰:耐⼼和恒⼼, 总会获得收获的Loading [MathJax]/jax/element/mml/optable/SuppMathOperators.js。
EM算法EM算法--应用到三个模型:高斯混合模型,混合朴素贝叶斯模型,因子分析模型判别模型求的是条件概率p(y|x),生成模型求的是联合概率p(x,y).即= p(x|y) ? p(y)常见的判别模型有线性回归、对数回归、线性判别分析、支持向量机、boosting、条件随机场、神经网络等。
常见的生产模型有隐马尔科夫模型、朴素贝叶斯模型、高斯混合模型、LDA、RestrictedBoltzmann Machine等。
所以这里说的高斯混合模型,朴素贝叶斯模型都是求p(x,y)联合概率的。
(下面推导会见原因)套路小结:凡是生产模型,目的都是求出联合概率表达式,然后对联合概率表达式里的各个参数再进行估计,求出其表达式。
下面的EM算法,GMM 等三个模型都是做这同一件事:设法求出联合概率,然后对出现的参数进行估计。
一、EM算法:作用是进行参数估计。
应用:(因为是无监督,所以一般应用在聚类上,也用在HMM 参数估计上)所以凡是有EM算法的,一定是无监督学习.因为EM是对参数聚集给定训练样本是高斯混合模型,混合朴素贝叶斯模型,因子分析模型"> 样例独立,我们想要知道每个样例隐含的类别z,使是p(x,z)最大,(即如果将样本x(i)看作观察值,潜在类别z看作是隐藏变量,则x可能是类别z,那么聚类问题也就是参数估计问题,)故p(x,z)最大似然估计是:高斯混合模型,混合朴素贝叶斯模型,因子分析模型">所以可见用到EM算法的模型(高斯混合模型,朴素贝叶斯模型)都是求p(x,y)联合概率,为生成模型。
对上面公式,直接求θ一般比较困难,因为有隐藏变量z存在,但是一般确定了z后,求解就容易了。
EM是一种解决存在隐含变量优化问题的有效方法。
竟然不能直接最大化?(θ),我们可建立?的下界(E步),再优化下界(M步),见下图第三步,取的就是下界高斯混合模型,混合朴素贝叶斯模型,因子分析模型" action-data="http%3A%2F%%2Fbl og%2F515474%2F201305%2F19180744-0ed136937810 4b548dbee01337f6ba69.jpg" action-type="show-slide"> (总式)解释上式:对于每一个样例i,让Qi表示该样例隐含变量z的某种分布,Qi满足的条件是(如果z 是连续性的,那么Qi是概率密度函数(因子分析模型就是如此),需要将求和符号换成积分符号即:高斯混合模型,混合朴素贝叶斯模型,因子分析模型">因子分析模型是如此,这个会用在EM算法的M步求。
EM算法在聚类分析中的应用EM算法是一种在统计学中广泛应用的算法。
它使用迭代的方法来估计未观察到的隐变量的值,并通过这些值来优化参数的估计,从而可以更好地解决一些机器学习和数据挖掘中遇到的问题。
在这篇文章中,我们将探讨EM算法在聚类分析中的应用,并介绍一些常见的聚类算法和实际示例。
聚类分析是一种机器学习技术,其目的是从一组数据中找到一些相似的子集。
这些数据点(也称为样本)可以是数字,文本,图像等任何东西。
聚类算法将数据点分组成一个个类别,使得每个类别内部的点之间具有相似性,而不同类别之间的数据点则差异较大。
聚类分析通常用于将大量数据压缩为较小的、有意义的数据集,以便快速有效地处理和分析。
实际上,聚类分析一直是数据挖掘领域的研究热点。
基于EM算法的聚类算法也成为了该领域中最具代表性和最常用的算法之一。
接下来,我们将介绍几种常见的聚类算法,并讨论如何在EM 算法中使用这些算法。
1. K-Means聚类算法K-Means聚类算法是一种用于将数据点划分到k个不同的、具有相似性和连续性的组中的算法。
它是一种迭代算法,目标是将数据点划分到k个簇中,使得各个簇内部的数据点的差异最小,簇与簇之间的数据差异最大。
在K-Means算法中,首先需要随机初始化k个质心,然后将每个数据点分配到最接近的质心所在的簇中。
接下来,根据簇中所有数据点的平均值,更新每个簇的质心。
重复这个过程,直到质心不再发生变化。
最终,每个数据点将被分配到最接近的质心所在的簇中。
然而,K-Means聚类算法有一些缺点。
首先,它需要事先确定聚类数量k,这可能很难。
其次,在真实世界的应用中,簇中的数据点通常具有不同的形态和大小,而K-Means算法无法处理非球体形状或不同密度的簇。
因此,针对不同的应用场景,我们需要使用不同的聚类算法。
2. 均值漂移聚类算法均值漂移聚类算法是一种无参数聚类算法,可以用于发现具有不同形态和密度的簇。
它首先为每个数据点选择一个随机起始点,并计算每个点的估计概率分布。
机器学习中的EM算法详解及R语言实例最大期望算法(EM)来自WXin gong zhong 号datadwK均值算法非常简单(可参见之前发布的博文),详细读者都可以轻松地理解它。
但下面将要介绍的EM算法就要困难许多了,它与极大似然估计密切相关。
1 算法原理不妨从一个例子开始我们的讨论,假设现在有100个人的身高数据,而且这100条数据是随机抽取的。
一个常识性的看法是,男性身高满足一定的分布(例如正态分布),女性身高也满足一定的分布,但这两个分布的参数不同。
我们现在不仅不知道男女身高分布的参数,甚至不知道这100条数据哪些是来自男性,哪些是来自女性。
这正符合聚类问题的假设,除了数据本身以外,并不知道其他任何信息。
而我们的目的正是推断每个数据应该属于哪个分类。
所以对于每个样本,都有两个需要被估计的项,一个就是它到底是来自男性身高的分布,还是来自女性身高的分布。
另外一个就是,男女身高分布的参数各是多少。
既然我们要估计知道A和B两组参数,在开始状态下二者都是未知的,但如果知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。
所以可能想到的一种方法就是考虑首先赋予A某种初值,以此得到B的估计,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。
你是否隐约想到了什么?是的,这恰恰是K均值算法的本质,所以说K均值算法中其实蕴含了EM算法的本质。
EM算法,又称期望最大化(Expectation Maximization)算法。
在男女身高的问题里面,可以先随便猜一下男生身高的正态分布参数:比如可以假设男生身高的均值是1.7米,方差是0.1米。
当然,这仅仅是我们的一个猜测,最开始肯定不会太准确。
但基于这个猜测,便可计算出每个人更可能属于男性分布还是属于女性分布。
例如有个人的身高是1.75米,显然它更可能属于男性身高这个分布。
据此,我们为每条数据都划定了一个归属。
接下来就可以根据最大似然法,通过这些被大概认为是男性的若干条数据来重新估计男性身高正态分布的参数,女性的那个分布同样方法重新估计。