生成模型
生成模型对数据的潜在分布进行学习,之后便可以使用贝叶斯法则预测最优分类。然而困难在于,对于数据的潜在分布学习,通常比预测器的训练还要困难。有的时候生成式的方法是合理的,比如模型的参数估计比较容易,或者对学习任务不明确,或者是对数据本身理解的时候。就像下面这个例子:
极大似然估计
假设有0,1号两个桶,有m个球随机的落入两个桶中,落入哪个桶则记录为那个桶的编号,那么如何去估计这些编号的概率分布?
抽象一下也就可以看出在数据及S={0,1,1,1,0,0……}上,假设落入桶1号的概率是θ,那么如何对θ进行估计。一个直观的想法就是统计出1出现的频率,即
θ^=1m∑ixi
显然 ES(θ^)=θ ,即 θ^ 是θ的无偏估计,又由于 θ^ 是m个独立同分布的随机变量的均值,由Hoeffding不等式知
P{|θ^−θ|≤log(2/δ)2m−−−−−−√}≥1−δ
对所有的δ成立
θ^
的另外一种解释,即它是参数θ的极大似然估计。样本的生成概率
P(S)=∏iθxi(1−θ)1−xi
对上式取对数,得到对数似然函数
L(S,θ)=log(θ)∑ixi+log(1−θ)∑i(1−xi)
对上式求导并令倒数为0,最终求出
θ^
为最开始的式子。
那么极大似然估计一定是无偏估计吗?
考虑一个一维正态分布的例子
P(x;μ,σ2)=1σ2π√exp(−(x−μ)22σ2)
对数似然函数
L(S,θ)=12σ2∑i(x−μ)2−mlog(σ2π−−√)
分别让上式对μ和σ^2的偏导数为0,求出极大似然估计
μ^=1m∑ixi
σ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[θ^′]−θ|=|1−2θ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{(θ^′−θ)2≤mlog(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 ,那么推出 loss≤log(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,θ)=∑i∑kQ(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→θ
变成
X→Z→θ
,改写
L(θ)
为
L(θ)=logP(X,Z|θ)/P(Z|X,θ)=logP(X,Z|θ)−logP(Z|X,θ)
对两边以 P(Z|X,θt) 求期望,左边不包含 Z ,所以求期望后值不变,即
为了方便,记左边式子为
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))=log∑ZP(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)xi∑ic(i,k)
从而求出
v(i,k)=|xi−Ok|
M步:此时假设v是已知的,那么只需要极大对数似然
L(c)=∑i∑kv(i,k)logc(i,k)
显然对于每个样本这些操作是独立的,那么可以简化成对每个样本的操作
L(c,i)=∑kvi(k)logci(k)
将 vi 归一化, v∗i=vi∑kvi(k)
L(c,i)=(∑ivi(k))∑kv∗i(k)logci(k)
L(c,i)=(∑ivi(k))[∑kv∗i(k)logci(k)v∗i(k)+∑kv∗i(k)logv∗i(k)]
其中后面一项是与 v∗i 相关的常数,前面是 −D(v∗i(k)||ci(k)) ,即相对熵的相反数,肯定是小于等于0的,当 v∗i=ci 时,相对熵等于0,L(c,i)取最大值。
参考书籍与视频:
徐亦达机器学习公开课 EM算法
http://i.youku.com/i/UMzIzNDgxNTg5Ng==?spm=a2h0z.8244218.2371631.d6373
深入理解机器学习:第24章 生成模型