• 概率图模型课堂笔记 3.5 不完整数据学习


    第一节 概述

    1. 预备知识:我们前面讨论的贝叶斯网的似然值,是基于所有的数据都已经被观察到的情况下。

    考虑一个简单的图$X o Y$,其中XY都是二项分布。

    $L(D: heta)=P(x_0)^{M[x_0]}P(x_1)^{M[x_1]}P(y_0|x_0)^{M[x_0,y_0]}P(y_1|x_0)^{M[x_0,y_1]}P(y_0|x_1)^{M[x_1,y_0]}P(y_1|x_1)^{M[x_1,y_1]}$

    这里有三个独立项:

    (1)$P(x_0)^{M[x_0]}P(x_1)^{M[x_1]}$

    (2)$P(y_0|x_0)^{M[x_0,y_0]}P(y_1|x_0)^{M[x_0,y_1]}$

    (3)$P(y_0|x_1)^{M[x_1,y_0]}P(y_1|x_1)^{M[x_1,y_1]}$

    都是可以独立求最大值的。

    但是,如果只有Y被观察到的情况下

    $L(D: heta)=P(y_0)^{M[y_0]}P(y_1)^{M[y_1]}=(P(x_0)P(y_0|x_0)+P(x_1)P(y_0|x_1))^{M[y_0]}(P(x_0)P(y_1|x_0)+P(x_1)P(y_1|x_1))^{M[y_1]}$

    我们观察两项:

    (1)$(P(x_0)P(y_0|x_0)+P(x_1)P(y_0|x_1))^{M[y_0]}$

    (2)$(P(x_0)P(y_1|x_0)+P(x_1)P(y_1|x_1))^{M[y_1]}$

    两项同时受P(x_0)的影响,那么它们的最大值就不再独立。事实上$L(D: heta)$将有多个极大值。求最大值会相当麻烦。

    另外,每项中加式的存在,使得采用log likelihood也不再有任何便利性。

    在实际应用中,有很多情况下,是有些实例的X值被观察到,另外的没被观察到。那么推导MLE后不难发现也符合上面的性质。

    2. 缺失数据的模型

    缺失数据有两种情况,一种是有意缺失,一种是随机缺失。

    我们定义三组变量: $X_i$为我们关心的随机变量,$O_i$表示观测到与否(0/1),$Y_i$表示观测到的$X_i$值。$Val(Y_i)=Val(X_i)+{?}$

    如果 $X$和$O$之间有边,那么属于有意缺失,否则属于随机缺失。用数学式描述随机缺失的条件是:$P_{missing}models (Operp H|d)$

    3. 参数相关性

    回到图$X o Y$,我们可以发现在Y给定,X未给定的情况下,$ heta_X$于$ heta_{Y|X}$之间存在一条有效迹,说明它们是互相影响的。

    例如,在给定Y=0的情况下,如果$ heta_{y_0|x_0}$越大,则意味着$ heta_{x_0}$很大。

    第二节 似然优化方法

    1. 梯度上升算法。对似然函数,我们有:

    $frac{partiallog P(D|Theta)}{partial heta_{x_i|oldsymbol u_i}}=frac{1}{ heta_{x_i|oldsymbol u_i}}sum_m P(x_i,oldsymbol u_i|d[m],Theta)$

    (1)这里是对数似然对每个参数的偏导数

    (2)针对每个参数,需要对1~M每个实例,在当前的参数取值下,做一次inference。

    这个因为$(X,oldsymbol U)$总是在同一个clique里,因此可以用团树来做inference(问题:团树不是用于马尔科夫网的吗?)

    (3)对于每个顶点,将包含M(N-1)个参数。N为顶点取值,M为所有父亲可能取值的组合

    优点:灵活,可以用于非table CPD,利用导数的链式法则。

    缺点:

    (1)这是一个约束优化问题:对参数取值有限制,必须满足是合法的CPD(如$sum_x P(x)=1$等)

    (2)需要一些高级的梯度算法来完成收敛,这样将增加计算成本

    2. EM算法

    这个算法的提出基于两点考虑:

    (1)参数完整时,计算缺失数据的取值分布很容易(标准inference)

    (2)数据完整时,计算参数很容易(用充分统计量)

    因此这个算法也是一个迭代算法,每次分为两步:

    (1)E-step:根据目前的参数$ heta^{(t)}$计算期望充分统计量(ESS)

    a. 对每组数据$d[m]$,所有的变量$x$,以及所有可能的$(x,oldsymbol u)$取值,计算$P(x,oldsymbol u|d[m], heta^{(t)})$,这个涉及一次inference。

    对于如果(x,u)与d[m]中相应的变量值相等,则值为1,不相等,则值为0,若未观测到,将为一个概率。

    b. 计算期望充分统计量(ESS),这个就是把在不同数据实例下的$P(x,oldsymbol u)$加起来:$overline{M_{ heta^{(t)}}}[x,oldsymbol u]=sum_m P(x,oldsymbol u|d[m], heta^{(t)})$

    (2)M-step:计算下一次迭代的参数值。

    把ESS当做实际充分统计量,更新迭代参数值:

    $ heta_{x|oldsymbol u}^{(t+1)}=frac{overline{M_{ heta^{(t)}}}[x,oldsymbol u]}{overline{M_{ heta^{(t)}}}[oldsymbol u]}$

    优点:(1)实现简单(2)一开始收敛很快 缺点:后期收敛很慢,因此这时候可以改用梯度下降。

    3. EM实例:朴素贝叶斯,这里假设$c$为隐变量,其余变量$x_i$均观察到。那么变成了一个聚类问题

    (1)E-step

    a. 统计每个类别c有多少个实例

    $overline{M_{ heta^{(t)}}}[c]=sum_m P(c|x_1[m],cdots,x_n[m], heta^{(t)})$

    其中$P(c|x_1[m],cdots,x_n[m], heta^{(t)})=frac{P(x_1[m],x_2[m],cdots,x_n[m]|c)P(c)}{P(x1[m],x2[m],cdots,x_n[m])}$

    $=frac{(prod_i P(x_i[m]|c))P(c)}{sum_{c'}(prod_i P(x_i[m]|c'))P(c')}$

    b. 统计每个每个类别c中特征i的值为$x_i$的实例有多少个

    $overline{M_{ heta^{(t)}}}[x_i,c]=sum_m P(c,x_i|x_1[m],cdots,x_n[m], heta^{(t)})=sum_{m:x_i[m]=x_i}P(c|x_1[m],cdots,x_n[m], heta^{(t)})$

    其中$P(c,x_i|x_1[m],cdots,x_n[m], heta^{(t)})=egin{cases}0&x_i e x_i[m]\P(c|x_1[m],cdots,x_n[m], heta^{(t)})&x_i=x_i[m]end{cases}$

    (2)M-step

    a. 计算每个类别c的概率

    $ heta_c^{(t+1)}=frac{overline{M_{ heta^{(t)}}}[c]}{M}$

    b. 计算每个类别c里,每个feature各个取值的概率

    $ heta_{x_i|c}^{(t+1)}=frac{overline{M_{ heta^{(t)}}}[x_i,c]}{overline{M_{ heta^{(t)}}}[c]}$

    第三节 EM算法分析

    1. 定义几个变量:

    $d$:某实例中观察到的变量值。

    $H$: 某实例中的隐藏变量。

    $Q(H)$:隐藏变量的分布率,通常指当前优化出来的$ heta^{(t)}$

    2. 首先,我们假设H已经观察到了取值h,在这种情况下计算$langle d,h angle$取值在$ heta$下发生的似然(单个数据实例的似然):

    $L( heta,langle d,h angle)=P(d,h| heta)=prod_iprod_{(x_i,oldsymbol u_i)in Val(Xi,Pa_{X_i})} heta_{x_i|oldsymbol u_i}^{1_{langle d,h angle}[x_i,oldsymbol u_i]}$

    其中$1_{langle d,h angle}[x_i,oldsymbol u_i]$代表$(x_i,oldsymbol u_i)$是否和$(d,h)$中对应的变量值相等。可以看出,对于和d中一致的$(x_i,oldsymbol u_i)$,就乘上了对应的概率,否则乘1,不影响乘积。

    而对数似然为:

    $l( heta,langle d,h angle)=prod_iprod_{(x_i,oldsymbol u_i)in Val(Xi,Pa_{X_i})}1_{langle d,h angle}[x_i,oldsymbol u_i]log heta_{x_i|oldsymbol u_i}$

    3. 但是H并没有观察到,所以去掉假设,用$H$的分布$Q(H)$,对上述函数求期望值,得出期望对数似然(ELL):

    $E_{Q(H)}[l( heta:langle d,H angle)]=$

    $=sum_{h'}Q(h')sum_isum_{(x_i,oldsymbol u_i)in Val(X_i,Pa_{X_i})}1_{langle d,h' angle}[x_i,oldsymbol u_i]log heta_{x_i|oldsymbol u_i}$

    $=sum_isum_{(x_i,oldsymbol u_i)in Val(X_i,Pa_{X_i})}(sum_{h'}Q(h')1_{langle d,h' angle}[x_i,oldsymbol u_i]log heta_{x_i|oldsymbol u_i})$

    $=sum_isum_{(x_i,oldsymbol u_i)in Val(X_i,Pa_{X_i})}Q(x_i,oldsymbol u_i)log heta_{x_i|oldsymbol u_i}$

    注意,无法方便地求likelihood的期望值,因为求和要转换为乘积,无法得出有效表达式。所以这里改求log likelihood的期望值

    4. 我们定义$Q_m^{(t)}(H[m])=P(H[m]|d[m], heta^{(t)})$,带入上式Q,并对m个数据实例求和:

    $sum_m E_{Q_m^{(t)}(H[m])}[l( heta:langle d,H angle)]=sum_isum_{(x_i,u_i)}sum_m P(x_i,u_i|d[m], heta^{(t)})log heta_{x_i|u_i}$

    $=sum_isum_{(x_i,u_i)}overline{M_{ heta^{(t)}}}[x,oldsymbol u]log heta_{x_i|u_i}$

    可以看出,本节定义的ELL(期望对数似然)刚好就是用前一节定义的ESS(期望充分统计量)在参数$ heta^{(t)}$计算出来的对数似然。

    个人理解:期望对数似然(ELL)是在概率取对数后做期望(加权平均),巧妙地避开了加法和乘法混在一起导致多个局部最优解的问题。而观察第一节原表达式$l(D: heta)$,是概率做期望后取对数,两者并不相同。可以认为在用ELL逼近真实的$l(D: heta)$,而且从图上看,可以看出两者在$ heta^{(t)}$处的取值和斜率都一样。

    5. EM可以保证:

    (1) $L(D: heta^{(t+1)})ge L(D: heta^{(t)})$

    (2) 如果$L(D: heta^{(t+1)}=L(D: heta^{(t)})$,则达到局部最大值。局部最小值几乎不可能,因为每次迭代都是增大的,除非一开始就选中了局部最小值。

    第四节 EM在实际中的表现

    1. 收敛

    (1)前面(10步)往往收敛很快

    (2)后面收敛变得很慢,但是参数的变化却很大

    (3)过多次数可能过度拟合,导致测试集的乘积开始缓慢下降

    2. 局部最优

    (1)数据较少时,发现的局部最优点很多,随着M增大,开始减少

    (2)缺失数据较少,局部最优减少得快

    (3)如果一个变量完全未观察到,即使缺失数据所占比例不大,局部最优解也一直很多,哪怕数据再多。

    (4)局部最优解的值差异也很大,不能忽略,随着发现的局部最优点增多,最终解会不断优化。

    3. 因为局部最优解差异很大大,所以初始化很重要

    (1)采用多个随机初始点

    (2)使用先验知识

    (3)使用简单的聚类算法来填充部分缺失值

    第五节 隐藏节点的学习

    1. 聚类:朴素贝叶斯,C变量为latent,实现自动聚类

    2.

  • 相关阅读:
    sql语句中的一些常用语法
    torch_12_BigGAN全文解读
    torch_12_dataset和dataLoader,Batchnormalization解读
    torch_11_BEGAN
    torch_11_风格迁移和cycleGAN
    torch_10_stackGAN-V2
    torch_09_DCGAN_注意的细节
    torch_09_GAN
    pytorch-04-激活函数
    torch_07_卷积神经网络案例分析
  • 原文地址:https://www.cnblogs.com/milaohu/p/6359660.html
Copyright © 2020-2023  润新知