• 概率图模型课堂笔记:3.1&3.2 贝叶斯网的参数估计


    1.1 概论

    1. 根据目标概率分布P*(或对应的概率图M*)的数据样本,以及专家给出的预设,学习出一个概率图网络

    2. 几种不同的情况:

    (1)已知结构,数据完整

    (2)未知结构,数据完整

    (3)已知结构,数据不完整

    (4)未知结构,数据不完整(有可能需要增加隐藏结点)

    3. PGM学习的几个任务:

    (1)回答Query,如P(X), P(X|Y)。一个简单的指标是训练集似然$P(D:M)$,但是更好的是用测试集似然$P(D':M)$来评价。

    (2)根据一些已知变量x推测未知变量y的值。虽然预测准确率是第一要务,但是从数学表示上,似然是最方便的。如$prod_mP(y[m]|x[m]:M)$

    (3)直接关于结构的研究:例如发现变量之间直接和间接的依赖关系,发现依赖方向(箭头方向),发现隐藏变量。通常也用最大似然来学习,虽然不一定是最好,但是数学上方便。评价的话,一般看看学习出的结构和我们已知的有限结构是否符合。

    4. 避免过度拟合,过度拟合有两种

    (1)参数的过度拟合:参数过度拟合训练数据中的噪声,一般用regularzation/param priors来处理,后者将详细介绍。

    (2)结构的过度拟合:一般来说,结构越复杂,似然值越高,一般用结构复杂度惩罚来处理

    5. 过渡拟合一般通过上述的超参数来处理。超参的选择一般要引入第三个数据集:cross validation数据集。回顾机器学习中关于多项式次数的选择。

    6. PGM学习(相对其他机器学习方法)的优势:

    (1)预测结构化的数据(例如序列,整个图,树)。因为通常能发现不同目标变量之间的关系。

    (2)可以将先验知识用于结构中

    (3)一个模型处理多个任务(?大概是结构相同但是参数不同)

    (4)知识发现框架(?)

    1.2 最大似然估计

    1. 考虑丢非均匀硬币实验(伯努利模型),$P(X=1)= heta,P(X=0)=1- heta$

    (1) M次抛掷,对每次结果定义变量$X[1],X[2],cdots,X[M]$,在概率图上表示是$P(X[m]=1| heta)= heta,P(X[m]=0| heta)=1- heta,且X[m]perp X[j]| heta$

    (2) 我们有$P(x[1],x[2],cdots,x[M]| heta)=prod_{m=1}^MP(x[m]| heta)=L( heta:D)$,即似然值。

    (3) 例如,对$X=[1,1,1,0,0]$我们有$L( heta:D)= heta^3cdot (1- heta)^2$,在$ heta=0.6$取到最值。

    2. 充分统计量

    (1) 对单个采样$X[m]$,我们定义一个从采样空间到$mathbf R^k$的函数$s(X[m])$。对数据集$D$,则定义$s(D)$为每个$s(X[m])$的和。若对数据集$D$,其似然值只和$s(D)$相关,我们称$s$为充分统计量。

    (2) 对于有$k$个取值的随机变量X,数据集$D$的似然值只和每个值出现的次数$M_i$有关,即$s[x]=[0,0,cdots\,1,cdots,0,0]$。

    似然值$L( heta:D)=prod_{i=1}^k heta_i^{M_i}$,当$ heta_i=M_i/k$时,L获得最大值

    (3) 对高斯分布来说,$P(X=x|mu,sigma)=frac{1}{sqrt{2pi}sigma}exp(-frac{1}{2sigma^2}x^2+frac{mu}{sigma^2}x-frac{mu^2}{sigma^2})$,那么对数据集:

     $L( heta:D)=P(x_1,x_2,cdots,x_M|mu,sigma)=frac{1}{sqrt{2pi}sigma}exp(-frac{1}{2sigma^2}sum_mx_m^2+frac{mu}{sigma^2}sum_mx-frac{Mmu^2}{sigma^2})$

    令$s(x)=(x^2,x,1)$,则$s(D)=(sum_mx[m]^2,sum_mx[m],1)$

    当$mu=frac 1 Msum_mx[m],sigma=sqrt{frac 1 Msum(x[m]-mu)^2}$时,L取得最大值。

    1.3 贝叶斯网的最大似然估计

    1. 对于贝叶斯网的图来说,其实参数可以认为就是变量本身的分布率,只是因为多个采样共用相同的分布率形成了一个Plate Model,所以把共有的分布率提取为参数变量放在Plate外面。

    2. 以$X o Y$这个model为例,

    $L(Theta:D)$

    $displaystyle =prod_{m=1}^MP(x[m],y[m]: heta)$ // 每个样本x[m],y[m]的联合概率,全都乘起来,就是整个数据集的似然值。

    $displaystyle =prod_{m=1}^MP(x[m]: heta)P(y[m]|x[m]: heta)$ // 条件概率的定义

    $displaystyle =prod_{m=1}^MP(x[m]: heta)prod_{m=1}^MP(y[m]|x[m]: heta)$ //乘法交换律

    $displaystyle =prod_{m=1}^MP(x[m]: heta_X)prod_{m=1}^MP(y[m]|x[m]: heta_{Y|X})$

    $=L_x(Theta_x:D)L_y(Theta_{Y|X}:D)$

    可以看出,其实就是每个变量在每个样本中的值发生的条件概率乘起来。这里要注意,虽然不同的变量被分开累乘了,但是因为$Y[m]$依赖$X[m]$,所以计算$L_y(D:Theta_{Y|X})$的时候还是要从对应的$X[m]$查各个$P(Y[m]|X[m])$

    3. 对表格(factor)形式的CPD来说,$displaystyle L( heta_{X|U}:D)=prod_{m=1}^MP(x[m]|u[m]: heta_{X|U})$,将所有因子按$x,u$的取值聚类,得$prod_{x,u} heta_{x,u}^{M_{x,u}}$

    所以最大似然估计是$hat{ heta}_{X|U}=M[x,u]/M[u]$,即数据集中(x,u)同时出现的次数除以u出现的次数。

    4. 对于状态机来说,如果$S_i o S_j$的转移概率有一张表,给定一个状态转移序列$S_0,S_1,cdots,S_T$,则

    $L( heta:S^{(0,T)})$

    $displaystyle =prod_{t=1}^TP(S^{(t)}|S{(t-1)}: heta)$

    $displaystyle =prod_{i,j}prod_{t:S^{(t)}=i,S{(t+1)}=j}P(S^{(t+1)}|S{(t)}: heta_{S'|S})$ // 根据不同的转移对来聚类

    $displaystyle =prod_{i,j}prod_{t:S^{(t)}=i,S{(t+1)}=j} heta_{s^i o s^j}=prod_{i,j} heta_{s^i o s^j}^M[s^i o s^j]$。 // 即每次转移的转移概率乘起来

    那么$ heta_{s^i o s^j}=M[s^i o s^j]/M[s^i]$

    5. 空间爆炸问题。考虑$ heta_{X|U}=M[x,u]/M[u]$,u的取值数量和所含变量成指数增长,那么取样空间也会非常巨大。而样本往往十分有限,这种情况估算出来的值很可能非常不准。解决方法是尽量采用简单的结构和少的边。哪怕因此引入了错误的独立假设,也通常比正确但过于复杂的结构要好。

    1.4 贝叶斯估计

    1. 最大似然估计的局限性:无法区分5:5和5000:5000,后者对0.5概率的置信度更高

    2. 贝叶斯估计将参数视为随机变量,并假定一个分布律。通过$P( heta|x[1],x[2],cdots,x[M])=frac{P(x[1],x[2],cdots,x[M]| heta)P( heta)}{sum_{ heta'}P(x[1],x[2],cdots,x[M]| heta')P( heta')}$来估算$ heta$的取值。分母是常量,与$ heta$取值无关,这点教程有误。

    3. 对多项分布的参数可采用Dirichlet分布:$P( heta_1, heta_2,cdots, heta_k)=frac 1Zprod_{i=1}^k heta_i^{alpha_i-1}$。其中$alpha_i$表示每个值出现的次数。Z代表归一分母,和参数值无关,这里从略。

    对二项分布而言,$P( heta)=frac 1Z heta^{alpha_1-1}(1- heta)^{alpha_2-1}$。$alpha_i$的值越大,$P( heta)$的函数值越上凸。

    4. $P( heta|D)=P(D| heta)P( heta)/P(D)propto P(D| heta)P( heta)proptoprod_{i=1}^k heta_i^{M_i}prod_{i=1}^k heta_i^{alpha_i-1}=prod_{i=1}^k heta_i^{M_i+alpha_i-1}$

    从这个式子可以看出,如果$ heta$的先验分布是$Dir(alpha_1,cdots,alpha_k)$,新增了样本之后,后验概率依然是Dirichilet分布,只是参数变了:$Dir(alpha_1+M_1,cdots,alpha_k+M_k)$。这是个非常好的属性,因为一堆额外的样本出现后,可以很简单地计算后验概率。而不需要重新去考虑原来的样本。

    5 使用贝叶斯估计,可以将参数的确定变成一个推理问题。

    1.5 贝叶斯预测

    1. 问题描述:根据已有样本$X[1],X[2],cdots,X[M]$,推测新样本$X[M+1]$的分布。

    2. 对基本BN单元$mathbf{ heta} o X$(注意$mathbf{ heta}$是向量型随机变量)。已知$mathbf{ heta}sim Dir(mathbf{alpha})$,则

    $P(X)=int_{mathbf{ heta}}P(X|mathbf{ heta})P(mathbf{ heta})$

    $P(X=x^i)$   (教程写成P(X=x^i| heta)有误)

    $=int_{mathbf{ heta}}P(X=x^i|mathbf{ heta})P(mathbf{ heta})dmathbf{ heta}$

    $=int_{mathbf{ heta}}( heta_icdot frac 1Zprod_j heta_j^{alpha_j-1} dmathbf{ heta})$

    $=frac{alpha_i}{sum_jalpha_j}$

    3. 预备知识:对图$A o B o C, P(C|A)=frac{P(C,A)}{P(A)}=frac{sum_BP(C,B,A)}{P(A)}=frac{sum_BP(C|B,A)P(B,A)}{P(A)}=sum_BP(C|B)P(B|A)$

    对于$Aleftarrow Bleftarrow C$,结果也一样。只要不是V字型,箭头方向不影响结果。

    4. 对于1中提出的问题,我们有$P(x[M+1]|x[1],x[2],cdots,x[M])=int_mathbf{ heta}P(x[M+1]|mathbf{ heta})P(mathbf{ heta}|x[1],x[2],cdots,x[M])dmathbf{ heta}=frac{alpha_i+M_i}{sum_{j=1}^Malpha_j+M_j}$

    可以看出,$x[1],x[2],cdots,x[M]$作为evidence增强了$ heta$对分布的信心。

    5. 已二项分布为例,令$ heta$的先验分布为Dir(1,1),当有0个例子的时候,$ heta$取每个值的概率是相等的,但是真正投掷的时候,发现正反面是按4:1的概率出现,随着实例的增多,后验概率$P( heta|x[1],x[2],...x[M])$在4:1的值越来越大,冲淡了先验的假设。

    当$ heta$的先验分布为Dir(10,10),这个冲淡的速度要慢的多。

    当$ heta$的先验分布为Dir(0,0),可以认为退化成了MLE。MLE对噪音要敏感很多。尤其是初期。而$alpha$的值某种程度上缓和了这种影响。

    6. 贝叶斯预测组合了假想的Dirichlet分布和实际数据的分布。随着数据增多,最后渐近到实际数据的分布。一般来说,对于数据较少的情况,贝叶斯预测往往要更加健壮一些。

    1.6 贝叶斯网预测

    1. 独立性:通过分析图的有效迹,我们知道:

    (1)任意两个实例在给定所有参数的情况下独立

    (2)任意隶属不同变量的参数之间独立

    (3)在给定完整数据的状态之下,任何两个参数变量独立。即$P( heta_X, heta_{Y|X}|D)=P( heta_X|D)P( heta_{Y|X}|D)$。

    因此,每个参数都可以单独统计

    (4)在给定完整数据的状态之下,对条件参数$ heta_{X|U}$,以及任意的$u_1 e u_2$,我们有$ heta_{X|u_1}perp heta_{X|u_2}$。

    因此,如果先验分布为$P( heta_{X|u})sim Dirichlet(alpha_{{x^{(1)}}|u},alpha_{{x^{(2)}}|u},cdots,alpha_{{x^{(k)}}|u})$,

    则后验分布为$P( heta_{X|u}|D)sim Dirichlet(alpha_{{x^{(1)}}|u}+M[x^{(1)},u],alpha_{{x^{(2)}}|u}+M[x^{(2)},u],cdots,alpha_{{x^{(k)}}|u}+M[x^{(k)},u])$

    上面是条件参数,对非条件参数,去掉上面式子中的“|u”即可

    2. 先验分布的选择。

    (1)先设定一个初始分布$Theta_0$,一般是均匀分布。

    (2)制定一个全局统一的先验分布的强度值$alpha$

    (3)$alpha_{x|u}=alphacdot P(x,u|Theta_0)$,例如,如果x和u都是01变量,那么$(x,u)$共有4个取值组合,则$P(x,u|Theta_0)=1/4$,$ heta_{X|u=0}sim Dir(alpha/4,alpha/4), heta_{X|u=1}sim Dir(alpha/4,alpha/4)$

    我们可以发现,$alpha_{x|u}$中取值组合越多(如变量越多,或单个变量的取值范围越多),对应的$alpha_{x|u}$越小,这个是正确的,因为数据集落在每个取值上的概率要变少,那么先验分布的强度就应该相应降低。

    3. 在医疗BN中发现,采用贝叶斯方法比MLE的收敛程度更快,接近真实值程度也越高。当$alpha$取值很高,效果会差一点,但是还是比MLE要好。

    4. 总结:MLE和贝叶斯都是用的充分统计量。

    MLE: $hat{ heta}_{x|u}=M[x,u]/M[u]$

    Dir: $P(x|u,D)=frac{alpha_{x|u}+M[x,u]}{alpha_u+M[u]}$

    形式很相似,只是后者多了一个先验分布,这个需要预先设计。

  • 相关阅读:
    高德API+Python解决租房问题(.NET版)
    Jexus支持HTTPS协议
    pktgen使用详细教程
    结构体字节对齐2
    linux 用户空间获得纳秒级时间ns
    充分利用CPU高速缓存,提高程序效率(原理篇)
    Vue实现PC端分辨率自适应
    pip install 默认安装路径修改
    Vue AES+MD5加密 后台解密
    @Controller和@RestController的区别
  • 原文地址:https://www.cnblogs.com/milaohu/p/6347353.html
Copyright © 2020-2023  润新知