【机器学习】10、最大熵模型与EM算法

一、最大熵模型

l n x < = x − 1 lnx<=x-1 lnx<=x1

证明: f ( x ) = x − 1 − l n x , x > 0 f(x)=x-1-lnx,x>0 f(x)=x1lnx,x>0,求导是凸函数,在x=1处取得极值

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

1、熵

熵是信息的度量,与信息量成反比。

信息量: h ( x i ) = l o g 2 1 p ( x i ) h(x_i)=log_2\frac{1}{p(x_i)} h(xi)=log2p(xi)1

事件发生的概率越高,对应的信息量越低,事件发生的概率越小,对应的信息量越大。

熵是信息量的期望: H ( x ) = − ∑ i = 1 n p ( x i ) l o g 2 1 p ( x i ) H(x)=-\sum_{i=1}^np(x_i)log_2\frac{1}{p(x_i)} H(x)=i=1np(xi)log2p(xi)1
这里写图片描述

这里写图片描述
两点分布的最大熵:

这里写图片描述

这里写图片描述

三点分布:

这里写图片描述

p1=p2=p3的时候,曲面的值最高(图1)

当X满足均匀分布时,熵最大:

这里写图片描述

联合熵和条件熵

联合熵:H(X,Y),表示X,Y同时发生的不确定性

H ( X , Y ) = − ∑ ∑ p ( x i , y i ) l o g 2 p ( x i , y i ) = H ( X ) + H ( Y ∣ X ) H(X,Y)=-\sum \sum p(x_i,y_i)log_2 p(x_i,y_i)=H(X)+H(Y|X) H(X,Y)=∑∑p(xi,yi)log2p(xi,yi)=H(X)+H(YX)

解释:联合熵=X发生的熵+X发生的条件下Y发生的熵

联合熵的性质:

  • 联合熵>=变量熵中最大的
  • 联合熵<=变量熵之和

条件熵:Y发生的条件下,X发生的不确定性

这里写图片描述

这里写图片描述

相对熵

度量两个分布之间的差异

如果用距离度量的话,两个分布的点的个数要相等,如果不等的话,无法进行单个点距离的度量。
这里写图片描述

E_px 表示期望

证明 D ( p ∣ ∣ q ) ≥ 0 D(p||q)\geq0 D(p∣∣q)0:利用Jenson不等式,

Jensen不等式表述如下:

  • 如果f是凸函数,X是随机变量,那么 E ( f ( X ) ) ≥ f ( E ( x ) ) E(f(X))\geq f(E(x)) E(f(X))f(E(x))

这里写图片描述

  • 如果f是凹函数,X是随机变量,那么 E ( f ( X ) ) ≤ f ( E ( x ) ) E(f(X))\leq f(E(x)) E(f(X))f(E(x))

这里写图片描述

交叉熵

C H ( p , q ) CH(p,q) CH(p,q)

= − ∑ i p ( x i ) l o g q ( x i ) =-\sum_ip(x_i)logq(x_i) =ip(xi)logq(xi)
= − ∑ i p ( x i ) l o g p ( x i ) + ∑ i p ( x i ) l o g p ( x i ) − ∑ i p ( x i ) l o g q ( x i ) =-\sum_ip(x_i)logp(x_i)+\sum_ip(x_i)logp(x_i)-\sum_ip(x_i)logq(x_i) =ip(xi)logp(xi)+ip(xi)logp(xi)ip(xi)logq(xi)
= H ( p i ) + ∑ i p i l o g p i q i =H(p_i)+\sum_ip_ilog\frac{p_i}{q_i} =H(pi)+ipilogqipi

∴ C H ( p ∣ ∣ q ) = H ( p ) + D ( p ∣ ∣ q ) \therefore CH(p||q)=H(p)+D(p||q) CH(p∣∣q)=H(p)+D(p∣∣q)

互信息

这里写图片描述

这里写图片描述
(五六行添加负号)

总结

这里写图片描述

这里写图片描述

2、最大熵模型

  • 承认已知事物

  • 对未知事物不做任何假设,没有任何偏见

示例:

这里写图片描述

假设1:
这里写图片描述

假设2:
这里写图片描述

利用最大熵模型:

这里写图片描述

承认已知的X,让未知的Y的概率最大。

