概率图模型课堂笔记 3.3 马尔科夫网参数估计

第一节 马尔科夫随机场(MRF)参数估计

1. 回顾贝叶斯网$A\to B\to C$

(1) $P(a,b,c)=P(a)P(b|a)P(c|b)$

(2) $L(D:\theta)=\prod_mP(a[m])P(b[m]|a[m])P(c[m]|b[m])$

$=(\prod_mP(a[m]))(\prod_mP(b[m]|a[m])(\prod_mP(c[m]|b[m]))$

$=(\prod_aP(a)^{M[a]})(\prod_{a,b}P(b|a)^{M[a,b]})(\prod_{b,c}P(c|b)^{M[b,c]})$

其中$P(a),P(b|a),P(c|b)$都是要估计参数。

2. 马尔科夫网A-B-C:

(1) $P(a,b,c)=\phi(a,b)\phi(b,c)/Z(\theta)$,其中$Z(\theta)=\sum_{a,b,c}\phi(a,b)\phi(b,c)$

(2) $L(D:\theta)=\frac{1}{Z(\theta)^M}\prod_m\phi(a[m],b[m])\phi(b[m],c[m])$

$=\frac{1}{Z(\theta)^M}(\prod_m\phi(a[m],b[m]))(\prod_m\phi(b[m],c[m]))$

$=\frac{1}{Z(\theta)^M}(\prod_{a,b}\phi(a,b)^{M[a,b]})(\prod_{b,c}\phi(b,c)^{M[b,c]})$

其中$\phi(a,b),\phi(b,c)$都是要估计的参数。

为方便计算,我们令$l(D:\theta)=\ln L(D:\theta)=\sum_{a,b}M[a,b]\ln\phi(a,b)+\sum_{b,c}M[b,c]\ln\phi(b,c)-M\ln Z(\theta)$

前面两项计算很方便,和贝叶斯网的似然估计一样。麻烦的是最后一项$Z(\theta)=\sum_{a,b,c}\phi(a,b)\phi(b,c)$,要对整个取值空间求和,而且这个和和$\theta$取值有关。

 

3. Log-Linear模型

$\phi(X)=\exp(\sum_{i=1}^{k}\theta_if_i(D_i))$ 其中$D_i$表示特征涉及到的变量集,是$X$的子集。

每个feature前的系数$\theta_i$是我们要估计的参数。

$P_\theta(X)=\frac{1}{Z(\theta)}\exp(\sum_{i=1}^{k}\theta_if_i(X))$ 其中 $Z(\theta)=\sum_x\exp(\sum_{i=1}^{k}\theta_if_i(X))$

$l(\theta:D)=\sum_m(\sum_i\theta_if_i(x[m])-\ln Z(\theta))=\sum_i\theta_i(\sum_mf_i(x[m]))-M\ln Z(\theta)$

可以证明右边$-M\ln Z(\theta)$是$\theta$的上凸函数,而左边$\sum_i\theta_i(\sum_mf_i(x[m]))$是$\theta$的线性函数,所以总体是$\theta$的上凸函数。因此可用梯度下降来计算最大值。

$\frac 1 Ml(\theta:D)=\sum_i\theta_i(\frac 1 M\sum_mf_i(x[m]))-\ln Z(\theta)$

$\frac{\partial}{\partial\theta_i}\frac{1}{M}l(\theta:D)=\frac 1 M\sum_mf_i(x[m])-\sum_xP_{\theta}(x)f_i(x)=E_D[f_i]-E_\theta[f_i]$

从上面的算式可以看出,当左项$f_i(X)$在数据集上的平均值)等于右项$f_i(X)$在$\theta$分布下的平均值时,偏导数为0。

为了看清式子的全貌,我们代入$P_\theta(X)$:

