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]}$
形式很相似,只是后者多了一个先验分布,这个需要预先设计。