这里写图片描述

写成一般的形式:

这里写图片描述

最大熵原则:

对于一个随机事件的概率分布进行预测时,预测应当满足全部已知的约束,而对未知的情况下不做任何主观的假设,在这种情况下,概率分布是最均匀的,预测的风险性最小,因此得到的概率分布的熵最大。

最大熵原则就是使得未知部分的概率分布都相等,因为相等情况下不确定性最大,也就是熵最大。
正态分布是给定均值和方差情况下的最好的分布,熵最大的分布。

示例2:

这里写图片描述
这里写图片描述

这里写图片描述
这里写图片描述

p ‾ 是样本中的概率,不加横线的是未知的分布中的,相等的意思就是认为样本可以代表整体的分布。 \overline p 是样本中的概率,不加横线的是未知的分布中的,相等的意思就是认为样本可以代表整体的分布。 p是样本中的概率,不加横线的是未知的分布中的,相等的意思就是认为样本可以代表整体的分布。

这里写图片描述

这里写图片描述

这里写图片描述

写成拉格朗日函数的样子求解:

这里写图片描述

求解:

这里写图片描述

这里写图片描述
只剩lambda为未知的,求解,指数函数的解析解很难求:
这里写图片描述
这里写图片描述
这里写图片描述

这里写图片描述

这里写图片描述
前面是条件熵,后面是常数,所以极大似然估计和最大熵模型具有相同的形式。

但是最大熵函数的目标函数好建立
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

最大熵模型在分类方法里算是比较优的模型,但是由于它的约束函数的数目一般来说会随着样本量的增大而增大,导致样本量很大的时候,对偶函数优化求解的迭代过程非常慢,scikit-learn甚至都没有最大熵模型对应的类库。但是理解它仍然很有意义,尤其是它和很多分类方法都有千丝万缕的联系。

最大熵模型的优点有:

a) 最大熵统计模型获得的是所有满足约束条件的模型中信息熵极大的模型,作为经典的分类模型时准确率较高。

b) 可以灵活地设置约束条件,通过约束条件的多少可以调节模型对未知数据的适应度和对已知数据的拟合程度

最大熵模型的缺点有:

a) 由于约束函数数量和样本数目有关系,导致迭代过程计算量巨大,实际应用比较难

二、EM算法(期望最大化算法)

我们经常会从样本数据中,找出最可能得到该样本的模型参数,最常用的就是对数似然函数。

但是在一些情况下,得到的观察数据含有未观察到的隐含数据,此时的隐含数据和模型参数都变成了未知的,所以无法用极大化对数似然函数的模型来得到模型的参数。

EM算法解决含有未知观测数据的思路是利用启发式的迭代方法,既然我们没法直接求得模型分布参数,那么可以先猜想隐含数据(E步),接着基于观察数据和猜想数据来极大化对数似然函数(M步),求解模型参数。

由于之前的数据是猜测的,所以得到的模型参数一般还不是我们想要的结果,不过基于当前得到的模型参数,继续猜测隐含数据,然后继续极大化对数似然,求解我们的模型参数,以此类推,不断迭代,直到模型分布参数基本无变化,算法收敛,得到最优参数。

这里写图片描述

这里写图片描述

这里写图片描述

kmeans无法给出属于某类的可信度

利用极大似然估计推出EM算法:

这里写图片描述

这里写图片描述
上式是先取对数,再求导=0,得到0.7。

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

假设含有隐变量的似然函数为:

L ( θ ) = ∏ j = 1 N P θ ( y i ) = ∏ j = 1 n ∑ z P θ ( y i ∣ z ) P ( z ) L(\theta)=\prod _{j=1}^NP_{\theta}(y_i)=\prod _{j=1}^n \sum _z P_{\theta}(y_i|z)P(z) L(θ)=j=1NPθ(yi)=j=1nzPθ(yiz)P(z)

对上式取ln:

l n L ( θ ) = ∑ j = 1 N l n ∑ z P θ ( y i ∣ z ) P ( z ) lnL(\theta)=\sum _{j=1}^N ln \sum_z P_{\theta}(y_i|z)P(z) lnL(θ)=j=1NlnzPθ(yiz)P(z)

对数函数中有加和项,难以求得解析解,故求近似最优解。