$\frac{\partial}{\partial\theta_i}\frac{1}{M}l(\theta:D)=\frac 1 M\sum_mf_i(x[m])-\sum_x(\frac{\exp(\sum_{j=1}^{k}\theta_jf_j(x))}{\sum_{x'}\exp(\sum_{j=1}^{k}\theta_jf_j(x'))}f_i(x'))$

$=\frac 1 M\sum_mf_i(x[m])-\frac{\sum_x(\exp(\sum_{j=1}^{k}\theta_jf_j(x)))f_i(x)}{\sum_x(\exp(\sum_{j=1}^{k}\theta_jf_j(x)))}$

对于梯度下降中每一步优化确定的中间$\theta$,计算右项都是一次完整的inference。因此代价通常会比较高。 

 

4. Ising Model

$E(x_1,\cdots,x_n)=-\sum_{i<j}w_{i,j}x_ix_j-\sum_iu_ix_i$

$\frac{\partial}{\partial{w_i}}\frac{1}{M}l(\theta:D)=E_D[f_i]-E_\theta[f_i]=\frac 1 M\sum_mf_i(x[m])-\sum_xP_{\theta}(x)f_i(x)$

$=\frac 1 M\sum_mx_i[m]-(1\cdot P_\theta(X_i=1)+(-1)\cdot P_\theta(X_i=-1))$

$\frac{\partial}{\partial{w_{i,j}}}\frac{1}{M}l(\theta:D)=E_D[f_{i,j}]-E_\theta[f_{i,j}]=\frac 1 M\sum_mx_i[m]x_j[m]-(1\cdot P_\theta(X_i=1,X_j=1)+(-1)\cdot P_\theta(X_i=1,X_j=-1)+1\cdot P_\theta(X_i=-1,X_j=-1)+(-1)\cdot P_\theta(X_i=-1,X_j=1))$

 

第二节 马尔科夫条件随机场(CRF)参数估计

1. 对于随机条件场来说,我们不关系因变量之间的联合分布,而只关心自变量与因变量之间的关系。因此,我们优化的目标函数也变成了$l_{Y|X}(\theta:D)$

对Log-Linear模型来说,

$P_\theta(Y|X)=\frac{1}{Z_x(\theta)}\exp(\sum_{i=1}^{k}\theta_if_i(D_i))$ 其中 $Z_x(\theta)=\sum_Y\exp(\sum_{i=1}^{k}\theta_if_i(D_i))$ 这里只对y加和

所以似然值为:(注意Z已经移到$\sum_m$里面去了)

$l(\theta:D)=\sum_mlnP_\theta(y[m]|x[m],\theta)=\sum_m(\sum_i\theta_if_i(x[m],y[m])-\ln Z_{x[m]}(\theta))$

求偏导数:(注意Z已经移到$\sum_m$里面去了)

$\frac{\partial}{\partial\theta_i}\frac{1}{M}l(\theta:D)=\frac 1 M\sum_m[f_i(x[m],y[m])-\sum_yP_{\theta}(y|x[m])f_i(x[m],y)]$

 

2. 考虑图片分区的问题,定义两个特征

(1)$f_1(y_s,x_s)=1(y_s=g)\cdot G_s$

$y_s$表示图块s的类别,$x_s$表示图块s。意思是如果分类为草,则图块越绿f值越大。这个feature对应的参数为$\theta_1$

(2)$f_2(y_s,y_t)=1(y_s=y_t)$

意思是相邻图块相同,则f值越大。这个feature它对应的参数为$\theta_2$

 

问题描述:有M个已经给各图块分好类别的图片,第m个图片的第s个图块$x_s[m]$的类别为$y_s[m]$。现在需要两个学习出权重$\theta_1,\theta_2$,使得系统在给定的$x_s[1\cdots M]$分别输出分类$y_s[1\cdots M]$的可能性(似然)最大

如果这里不用CRF而用MRF,则最后一句变成:使得系统出现图片$x_s[1\cdots M]$且出现对应的分类$y_s[1\cdots M]$的可能性最大,而这显然不是我们想要的。因为我们只关心输入对输出的影响,而对输入本身的分布并不关心,也不希望输入本身的分布影响参数的选择。而采用CRF就很好地达到了这个效果。

实际上,系统不止两个feature,而是存在两个feature集,例如,$f_1$在每个图块上都有一个$f_{1,s}$,只是它们共享参数$\theta_1$。

 

3. 考虑CRF的偏导式中Z的位置,每次梯度下降要进行M次inference,这比MRF中的1次加重了计算负担。但是我们也要看到,MRF中是针对整个X空间进行inference的,这个空间可能很大,甚至可能是连续的。因此具体计算成本要具体分析。

 

第三节 

1. 马尔科夫网做MLE的成本已经很高,做贝叶斯估计的难度更大。为了防止数据少时的过度拟合,我们增加一个$\theta$的先验概率让$\theta$更加倾向于0。

2. 将马尔科夫似然值$P(D:\theta)$乘上一个先验概率$P(\theta)$可得:

$P(D,\theta)=P(D:\theta)P(\theta)$,常见的先验概率可以选择两种

(1)高斯分布 $P(\theta:\sigma)=\prod_i\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{\theta_i^2}{2\sigma^2})$

(2)拉普拉斯分布 $P(\theta:\beta)=\prod_i\frac{1}{2\beta}exp(-\frac{|\theta_i|}{\beta})$

3. 拉普拉斯分布更尖,有利于生成等于0的参数,对于结构和feature学习来说,能更有效地降低网络复杂度。

而高斯分布在0附近的斜率很小,很容易生成0附近的参数。

 

posted on 2017-01-28 17:50  米老虎M  阅读(651)  评论(0编辑  收藏  举报

导航