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


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

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

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

    (2) $L(D: heta)=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( heta)$,其中$Z( heta)=sum_{a,b,c}phi(a,b)phi(b,c)$

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

    $=frac{1}{Z( heta)^M}(prod_mphi(a[m],b[m]))(prod_mphi(b[m],c[m]))$

    $=frac{1}{Z( heta)^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: heta)=ln L(D: heta)=sum_{a,b}M[a,b]lnphi(a,b)+sum_{b,c}M[b,c]lnphi(b,c)-Mln Z( heta)$

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

    3. Log-Linear模型

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

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

    $P_ heta(X)=frac{1}{Z( heta)}exp(sum_{i=1}^{k} heta_if_i(X))$ 其中 $Z( heta)=sum_xexp(sum_{i=1}^{k} heta_if_i(X))$

    $l( heta:D)=sum_m(sum_i heta_if_i(x[m])-ln Z( heta))=sum_i heta_i(sum_mf_i(x[m]))-Mln Z( heta)$

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

    $frac 1 Ml( heta:D)=sum_i heta_i(frac 1 Msum_mf_i(x[m]))-ln Z( heta)$

    $frac{partial}{partial heta_i}frac{1}{M}l( heta:D)=frac 1 Msum_mf_i(x[m])-sum_xP_{ heta}(x)f_i(x)=E_D[f_i]-E_ heta[f_i]$

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

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

    $frac{partial}{partial heta_i}frac{1}{M}l( heta:D)=frac 1 Msum_mf_i(x[m])-sum_x(frac{exp(sum_{j=1}^{k} heta_jf_j(x))}{sum_{x'}exp(sum_{j=1}^{k} heta_jf_j(x'))}f_i(x'))$

    $=frac 1 Msum_mf_i(x[m])-frac{sum_x(exp(sum_{j=1}^{k} heta_jf_j(x)))f_i(x)}{sum_x(exp(sum_{j=1}^{k} heta_jf_j(x)))}$

    对于梯度下降中每一步优化确定的中间$ heta$,计算右项都是一次完整的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( heta:D)=E_D[f_i]-E_ heta[f_i]=frac 1 Msum_mf_i(x[m])-sum_xP_{ heta}(x)f_i(x)$

    $=frac 1 Msum_mx_i[m]-(1cdot P_ heta(X_i=1)+(-1)cdot P_ heta(X_i=-1))$

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

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

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

    对Log-Linear模型来说,

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

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

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

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

    $frac{partial}{partial heta_i}frac{1}{M}l( heta:D)=frac 1 Msum_m[f_i(x[m],y[m])-sum_yP_{ heta}(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对应的参数为$ heta_1$

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

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

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

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

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

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

    第三节 

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

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

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

    (1)高斯分布 $P( heta:sigma)=prod_ifrac{1}{sqrt{2pi}sigma}exp(-frac{ heta_i^2}{2sigma^2})$

    (2)拉普拉斯分布 $P( heta:eta)=prod_ifrac{1}{2eta}exp(-frac{| heta_i|}{eta})$

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

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

  • 相关阅读:
    总结6.6 PHP后台登录和文件上传
    【017期】JavaSE面试题(十七):JVM之内存模型
    【016期】JavaSE面试题(十六):反射
    【015期】JavaSE面试题(十五):网络IO流
    【014期】JavaSE面试题(十四):基本IO流
    【013期】JavaSE面试题(十三):多线程(3)
    【012期】JavaSE面试题(十二):多线程(2)
    【011期】JavaSE面试题(十一):多线程(1)
    【010期】JavaSE面试题(十):集合之Map
    【009期】JavaSE面试题(九):集合之Set
  • 原文地址:https://www.cnblogs.com/milaohu/p/6354369.html
Copyright © 2020-2023  润新知