第6章_贝叶斯学习与EM算法
- 格式:ppt
- 大小:1.95 MB
- 文档页数:127
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)看作观察值,参数估计问题,)故p(x,z)最大似然估计是:高斯混合模型,混合朴素贝叶斯模型,因子分析模型">所以可见用到EM算法的模型(高斯混合模型,朴素贝叶斯模型)都是求p(x,y)联合概率,为生成模型。
对上面公式,直接求θ一般比较困难,因为有隐藏变量z存在,但是一般确定了z后,求解就容易了。
EM是一种解决存在隐含变量优化问题的有效方法。
竟然不能直接最大化?(θ),我们可建立?的下界(E步),再优化下界(M步),见下图第三步,取的就是下界解释上式:对于每一个样例i,让Qi表示该样例隐含变量z的某种分布,Qi满足的条件是(如果z 是连续性的,那么Qi是概率密度函数(因子分析模型就是如此),需要将求和符号换成积分符号即:高斯混合模型,混合朴素贝叶斯模型,因子分析模型">因子分析模型是如此,这个会用在EM算法的M步求。
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。
最大期望算法(Expectation-Maximization algorithm, EM),或Dempster-Laird-Rubin算法,是一类通过迭代进行极大似然估计(Maximum Likelihood Estimation, MLE)的优化算法,通常作为牛顿迭代法(Newton-Raphson method)的替代用于对包含隐变量(latent variable)或缺失数据(incomplete-data)的概率模型进行参数估计。
EM算法的标准计算框架由E步(Expectation-step)和M步(Maximization step)交替组成,算法的收敛性可以确保迭代至少逼近局部极大值。
EM算法是MM算法(Minorize-Maximization algorithm)的特例之一,有多个改进版本,包括使用了贝叶斯推断的EM算法、EM梯度算法、广义EM算法等。
由于迭代规则容易实现并可以灵活考虑隐变量,EM算法被广泛应用于处理数据的缺测值,以及很多机器学习(machine learning)算法,包括高斯混合模型(Gaussian Mixture Model, GMM)和隐马尔可夫模型(Hidden Markov Model, HMM)的参数估计。
EM算法是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,其中一个为期望步(E步),另一个为极大步(M步),所以算法被称为EM算法(Expectation-Maximization Algorithm)。
EM算法受到缺失思想影响,最初是为了解决数据缺失情况下的参数估计问题,其算法基础和收敛有效性等问题在Dempster、Laird和Rubin三人于1977年所做的文章《Maximum likelihood from incomplete data via the EM algorithm》中给出了详细的阐述。
其基本思想是:首先根据己经给出的观测数据,估计出模型参数的值;然后再依据上一步估计出的参数值估计缺失数据的值,再根据估计出的缺失数据加上之前己经观测到的数据重新再对参数值进行估计,然后反复迭代,直至最后收敛,迭代结束。
贝叶斯算法em算法贝叶斯算法和EM算法是统计学中两种重要的方法,它们在数据分析和机器学习领域被广泛应用。
这是两种独立存在的算法,但它们之间存在一种紧密联系。
本文将全面介绍贝叶斯算法和EM算法的概念、原理及其在实际问题中的应用,希望能对读者有指导意义。
首先,我们来了解一下贝叶斯算法。
贝叶斯算法是基于贝叶斯定理的一种概率统计方法,它可以用来从已知的先验概率和新的证据中计算出各种事件的后验概率。
贝叶斯算法的核心思想是通过利用已知的先验知识来更新对未知事件的概率估计,从而得到更准确的预测结果。
它在机器学习中常用于分类问题,通过训练集的样本数据来构建模型,并利用贝叶斯公式进行分类。
与贝叶斯算法相比,EM算法是一种更为复杂的统计学习方法。
EM算法全称为Expectation-Maximization算法,它是一种迭代优化算法,用于求解含有隐变量(未观测到的变量)的概率模型。
EM算法的基本思想是通过两个步骤交替进行,即期望步骤(E步)和最大化步骤(M 步)。
在E步,根据当前的模型参数估计,计算出隐变量的后验概率;在M步,利用已知的观测数据和隐变量的后验概率来更新模型参数。
通过不断迭代这两个步骤,EM算法可以逐步求得最优的模型参数估计。
贝叶斯算法和EM算法可以说是一对有着紧密联系的算法。
贝叶斯算法使用先验概率和后验概率来进行推断,而EM算法则是在给定观测数据和隐变量的情况下,通过迭代优化来估计模型参数。
两者的共同点在于都涉及到概率的推断和模型参数的估计,都是用于解决实际问题的重要方法。
在实际应用中,贝叶斯算法和EM算法有广泛的应用领域。
贝叶斯算法在文本分类、垃圾邮件过滤、推荐系统等领域有着重要应用。
它通过建立模型,利用文本特征对文档进行分类,能够实现精准的分类结果。
EM算法则在聚类、图像分割、高斯混合模型等问题中得到广泛应用。
它通过利用隐变量进行聚类、分割和建模,能够更好地解决复杂的实际问题。
总结来说,贝叶斯算法和EM算法是两种重要的统计学习方法,它们在实际问题中发挥着重要的作用。
关于在数据缺失情况下使⽤EM算法估计贝叶斯⽹络结构当我们要建⽴贝叶斯⽹络时,需要⾸先通过因果关系得到贝叶斯的⽹络结构,再训练得到贝叶斯⽹的参数集。
这⾥,参数集往往是通过给定数据集进⾏统计计算得到,但是,有的时候,给定的数据集不⼀定是完整的,可能某⼀条或多条的数据缺失⼀个或两个数据。
这是需要我们在数据缺失的情况下计算参数集,当然最简单的⽅法是去掉具有缺失数据的⾏,这样显然在数据集较⼩的时候会造成参数集的严重不准确。
在贝叶斯引论那本书中提到要⽤EM算法来解决这个问题。
其实EM算法就是最⼤化期望值算法,这个过程中我们计算在某随机参数情况下的最⼤似然值,然后根据此似然值对参数值进⾏了修正,再次计算极⼤似然值,不断迭代,知道计算得到的值在可接受的阀值范围内。
下⾯来说⼀下,他是咋实现的。
⾸先,输⼊数据是贝叶斯⽹络结构、缺失的数据集、收敛阀值1、设初始迭代次数为0,⽹络参数为任意值。
收敛阀值a2、根据贝叶斯估计公式计算⽹络参数的似然值。
其中:这⾥⾯最值注意的是,在计算的时候⼀定要进⾏进⾏⼀下归⼀化才能得到真正的结果哦。
进⼊循环体:a、⽤oldscore记录似然值。
b、计算(E步骤)c、计算的最⼤值,即“最⼤似然”撒(M步骤)d、此时,得到了newScore,⽐较newScore和oldscore,如果在收敛阀值内,则迭代结束,newscore就是最终结果。
否则,使⽤oldscore 记录newscore,迭代次数加⼀,继续迭代。
在书中他还介绍了,使⽤团树传播⽅法来简化计算过程。
后⾯再记录。
流程。
这个算法可以将参数和缺失数据同时计算出来,虽然对⽅也不清楚他们要什么,但是跑不出这两个。
em算法EM算法是英文expectation-maximization算法的英文简写,翻译过来就是期望最大化算法,其实是一种根据求参的极大似然估计的一种迭代的优化策略,EM算法可以广泛估计是因为他可以从非完整的数据集中对于参数进行极大似然的估计,这样的方法对于处理残缺数据,截尾数据和一些带有噪声的数据来说是很有效的.在写这篇文章之前,我看了很多篇博客,学习了很多的知识,也参照了很多的资料,希望可以从EM算法的迭代优化理论和一般的步骤中出发,然后能够举一个例子来使我们理解这个EM算法,然后在对其收敛性进行证明,目的是为了说明EM算法每一次迭代都是能够提高似然函数值然后收敛到一个稳定的点,再引出EM算法的收敛速度.大概通过上述部分,我们可以得到基于其简单,收敛,稳定上升的优势,但是也会产生一些缺点,比如收敛速度过慢的加速方法等,在第二篇文章中将会介绍这个处理缺点的方法,然后会写一些关于EM算法的重要应用,包括EM算法在二元正态分布上的参数估计的应用,混合高斯分布参数估计方面的应用,以及EM算法在隐马尔科夫模型上参数的应用(一种EM算法的特殊情形),希望通过这一系列的文章可以让大家理解好EM算法的明显优势以及原理,让我们开始吧!背景:极大似然估计和贝叶斯统计其实是作为现在的统计领域中非常热门的领域了,其实来说他们的计算过程是有一定的相似成分的,比如极大似然函数估计在计算的方法上跟贝叶斯的后验概率的计算是非常相似的,学过统计学习的我们知道,贝叶斯是分为两种的大类的,一种是拥有显式的后验分布,这样的一般用于简单的似然函数,另外一种是数据添加的算法,有些时候我们的数据可能会存在缺失或者是似然函数不是显性的,数据添加类在这时候就可以很好的应用,他可以将已经观测到的数据基础上加上一些”潜在数据”,从而使得变得更简单,完成极大化的工作,然后我们常用的一种数据添加法其实就是我们今天介绍的EM算法.EM算法是一种迭代的优化策略,他的计算方法是分为期望步(E步)和极大步(M 步)的,所以这个算法的名字是这样来的,EM算法受到了缺失算法的影响,最初就是为了解决上边提到的数据缺失的问题,基本的思想就是首先根据已经观测出来的数据估计出模型参数的值,然后再根据上一步估计出的参数值来估计缺失数据的值,然后再根据估计中缺失的数据加上之前的已经观测到的数据重新在对参数值进行估计,然后反复的进行迭代,直到最后收敛,迭代结束.而现在EM算法发展了几十年了,在当时的数据快速增长得那个时代,那时候处理数据很困难,经常会出现数据缺失或者不可用的情况,当时无非就是用用神经网络拟合,添补法,卡尔曼滤波法等等,但是最后还是EM脱颖而出,最主要还是他的算法步骤简单,稳定上升可以很可靠的找到最优的收敛值,但是运用这种思想,我们拓展到了简化问题策略,有时候缺失数据并非真的缺少了,这时候EM引入恰当的数据添加技术,这样的数据被称为”潜在数据”,复杂问题通过引入潜在数据,能够有效的解决我们的问题“潜在数据”可以解释为数据本身并不存在缺失变量,但观察数据比较难以处理,如果添加上额外的变量,处理起来会变得比较简单。
贝叶斯网络学习方法和算法研究简介贝叶斯网络是一种概率图模型,用于表示变量之间的依赖关系,并且可以根据已知数据进行参数学习。
贝叶斯网络学习方法和算法的研究旨在通过已知的数据来推断变量之间的依赖关系,从而能够预测未知的变量值。
这对于理解复杂系统的行为、进行数据挖掘和决策支持具有重要意义。
1.参数学习:参数学习是通过已知数据来估计贝叶斯网络中节点的条件概率表。
常用的参数学习方法包括最大似然估计法、最大后验估计法和EM算法。
-最大似然估计法:最大似然估计法假设贝叶斯网络的结构已知,在给定结构的情况下,通过最大化数据的似然函数来估计参数值。
-最大后验估计法:最大后验估计法考虑了先验知识,通过最大化后验概率来估计参数值。
先验知识可以来自领域专家的经验或领域内其他问题的学习结果。
-EM算法:EM算法是一种迭代优化算法,通过交替进行E步(求期望)和M步(最大化似然)来估计参数值。
2.结构学习:结构学习是通过已知数据来推断贝叶斯网络的结构,即变量之间的依赖关系。
常用的结构学习方法包括约束贝叶斯网络学习、贪心法和遗传算法。
-约束贝叶斯网络学习:约束贝叶斯网络学习方法利用领域专家的先验知识来限制贝叶斯网络的结构。
这些先验知识可以包括变量之间的因果关系、边的数目或方向的约束等。
-贪心法:贪心法从其中一种启发式准则(如最大似然准则或最小描述长度准则)开始,通过局部的方式来最优的贝叶斯网络结构。
1. 分数-based算法:分数-based算法通过定义不同的评分函数来评估不同网络结构的质量,目标是找到具有最高分数的网络结构。
常用的评分函数包括BIC(贝叶斯信息准则)和BDeu(等效样本大小)。
2. 约束-based算法:约束-based算法通过定义不同的约束条件来限制网络结构的空间。
常用的约束条件包括有向无环图(DAG)约束和有限父节点约束。
3.启发式算法:启发式算法使用启发式规则和策略来最优的网络结构。
常用的启发式算法包括贝叶斯、遗传算法和模拟退火算法。
什么是EM算法?开头借⽤李航⽼师书中总结,概率模型有时既含有观测变量,⼜含有隐藏变量或者潜在变量,如果概率模型的变量都是观测变量,那么给定数据,可以直接⽤极⼤似然估计法,或者贝叶斯估计法估计模型参数,但是,当模型含有隐含变量的时候,就不能简单的使⽤这些估计⽅法,EM算法就是含有隐含变量的概率模型参数的极⼤似然估计法,或者极⼤后验概率估计法,⼀句话总结,EM算法本质上就是⽤于处理含有隐含变量的模型参数估计的⼀种⽅法!这⾥第⼀次看相关⽂章的童鞋会问,什么是概率模型含有隐含变量啊?举⼀个例⼦⼀下⼦就可以明⽩,所谓的隐含变量,就是指进⾏相关实验时没有直接观测到的变量,或者与试验结果息息相关但是实验过程⼜没有对其进⾏记录的随机变量!⽐如说三枚硬币,A、B、C,进⾏如下的抛硬币的实验,先抛A硬币,根据A硬币的试验结果来决定接下来是抛B硬币还是C硬币,然后你得到如下的实验结果,⽐如说:1,1,0,1,1,0,0,0,1,1 且假设只能观测到抛硬币的结果,不能观测到抛硬币的过程,让你估计三枚硬币的模型的参数。
这时候,你只观察到了硬币抛完的结果,并不了解A硬币抛完之后,是选择了B硬币抛还是C硬币抛,这时候概率模型就存在着隐含变量!下⾯正式进⼊EM算法的介绍: 1 预备部分需要了解基本的数学知识,Jason不等式詹森不等式,具体表述如下: 如果f是凸函数(参考优化理论的定义),X是随机变量,则有: ,如果f是严格的凸函数,当且仅当X是常量的时候,等号成⽴。
如果⽤图像来表⽰的话就是下图:(图⽚并⾮本⼈所画,⽂末会注明来源)从图中我们可以清晰的看出这个不等式的含义,通俗⼀点说就是,如果f函数是⼀个凸函数,那么先取期望后的函数值会⼩于等于函数值的期望!这⼀点在后⾯⽂章的证明中⾄关重要。
2 正式介绍⾸先来看的是极⼤似然函数我们要做的就是根据已知的训练数据去将这个极⼤似然函数最⼤化,并且得到最⼤化的参数θ,但是这种情况下待求参数和观测变量完全混在⼀起,⽆法进⾏求解,所以要再引⼊⼀个变量z,就是我们上⽂中提到的潜在变量,具体公式如下: 很容易发现对等式进⾏变换之后并不影响结果,这在概率论中是显⽽易见的!可以直观的解释为,利⽤模型参数这个条件去估计隐藏变量和观测变量但是我们发现,经过这样的变换结果还是⼗分的抽象,因为Z变量实在是太特殊了,假设存在⼀种Q(z)满⾜了隐含变量的分布,那么Q(z)必然满⾜条件: .Qi(z)就代表了隐藏变量的某种分布,如果你对观测数据来⾃于隐藏变量的所有可能性求和,⾃然得到的结果⼀定是1,⽽且,概率⼀定是⼤于0的,这样便完美解释了上式!接下来就是对公式的简化操作:到这⼀步没什么问题,就是分⼦分母同时乘以⼀个Qi(z),结果不会发⽣改变,然后观察产⽣的结果:这个式⼦,其实是的期望,为什么这么说呢,根据随机过程课本的描述:我们有,也就是说对⼀个函数求期望,就是将⾃变量的概率和⾃变量对应的函数值相乘然后求和,对于连续变量就是对其求积分,那么,回到我们的式⼦中来,z(i) 就是⾃变量, Qi(z)就是其概率值Pk,就是对应的函数Y,那么产⽣的结果就可以理解为是⼀个期望值,从⽽继续套⽤我们的詹森不等式进⾏变换,,这样我们其实就是得到了极⼤似然函数的下界函数,再来讨论让等号成⽴的条件,也就是当这个'x'是常数的时候,不妨设其等于c,即,进⼀步变换:将Qi(z)乘到右边,并且对Z求和,因为我们有,所以很容易得到:,进⼀步有,则进⼀步可以得到:这个式⼦代表了什么意思呢?我认为它告诉我们,我们拿不定的隐藏变量的某种概率分布,其实就是参数固定时已知观测样本对隐藏变量的后验概率分布,到⽬前为⽌,我们确定了当参数θ固定时,如何选择隐藏变量的概率分布问题,其实已经完成了EM算法的E步这个过程,接下来所谓的M步就是固定住我们求得的Qi(z),将θ看作是⾃变量,对θ进⾏求导,求出在当前可⾏域范围内的极⼤值解θ',然后重新固定住θ',继续寻找新的Qi(z),如此反复的迭代下去,便可以找到最优值!EM算法:1 e-step: 求2 m-step:别忘了我们其实⼀直操作的是极⼤似然函数的下界,也就是说我们是通过不断的提升似然函数的下界,从⽽逼迫似然函数不断的提升最后得到最⼤值的,即所谓的极⼤似然函数!从⽽进⼀步可以得到参数值。
EM算法原理一、简介EM(Expectation Maximization)算法是一种常见的统计学习方法,用于估计参数和解决一些难以处理的问题,特别是在存在隐变量的情况下。
EM算法最初由数学家罗伯特·卢德米勒(RobertLushmiller)和理查德·贝尔曼(RichardBellman)在20世纪50年代提出,后来由 statisticiansDempster, Laird, and Rubin 进一步发展,因此也被命名为Dempster-Laird-Rubin算法。
EM算法在许多领域都有广泛的应用,如混合高斯模型、隐马尔可夫模型、高斯过程回归等。
二、EM算法的步骤EM算法主要由两个步骤组成:E步(ExpectationStep)和M步(Maximization Step),这两个步骤在迭代过程中交替进行。
1.E步:计算隐变量的条件期望。
给定当前的参数估计值,计算隐变量的条件期望,通常表示为参数的函数。
这个步骤中,隐变量对数似然函数的参数更新起着关键作用。
2.M步:最大化期望值函数。
在E步计算出期望值之后,M步将尝试找到一组参数,使得这个期望值函数最大。
这个步骤中,通常使用优化算法来找到使期望值函数最大的参数值。
这两个步骤在迭代过程中交替进行,每次迭代都更新了参数的估计值,直到满足某个停止准则(如参数收敛或达到预设的最大迭代次数)。
三、EM算法的特点与优点1.处理隐变量:EM算法能够处理数据中存在的隐变量问题,这是它与其他参数估计方法相比的一大优势。
通过估计隐变量的概率分布,EM算法能够更准确地描述数据的生成过程。
2.简单易行:相对于其他优化算法,EM算法相对简单易懂,也容易实现。
它的主要目标是最优化一个简单的对数似然函数,这使得EM算法在许多情况下都能给出很好的结果。
3.稳健性:对于一些数据异常或丢失的情况,EM算法往往表现出较好的稳健性。
这是因为EM算法在估计参数时,会考虑到所有可用的数据,而不仅仅是正常的数据点。
EM算法的英文全称是 Expectation-maximization algorithm,即最大期望算法,或者是期望最大化算法。
EM算法号称是十大机器学习算法之一,听这个名头就知道它非同凡响。
从本质上来说EM算法是最大似然估计方法的进阶版。
最大似然估计假设当下我们有一枚硬币,我们想知道这枚硬币抛出去之后正面朝上的概率是多少,于是我们抛了10次硬币做了一个实验。
发现其中正面朝上的次数是5次,反面朝上的次数也是5次。
所以我们认为硬币每次正面朝上的概率是50%。
从表面上来看,这个结论非常正常,理所应当。
但我们仔细分析会发现这是有问题的,问题在于我们做出来的实验结果和实验参数之间不是强耦合的。
也就是说,如果硬币被人做过手脚,它正面朝上的概率是60%,我们抛掷10次,也有可能得到5次正面5次反面的概率。
同理,如果正面朝上的概率是70%,我们也有一定的概率可以得到5次正面5次反面的结果。
现在我们得到了这样的结果,怎么能说明就一定是50%朝上的概率导致的呢?那我们应该怎么办,继续做实验吗?显然不管我们做多少次实验都不能从根本上解决这个问题,既然参数影响的是出现结果的概率,我们还是应该回到这个角度,从概率上下手。
我们知道,抛硬币是一个二项分布的事件,我们假设抛掷硬币正面朝上的概率是p,那么反面朝上的概率就是1-p。
于是我们可以带入二项分布的公式,算出10次抛掷之后,5次是正面结果在当前p参数下出现的概率是多少。
于是,我们可以得到这样一条曲线:也就是正面朝上的概率是0.5的时候,10次抛掷出现5次正面的概率最大。
我们把正面朝上的概率看成是实验当中的参数,我们把似然看成是概率。
那么最大似然估计,其实就是指的是使得当前实验结果出现概率最大的参数。
也就是说我们通过实验结果和概率,找出最有可能导致这个结果的原因或者说参数,这个就叫做最大似然估计。
原理理解了,解法也就顺水推舟了。
首先,我们需要用函数将实验结果出现的概率表示出来。
最大期望算法(Expectation Maximization Algorithm,又译期望最大化算法),是一种迭代算法,用于含有隐变量(hidden variable)的概率参数模型的最大似然估计或极大后验概率估计。
EM算法在统计计算中,最大期望(EM)算法是在概率(probabilistic)模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)。
最大期望经常用在机器学习和计算机视觉的数据聚类(Data Clustering)领域。
最大期望算法经过两个步骤交替进行计算:第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;第二步是最大化(M),最大化在E 步上求得的最大似然值来计算参数的值。
M 步上找到的参数估计值被用于下一个E 步计算中,这个过程不断交替进行。
总体来说,EM的算法流程如下:1.初始化分布参数2.重复直到收敛:E步骤:估计未知参数的期望值,给出当前的参数估计。
M步骤:重新估计分布参数,以使得数据的似然性最大,给出未知变量的期望估计。
EM算法简述迭代使用EM步骤,直至收敛。
可以有一些比较形象的比喻说法把这个算法讲清楚。
比如说食堂的大师傅炒了一份菜,要等分成两份给两个人吃,显然没有必要拿来天平一点一点的精确的去称分量,最简单的办法是先随意的把菜分到两个碗中,然后观察是否一样多,把比较多的那一份取出一点放到另一个碗中,这个过程一直迭代地执行下去,直到大家看不出两个碗所容纳的菜有什么分量上的不同为止。
EM算法就是这样,假设我们估计知道A和B两个参数,在开始状态下二者都是未知的,并且知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。
可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。
EM 算法是Dempster,Laind,Rubin 于1977 年提出的求参数极大似然估计的一种方法,它可以从非完整数据集中对参数进行MLE 估计,是一种非常简单实用的学习算法。