生成模型

生成模型


  生成模型对数据的潜在分布进行学习,之后便可以使用贝叶斯法则预测最优分类。然而困难在于,对于数据的潜在分布学习,通常比预测器的训练还要困难。有的时候生成式的方法是合理的,比如模型的参数估计比较容易,或者对学习任务不明确,或者是对数据本身理解的时候。就像下面这个例子:
  

极大似然估计

假设有0,1号两个桶,有m个球随机的落入两个桶中,落入哪个桶则记录为那个桶的编号,那么如何去估计这些编号的概率分布?
抽象一下也就可以看出在数据及S={0,1,1,1,0,0……}上,假设落入桶1号的概率是θ,那么如何对θ进行估计。一个直观的想法就是统计出1出现的频率,即

θ^=1mixi

显然 ES(θ^)=θ ,即 θ^ 是θ的无偏估计,又由于 θ^ 是m个独立同分布的随机变量的均值,由Hoeffding不等式知

P{|θ^θ|log(2/δ)2m}1δ

对所有的δ成立
θ^ 的另外一种解释,即它是参数θ的极大似然估计。样本的生成概率

P(S)=iθxi(1θ)1xi

对上式取对数,得到对数似然函数

L(S,θ)=log(θ)ixi+log(1θ)i(1xi)

对上式求导并令倒数为0,最终求出 θ^ 为最开始的式子。
那么极大似然估计一定是无偏估计吗?
考虑一个一维正态分布的例子

P(x;μ,σ2)=1σ2πexp((xμ)22σ2)

对数似然函数

L(S,θ)=12σ2i(xμ)2mlog(σ2π)

分别让上式对μ和σ^2的偏导数为0,求出极大似然估计

μ^=1mixi

σ2^=1m(xiμ^)2

显然 μ^ 是μ的无偏估计,但是

E[σ2^]=E[1m(xiμ^)2]=m+1mσ2

由此可以推出当m趋近无穷大的时候, σ2^=σ2 ,即 σ2^ 是σ^2的一致估计,而并不是无偏估计。

极大似然与经验风险最小化
当定义不同的损失函数时,经验风险有不同的表达式。极大似然相当于特定的损失函数的经验风险,即对数损失函数

l(θ,x)=log(Pθ(x))

那么极大似然准则就是对数损失函数的经验风险最小化

argmaxθi(log(Pθ(x)))=argminθil(θ,xi)

求出极大似然估计的 θ^ 后,那么与数据潜在分布θ的真实风险就是

EPθ(x)[l(θ^,x)]=xPθ(x)logPθ^(x)

极大似然估计的过拟合
估计的优劣都可以用真实风险来评估,回到最开始的例子,假如θ的真实值非常小,那么样本分布有很大的概率是全0,此时的极大似然估计 θ^=0 ,带入真实风险中计算得出真实风险为 log(1/0)=
解决过拟合的一种方法就是加入正则化项,这里可以仿照贝叶斯分类器中的拉普拉斯平滑来适当解决一下问题。
还是最开始的例子,对于m个已知样本,直接加入0,1两个伪样本一起去分析,那么此时的损失是

L(S,θ)=il(θ,xi)+log(θ)+log(1θ)

该正则化极大似然估计的解为

θ^=1m+2(1+ixi)

很显然 E[θ^]=1+mθm+2 也是θ的一致估计,二者之差

|θ^θ|=|θ^E[θ^]+E[θ^]θ||θ^E[θ^]|+|E[θ^]θ|

后者 |E[θ^]θ|=|12θm+2| 当m较大时趋近于0,那么仅考虑前面一项

|θ^E[θ^]|=mm+2|θ^θ|

由上面的结论可知

P{|θ^E[θ^]|mlog(2/δ)2(m+2)2}1δ

P{|θ^θ]|mlog(2/δ)2(m+2)2}1δ

对所有的δ成立。
此时的真实损失为

loss=xPθ(x)logPθ^(x)

写成相对熵形式

loss=xPθ(x)logPθ(x)Pθ^(x)+xPθ(x)log1Pθ(x)

加号后面的部分是与 θ^ 无关的常数,那么相对熵 xPθ(x)logPθ(x)Pθ^(x) 决定了loss的大小。根据Jensen不等式,对于log这种凸函数有

xPθ(x)logPθ(x)Pθ^(x)log(xPθ(x)Pθ(x)Pθ^(x))

带入x可能的取值0,1得

xPθ(x)logPθ(x)Pθ^(x)log(θ2θ^+(1θ)2(1θ^))=log(θ2θ^2θθ^θ^(1θ^))=log(1+(θθ^)2θ^(1θ^))

由于上面求出了 |θ^θ]| 的概率界,那么

P{(θ^θ)2mlog(2/δ)2(m+2)2}1δ

对所有的δ成立。
θ^=1m+2(1+ixi) ,所以 1m+2θ^m+1m+2
那么 m+1(m+2)2θ^(1θ^)14 ,得到

P{(θθ^)2θ^(1θ^)mlog(2/δ)2(m+1)}1δ

δ=0.05 ,那么推出 losslog(1+mlog402(m+1))+xPθ(x)logPθ(x) 成立的概率大于95%,从而控制了最差情况下的损失量。

隐变量与EM算法

