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已经等的花都谢了……