要求迭代至得到 m a x l n L ( θ ) max lnL(\theta) maxlnL(θ),即 l n L ( θ n + 1 ) > l n L ( θ n ) ) lnL(\theta_{n+1})>lnL(\theta_n)) lnL(θn+1)>lnL(θn)),迭代若干次,就是渐渐逼近最优解。

l n L ( θ ) − l n L ( θ n ) ≥ Q ( θ ∣ θ n ) lnL(\theta)-lnL(\theta_n) \geq Q(\theta|\theta_n) lnL(θ)lnL(θn)Q(θθn)

Q ( θ ∣ θ n ) Q(\theta|\theta_n) Q(θθn)被称为下确界函数,我们要使得 l n L ( θ ) lnL(\theta) lnL(θ)尽可能的大,就要使得 Q ( θ ∣ θ n ) Q(\theta|\theta_n) Q(θθn)尽可能的大,所以我们每次求得下确界函数的极大值(求偏导=0,得到极大值),将该极大值带入似然函数,求得新的下确界函数,一直迭代到 ∣ ∣ θ n + 1 − θ n ∣ ∣ ≤ ξ ||\theta_{n+1}-\theta_n || \leq \xi ∣∣θn+1θn∣∣ξ,得到的参数即为最优参数。
这里写图片描述

红色那条线就是我们的对数似然函数,蓝色那条是我们在当前参数下找到的对数似然的下界函数,可以看到,我们找到它的局部极值那么参数更新成thetanew,此时对数似然函数的值也得到了上升,这样重复进行下去,是不是就可以收敛到对数似然函数的一个局部极值了嘛。对的,局部极值

EM算法思想:

含有隐含项的最大似然函数难求解–>求得下边界函数的极值->将其看做此时的函数参数–>得到新的似然函数–>再次得到新的下边界曲线–>迭代至收敛

1 拿到所有的观测样本,根据先验或者喜好先给一个参数估计。

2 根据这个参数估计和样本计算类别分布Q,得到最贴近对数似然函数的下界函数。

3 对下界函数求极值,更新参数分布。

4 迭代计算,直至收敛。

EM算法的流程:

输入:已知数据Y,和未知隐变量Z(随机赋值)
输出: θ \theta θ

1°:给 θ \theta θ 随机赋初值 θ 0 \theta_0 θ0
2°:E步,令 θ n \theta_n θn为第n次已经求得的参数,对 l n P ( y ∣ z ) lnP(y|z) lnP(yz) P θ n ( z ∣ y ) P_{\theta_n}(z|y) Pθn(zy)为概率求期望。

Q ( θ ∣ θ n ) = ∑ z P θ n ( z ∣ y ) l n P ( y ∣ z ) Q(\theta|\theta_n)=\sum_zP_{\theta_n}(z|y)lnP(y|z) Q(θθn)=zPθn(zy)lnP(yz)

3°:M步,对 Q Q Q函数求偏导,得到极大值,得到使得其获得极大值的 θ \theta θ值。
4°:重复2和3步,直到 ∣ ∣ θ n + 1 − θ n ∣ ∣ ≤ ξ ||\theta_{n+1}-\theta_n || \leq \xi ∣∣θn+1θn∣∣ξ
5°:输出最优模型参数 θ \theta θ

EM算法可以保证收敛到一个稳定点,但是不能保证收敛到全局的极大值点,因此是局部的最优算法。当然,如果我们的优化目标是凸的,则EM算法可以保证收敛到全局最大值。

如果我们从算法思想的角度来思考EM算法,我们可以发现我们的算法里已知的是观察数据,未知的是隐含数据和模型参数,在E步,我们所做的事情是固定模型参数的值,优化隐含数据的分布,而在M步,我们所做的事情是固定隐含数据分布,优化模型参数的值。比较下其他的机器学习算法,其实很多算法都有类似的思想。比如SMO算法(支持向量机原理(四)SMO算法原理),坐标轴下降法(Lasso回归算法: 坐标轴下降法与最小角回归法小结), 都使用了类似的思想来求解问题。

三、GMM

高斯混合模型指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同分布的情况,或者是同一类分布但是参数不同,或者是不同类型的分布。

GMM中,样本的分类标签是未知的