在生成模型中,我们通常假设数据通过实力空间中根据一个或多个分布抽样而来。有时候借助隐变量可以很好的表达这些分布。隐变量广泛的应用于混合模型中,最常见的比如高斯混合模型。
混合模型也有区分,类比于硬聚类与软聚类,硬聚类认为某个样本只会属于一个类别,而软聚类则认为样本按概率属于每种分类。同样对于混合模型,可以认为某个样本只是从某一个分布中采样,也可能是多个分布采样后混合而成。
为了简化,这里用一维的高斯混合模型举例,假设样本x由k个高斯分布混合Y而成,每个混合的权重用c表示,x从第k个分布抽样出来的概率是

P(X=x|Y=k)=1σ2πexp((xμ)22σ2)

于是x的生成概率可以写成

P(X=x)=yP(Y=k)P(X=x|Y=k)

那么对于样本集,我们需要做的是求出使对数似然最大化的参数θ(σ,μ,c),对数似然写为

L(θ)=ilogPθ(X=xi)

由于 Pθ(X=xi) 中含有累加,对于对数函数中有累加的全局最优化并不好做,那么可以使用一个基于迭代的方法去搜索对数似然的局部最优结果,这就是EM算法。
EM算法的思路是,同时考虑隐变量和参数不好求解,但是固定其中一个求另一个却很简单,那么便每次固定一个,去优化另一个,如此迭代直到收敛。
这里使用一个隐变量Q(i,k)来描述 xi 从第k个高斯分布抽样出来的概率,那么

Q(i,k)=P(Y=k)P(X=x|Y=k)P(X=x)

可以看出,对于固定的参数θ(σ,μ,c),Q(i,k)很容易求出来
那么先前的对数似然可以写成

L(Q,θ)=ikQ(i,k)log(Pθ(X=xi,Y=k))

此时对数函数中不再包含累加,固定住Q,使L最大的参数θ也会很容易求出。
然后根据新的θ求出新的Q,根据新的Q求出新的θ…………………………………..
其中求Q的步骤称为E步,即期望步骤,求θ成为M步,即最大化步骤。

EM算法的正确性
EM算法的每一次迭代都是更优的解吗?
考虑一种更一般的表达式

L(θ)=logP(X|θ)

要证明的是 L(θt+1)L(θt)
P(X|θ) 并不友好的时候(比如前面的 P(xi|θ) 中含累加),直接优化会非常的困难,此时加入隐变量Z,把依赖关系从最开始的 xθ 变成 XZθ ,改写 L(θ)

L(θ)=logP(X,Z|θ)/P(Z|X,θ)=logP(X,Z|θ)logP(Z|X,θ)

对两边以 P(Z|X,θt) 求期望,左边不包含 Z ,所以求期望后值不变,即

L(θ)=ZP(Z|X,θt)logP(X,Z|θ)ZP(Z|X,θt)logP(Z|X,θ)

为了方便,记左边式子为 Q(θ,θt) ,右边的式子为 H(θ,θt)
在EM算法中,为了计算简便,只会对Q(θ,θ^t)进行最大化,求出 θt+1=argmaxθQ(θ,θt)
此时保证了 Q(θt+1,θt)Q(θt,θt) ,但是一定能保证 L(θt+1)L(θt) 吗?
答案是可以,因为 H(θt+1,θt)H(θt,θt) 是肯定成立的。
设函数

T(θ)=H(θ,θt)H(θt,θt)=ZP(Z|X,θt)logP(Z|X,θ)P(Z|X,θt)

同样根据Jensen不等式有

T(θ)log(ZP(Z|X,θt)P(Z|X,θ)P(Z|X,θt))=logZP(Z|X,θ)

由于 P(Z|X,θ) 是概率,所以 ZP(Z|X,θ)=1 ,即 T(θ)0 恒成立
所以 T(θt+1)0 成立,从而得出 L(θt+1)L(θt)

软聚类的一个实例-软k-means
软k-means认为每个样本按概率属于某一个分类,那么对于m个样本和k个分类的软k-means,假设c(i,k)表示第i个样本属于第k个分类的概率,隐变量v(i,k)表示第i个样本到第k个分类的距离,那么如何使用EM算法估计出c呢?

E步:此时假设c是已知的,那么对于第k个分类的类中心就是

Ok=ic(i,k)xiic(i,k)

从而求出

v(i,k)=|xiOk|

M步:此时假设v是已知的,那么只需要极大对数似然

L(c)=ikv(i,k)logc(i,k)

显然对于每个样本这些操作是独立的,那么可以简化成对每个样本的操作

L(c,i)=kvi(k)logci(k)

vi 归一化, vi=vikvi(k)

L(c,i)=(ivi(k))kvi(k)logci(k)

L(c,i)=(ivi(k))[kvi(k)logci(k)vi(k)+kvi(k)logvi(k)]

其中后面一项是与 vi 相关的常数,前面是 D(vi(k)||ci(k)) ,即相对熵的相反数,肯定是小于等于0的,当 vi=ci 时,相对熵等于0,L(c,i)取最大值。

参考书籍与视频:
徐亦达机器学习公开课 EM算法
http://i.youku.com/i/UMzIzNDgxNTg5Ng==?spm=a2h0z.8244218.2371631.d6373
深入理解机器学习:第24章 生成模型

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值