量化百科

FCN(5)——DenseCRF推导

由ypyu创建,最终由ypyu 被浏览 5 用户

本文收录在无痛的机器学习第一季

经过前两篇文章,我们了解了CRF的基本概念,了解了许许多多的CRF模型,也了解了Mean field variational inference的基本概念,那么这一回我们开始真刀真枪地进行公式推导。其实公式推导的部分在论文的补充材料里有,但是不够详尽,这里我们尽可能地补充一下,让推导过程更加完整。

DenseCRF

前面我们已经看过了DenseCRF的能量函数,如下所示

$E(x)=\sum_i \psi $

其他内容在这就不说了,我们抓紧时间推导。

Variational Inference推导

我们首先给出denseCRF的Gibbs分布:

$P(X)=\frac{1}{Z}\tilde{P}(X)=\frac{1}{Z}exp(\sum_i \psi_u(x_i) + \sum_{i < j}\psi_p(x_i,x_j))$

下面给出KL散度部分的推导,其实就是补充材料中的推导,搬运工来了……

$D(Q||P)=\sum_x{Q(x)log(\frac{Q(x)}{P(x)})}$

$=-\sum_xQ(x)logP(x)+\sum_xQ(x)logQ(x)$

$=-E_{X\in Q}[logP(X)]+E_{X\in Q}[logQ(X)] $

$=-E_{X\in Q}[log\tilde{P}(X) ]+E_{X \in Q}[logZ]+\sum_iE_{X_i \in Q}[logQ_i(X_i)]$

$=-E_{X \in Q}[log \tilde{P}(X)]+logZ+\sum_iE_{X_i \in Q_i}[logQ_i(X_i)]$

由于我们要求的是Q,而logZ项中没有Q,所以这一项可以省略。

同时Q还需要满足:

$\sum_{x_i}Q_i(x_i)=1$

所以利用拉格朗日乘子法,可以得到

$L(Q_i)=-E_{X_i \in Q}[log \tilde{P}(X)]+\sum_iE_{x_i \in Q_i}[logQ_i(x_i)]+\lambda(\sum_{x_i}Q_i(x_i)-1)$

这个公式的后面两项相对比较简单,但是前面一项比较复杂,我们单独做一下处理:

$-E_{X_i \in Q}[log \tilde{P}(X)]=-\int{\prod_i{Q_i(x_i)}[log \tilde{P}(X)]dX}$

$=-\int{Q_i(x_i) \prod_{i}{Q(\bar{x}_{i})}[log \tilde{P}(X)]dx_id\bar{X}}$

$=-\int{Q_i(x_i)E_{\bar{X} \in Q}[log \tilde{P}(X)]dx_i}$

经过上面的公式整理,我们可以求出偏导,可得

$\frac{\partial L(Q_i)}{\partial Q_i(x_i)}=-E_{\bar{X} \in Q_i}[log \tilde{P}(X | x_i)]-logQ_i(x_i)-1+\lambda$

令偏导为0,就可以求出极值:

$Q_i(x_i)=exp(\lambda-1)exp(-E_{\bar{X} \in Q_i}[log \tilde{P}(X | x_i)])$

由于每一个Q的

$exp(\lambda-1)$

都相同,我们将其当作一个常数项,之后在renormalize的时候将其抵消掉,于是Q函数就等于:

$Q(x_i)=\frac{1}{Z_1}exp(-E_{\bar{X} \in Q_i}[log \tilde{P}(X | x_i)])$

我们将文章开头关于

$\tilde{P}$

的定义带入,就得到了

$Q(x_i)=\frac{1}{Z_1}exp(-E_{\bar{X} \in Q}[(\sum_i \psi_u(x_i) + \sum_{j \n eq i}\psi_p(x_i,x_j)) | x_i])$

这里面xi的由于是已知的,所以我们可以得到补充材料里的结果(但是变量名不太一样):

$Q_i(x_i=l)=\frac{1}{Z_i}exp[-\psi_u(l) - \sum_{j \n eq i}E_{\bar{X} \in Q_j}\psi_p(l,X_j)]$

继续扩展,就可以得到

$=\frac{1}{Z_i}exp[-\psi_u(l) - \sum_{m=1}^Kw^{(m)}\sum_{j \n eq i}E_{X \in Q_j}[\mu(l,X_j)k^{(m)}(f_i,f_j)]]=\frac{1}{Z_i}exp[-\psi_u(l) - \sum_{m=1}^Kw^{(m)}\sum_{j \n eq i}\sum_{l' \in L}Q_j(l')\mu(l,l')k^{(m)}(f_i,f_j)]$

$=\frac{1}{Z_i}exp[-\psi_u(l) - \sum_{l' \in L}\mu(l,l')\sum_{m=1}^Kw^{(m)}\sum_{j \n eq i}Q_j(l')k^{(m)}(f_i,f_j)]$

这样,一个类似message passing的公式推导就完成了。其中最内层的求和可以用截断的高斯滤波完成。搬运最后的一点公式,可以得:

$\tilde{Q_i^{(m)}(l)}=\sum_{j \n eq i}Q_j(l')k^{(m)}(f_i,f_j)=\sum_{j}Q_j(l)k^{(m)}(f_i,f_j)-Q_i(l)$

上面公式的第一项可以转化成卷积操作。

完成了这些推导,下面我们暂时不给出denseCRF的单独结果,我们下面看看FCN和DenseCRF结合的效果,FCN已经等的花都谢了……