下图中,明显是两个类别,如果没有GMM,那么只能用一个二维高斯分布来描述图1的数据。
这时候就可以使用GMM了!
这里写图片描述

如图2,数据在平面上的空间分布和图1一样,这时使用两个二维高斯分布来描述图2中的数据,分别记为 N ( μ 1 , Σ 1 ) N(μ 1 ,Σ 1 ) N(μ1,Σ1) 和$N(μ 2 ,Σ 2 ) . 图中的两个椭圆分别是这两个高斯分布的二倍标准差椭圆。可以看到使用两个二维高斯分布来描述图中的数据显然更合理。实际上图中的两个聚类的中的点是通过两个不同的正态分布随机生成而来。如果将两个二维高斯分布 . 图中的两个椭圆分别是这两个高斯分布的二倍标准差椭圆。可以看到使用两个二维高斯分布来描述图中的数据显然更合理。实际上图中的两个聚类的中的点是通过两个不同的正态分布随机生成而来。如果将两个二维高斯分布 .图中的两个椭圆分别是这两个高斯分布的二倍标准差椭圆。可以看到使用两个二维高斯分布来描述图中的数据显然更合理。实际上图中的两个聚类的中的点是通过两个不同的正态分布随机生成而来。如果将两个二维高斯分布N(μ 1 ,Σ 1 ) 和 和 N(μ 2 ,Σ 2 ) $合成一个二维的分布,那么就可以用合成后的分布来描述图2中的所有点。最直观的方法就是对这两个二维高斯分布做线性组合,用线性组合后的分布来描述整个集合中的数据。这就是高斯混合模型(GMM)。
这里写图片描述

GMM:
设有随机变量X ,则混合高斯模型可以用下式表示:

这里写图片描述

其中$N(x|μ_ k ,Σ_ k ) 称为混合模型中的第 k 个分量( c o m p o n e n t )。如前面图 2 中的例子,有两个聚类,可以用两个二维高斯分布来表示,那么分量数 称为混合模型中的第k 个分量(component)。如前面图2中的例子,有两个聚类,可以用两个二维高斯分布来表示,那么分量数 称为混合模型中的第k个分量(component)。如前面图2中的例子,有两个聚类,可以用两个二维高斯分布来表示,那么分量数K=2 $. π k π _k πk 是混合系数(mixture coefficient),且满足: ∑ k = 1 K π k = 1 , 0 ≤ π k ≤ 1 \sum_{ k=1}^{ K} π _k =1 ,0\leqπ _k\leq1 k=1Kπk=1,0πk1

π k \pi_k πk相当于每个分量$N(x|μ_ k ,Σ_ k ) $的权重。

这里写图片描述

这里写图片描述
这里写图片描述

  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
最大模型学习的DFP算法是一种优化算法,用于在最大模型中学习参数。DFP算法是由Davidon-Fletcher-Powell三位数学家提出的,是一种二次拟牛顿法,在最大模型学习中被广泛应用。 最大模型是一种基于信息原理的概率模型,它通过最大化的原则来确定模型的参数。最大模型的学习问题可以转化为一个优化问题:找到一个参数向量,使得该向量对应的模型在训练数据上的似然函数最大。 DFP算法通过使用拟牛顿法的思想,利用已知的函数值和梯度信息来近似估计目标函数的海森矩阵,并利用这个估计的海森矩阵来更新参数向量。DFP算法的核心是维护一个近似的海森矩阵,然后使用这个近似的海森矩阵来计算下一步的搜索方向。 具体来说,DFP算法的步骤如下: 1. 初始化参数向量和近似海森矩阵H0; 2. 计算当前参数向量的梯度g; 3. 计算搜索方向d=-Hk*g; 4. 通过线搜索确定步长α; 5. 更新参数向量xk+1=xk+α*d; 6. 计算新的梯度gk+1; 7. 计算近似海森矩阵Hk+1; 8. 重复步骤2-7,直到收敛。 需要注意的是,DFP算法中的关键在于如何计算近似海森矩阵Hk+1。一般采用BFGS公式或DFP公式来更新海森矩阵,这些公式都是基于拟牛顿法的思想,通过使用已知的函数值和梯度信息来近似估计目标函数的海森矩阵,从而实现参数的更新。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值