其他分享
首页 > 其他分享> > WGAN理论推导

WGAN理论推导

作者:互联网

    大部分的文章讲WGAN都会从GAN开始扯,然后到WGAN这里直接扔出一个公式

                                                      W(P_r,P_g)=\mathop{inf}_{\gamma\in\prod(P_r,P_g) }E_{(x,y)\sim\gamma}[\left \|x-y\right \|]

或者

                                                  W(P_r,P_g)=\mathop{sup}_{\left\|f\right|_L\leq 1}E_{x\sim P_r}[f(x)]-E_{x\sim P_\theta}[f(x)]

    然后开始讲这就是EM距离,讲的是模拟推土机推土的距离,至于怎么推土的,不好意思,没有。

    《从Wasserstein距离、对偶理论到WGAN》这篇文章中讲的是这土是怎么推的,本文内容基于这篇文章,主要工作是根据自身理解情况调整内容顺序,并添加一些个人理解的内容。

    1.Wasserstein距离

        真正的Wasserstein距离公式实际上是长下面这个样子的:

                                             \mathcal{W}_{[p,q]}=\mathop{inf}_{\gamma\in\prod_{[p,q]}}\iint{\gamma(x,y)d(x,y)dxdy}

        其中\gamma\in\prod{[p,q]}表示\gamma服从[p,q]的联合分布,p,q\gamma的边缘分布,因此有下面的关系成立

                            \int\gamma(x,y)dy=p(x)  和\int\gamma(x,y)dx=q(y)

      \mathop{inf}表示下确界,简单理解就是最小值。d(x,y)分布pq的距离。距离可以使用各种形式,最常用的有各种范数,还有余弦距离等等。

   边缘分布可以从概率的角度来解释,但在EM距离中通常采用“推土机”推土的比喻,实际上就是将一个分布转换成另一个分布需要做的工作是多少,\int\gamma(x,y)dx=q(y)表示的就是从x处搬运\gamma(x,y)dx到y处所需要的成本,这个成本可以理解为做的功是多少,或者移动的距离是多少,总是会得到一个表示成本的数字,如下图所示:

              推土机距离图示:左边p(x)每处的沙土被分为若干部分,然后运输到右端q(x)的同色的位置(或者不动)

   因此,可以将d(x,y)理解为成本(也就是距离),将\gamma(x,y)理解为搬运的策略,\iint{\gamma(x,y)d(x,y)dxdy}取最小就得到了最小的搬运成本。

    2.从W距离到线性规划

                                                            \mathcal{W}_{[p,q]}=\mathop{inf}_{\gamma\in\prod_{[p,q]}}\iint{\gamma(x,y)d(x,y)dxdy} \qquad\qquad(1)

        公式(1)看起来比较复杂,实际上可以转换成一种更好理解的形式,即有约束的优化问题:

        问题1:目标是求

                                                                   \iint{\gamma(x,y)d(x,y)dxdy} \qquad\qquad(2)

的最小值,其中d(x,y)是确定的,且需要满足以下约束:

                                                   \int\gamma(x,y)dy=p(x),\int\gamma(x,y)dx=q(y),\gamma(x,y)\ge0 \qquad\qquad(3)

       积分只是求和的连续极限形式,因此可以将式(2)写成离散的形式,将d(x,y)\gamma(x,y)离散化,写成很长的向量[1]\GammaD如下:

                                                  \boldsymbol{\Gamma}=\begin{pmatrix} \gamma(\boldsymbol{x}_1, \boldsymbol{y}_1) \\ \gamma(\boldsymbol{x}_1, \boldsymbol{y}_2) \\ \vdots \\ \hline \gamma(\boldsymbol{x}_2, \boldsymbol{y}_1) \\ \gamma(\boldsymbol{x}_2, \boldsymbol{y}_2) \\ \vdots \\ \hline \vdots \\ \hline \gamma(\boldsymbol{x}_n, \boldsymbol{y}_1) \\ \gamma(\boldsymbol{x}_n, \boldsymbol{y}_2) \\ \vdots \\ \hline \vdots \\ \end{pmatrix},\quad \boldsymbol{D}=\begin{pmatrix} d(\boldsymbol{x}_1, \boldsymbol{y}_1) \\ d(\boldsymbol{x}_1, \boldsymbol{y}_2) \\ \vdots \\ \hline d(\boldsymbol{x}_2, \boldsymbol{y}_1) \\ d(\boldsymbol{x}_2, \boldsymbol{y}_2) \\ \vdots \\ \hline \vdots \\ \hline d(\boldsymbol{x}_n, \boldsymbol{y}_1) \\ d(\boldsymbol{x}_n, \boldsymbol{y}_2) \\ \vdots \\ \hline \vdots \\ \end{pmatrix}\label{eq:lp-wd-t1} \qquad\qquad(4)

        因此式(2)就相当于\GammaD对应位置相乘,也就是内积\langle\boldsymbol{\Gamma},\boldsymbol{D}\rangle,这里排列规则就是先把x固定,然后枚举所有的y,然后再换一个x再枚举所有的y,这样就可以将x,y的所有组合都写在向量里。

        现在把约束条件\int\gamma(x,y)dy=p(x)同样的进行离散化。

    \underbrace{\left( \begin{array}{ccc|ccc|c|ccc|c} 1 & 1 & \dots & 0 & 0 & \dots & \dots & 0 & 0 & \dots & \dots \\ 0 & 0 & \dots & 1 & 1 & \dots & \dots & 0 & 0 & \dots & \dots \\ \vdots & \vdots & \ddots & \vdots & \vdots & \ddots & \ddots & \vdots & \vdots & \ddots & \ddots \\ 0 & 0 & \dots & 0 & 0 & \dots & \dots & 1 & 1 & \dots & \dots \\ \vdots & \vdots & \ddots & \vdots & \vdots & \ddots & \ddots & \vdots & \vdots & \ddots & \ddots \\ \hline 1 & 0 & \dots & 1 & 0 & \dots & \dots & 1 & 0 & \dots & \dots \\ 0 & 1 & \dots & 0 & 1 & \dots & \dots & 0 & 1 & \dots & \dots \\ \vdots & \vdots & \ddots & \vdots & \vdots & \ddots & \ddots & \vdots & \vdots & \ddots & \ddots \\ 0 & 0 & \dots & 0 & 0 & \dots & \dots & 0 & 0 & \dots & \dots \\ \vdots & \vdots & \ddots & \vdots & \vdots & \ddots & \ddots & \vdots & \vdots & \ddots & \ddots \end{array} \right)}_{\Large\boldsymbol{A}} \,\,\underbrace{\begin{pmatrix} \gamma(\boldsymbol{x}_1, \boldsymbol{y}_1) \\ \gamma(\boldsymbol{x}_1, \boldsymbol{y}_2) \\ \vdots \\ \hline \gamma(\boldsymbol{x}_2, \boldsymbol{y}_1) \\ \gamma(\boldsymbol{x}_2, \boldsymbol{y}_2) \\ \vdots \\ \hline \vdots \\ \hline \gamma(\boldsymbol{x}_n, \boldsymbol{y}_1) \\ \gamma(\boldsymbol{x}_n, \boldsymbol{y}_2) \\ \vdots \\ \hline \vdots \\ \end{pmatrix}}_{\Large\boldsymbol{\Gamma}}=\,\,\,\,\underbrace{\begin{pmatrix} p(\boldsymbol{x}_1) \\ p(\boldsymbol{x}_2) \\ \vdots \\ p(\boldsymbol{x}_n) \\ \vdots \\ \hline q(\boldsymbol{y}_1) \\ q(\boldsymbol{y}_2) \\ \vdots \\ q(\boldsymbol{y}_n) \\ \vdots \\ \end{pmatrix}}_{\Large\boldsymbol{b}}\label{eq:lp-wd-t2}\qquad\qquad(5)

    写成矩阵形式就是\boldsymbol{A}\boldsymbol{\Gamma}=\boldsymbol{b}

    现在得出问题1的另一种形式了

                                                      \min_{\boldsymbol{\Gamma}}\big\{\langle\boldsymbol{\Gamma},\boldsymbol{D}\rangle\,\big|\,\boldsymbol{A}\boldsymbol{\Gamma}=\boldsymbol{b},\,\boldsymbol{\Gamma}\geq 0\big\}\label{eq:lp-wd}\quad(6)

    很容易看出这是一个在线性约束下的最小值优化问题,

   3.线性规划与对偶

      [1]中讲的已经很明白了,实在没什么好讲的,复制粘贴至此。

       让我们用更一般的记号,把线性规划问题重写一遍,常见的形式有两种:

                                     \min_{\boldsymbol{x}}\{\boldsymbol{c}^{\top}\boldsymbol{x}|\boldsymbol{Ax}=\boldsymbol{b} \,\,\boldsymbol{x}\geq 0 \}\quad \text{or} \quad \min_{\boldsymbol{x}}\big\{\boldsymbol{c}^{\top}\boldsymbol{x}\,\big|\,\boldsymbol{A}\boldsymbol{x}\geq \boldsymbol{b},\,\boldsymbol{x}\geq 0\big\} \quad\quad(7)
    这两种形式本质上是等价的,只不过在讨论第一种的时候相对简单一点(真的只是简单一点点,并没有本质差别),而从(6)式可以知道,我们目前只关心第一种情况。注意,为了避免混乱,我们必须声明一下各个向量的大小。我们假设每个向量都是列向量,经过转置之后就代表一个行向量,\boldsymbol{x},\boldsymbol{c}\in\mathbb{R}^n都是n维向量,其中\boldsymbol{c}也就是权重,\boldsymbol{c}^{\top}就是对x的各个分量加权求和;\boldsymbol{b}\in\mathbb{R}^mm维向量,自然\boldsymbol{A}\in\mathbb{R}^{m*n}是一个m*n的矩阵了,\boldsymbol{Ax}=\boldsymbol{b}实际上就是描述了m个等式约束。

     弱对偶形式 

        在规划和优化问题中,“对偶形式”是一个非常重要的概念。一般情况下,“对偶”是指某种变换,能将原问题转化为一个等价的、但是看起来几乎不一样的新问题,即

                                                    


“对偶”之所以称为“对偶”,是因为将新问题进行同样形式的变换后,通常来说能还原为原问题,即

                                                    


即“对偶”像是一面镜子,原问题和新问题相当于“原像”和“镜像”,解决了一个问题,就等价于解决了另一个问题。所以就看哪个问题更简单了。

    最大 vs 最小 

    这里我们先介绍“弱对偶形式”,其实它推导起来还是挺简单的。

    我们的目标是\min_{\boldsymbol{x}}\{\boldsymbol{c}^{\top}\boldsymbol{x}|\boldsymbol{Ax}=\boldsymbol{b} \,\,\boldsymbol{x}\geq 0 \},设置最小值在x^*处取到,那么我们有\boldsymbol{A}\boldsymbol{x}^*=\boldsymbol{b},我们可以在两边乘以一个\boldsymbol{y}^{\top}\in\mathbb{R}^m,使得等式变成一个标量:\boldsymbol{y}^{\top}\boldsymbol{A}\boldsymbol{x}^*=\boldsymbol{y}^{\top}\boldsymbol{b}

如果此时假设\boldsymbol{y}^{\top}\boldsymbol{A}\leq \boldsymbol{c}^{\top},那么\boldsymbol{y}^{\top}\boldsymbol{A}\boldsymbol{x}^*\leq \boldsymbol{c}^{\top}\boldsymbol{x}^*(因为\boldsymbol{x}^* \geq 0),则\boldsymbol{y}^{\top}\boldsymbol{b}\leq \boldsymbol{c}^{\top} \boldsymbol{x}^*。也就是说,在条件\boldsymbol{y}^{\top}\boldsymbol{A}\leq \boldsymbol{c}^{\top}下的任意\boldsymbol{y}^{\top}\boldsymbol{b}总是不大于\min\limits_{\boldsymbol{x}}\big\{\boldsymbol{c}^{\top}\boldsymbol{x}\,\big|\,\boldsymbol{A}\boldsymbol{x}=\boldsymbol{b},\,\boldsymbol{x}\geq 0\big\},“总是”意味着即使对于最大那个也一样,所以我们就有

                                           \max_{\boldsymbol{y}}\big\{\boldsymbol{b}^{\top}\boldsymbol{y}\,\big|\,\boldsymbol{A}^{\top}\boldsymbol{y}\leq \boldsymbol{c}\big\}\leq \min_{\boldsymbol{x}}\big\{\boldsymbol{c}^{\top}\boldsymbol{x}\,\big|\,\boldsymbol{A}\boldsymbol{x}=\boldsymbol{b},\,\boldsymbol{x}\geq 0\big\}\label{eq:weak-dual}\qquad\qquad(8)
这便称为“弱对偶形式”,它的形式就是:“左边的最大”还大不过“右端的最小”。

        对应的“强对偶形式”如下:

                                            \max_{\boldsymbol{y}}\big\{\boldsymbol{b}^{\top}\boldsymbol{y}\,\big|\,\boldsymbol{A}^{\top}\boldsymbol{y}\leq \boldsymbol{c}\big\} = \min_{\boldsymbol{x}}\big\{\boldsymbol{c}^{\top}\boldsymbol{x}\,\big|\,\boldsymbol{A}\boldsymbol{x}=\boldsymbol{b},\,\boldsymbol{x}\geq 0\big\}\label{eq:strong-dual}\qquad\qquad(9)

        就是只保留相等关系。

        几点评注 

      对于弱对偶形式,也许下面几点值得进一步说明一下:

1、现在我们将原来的最小值问题变成了一个最大值问题\max\limits_{\boldsymbol{y}}\big\{\boldsymbol{b}^{\top}\boldsymbol{y}\,\big|\,\boldsymbol{A}^{\top}\boldsymbol{y}\leq \boldsymbol{c}\big\},这便有了对偶的味道。当然,弱对偶形式之所以“弱”,是因为我们目前找到的对偶形式只是原来问题的一个下界,还没有证明它们二者相等。

2、弱对偶形式在很多优化问题中(包括非线性优化)都成立。如果二者真的相等,那么就是真正意义上的对偶了,称为强对偶形式。

3、理论上,我们确实需要证明式(8)左右两端相等才能进一步应用它。但从应用角度,其实弱对偶形式给出的下界都已经够用了,因为深度学习中的问题都很复杂,能有一个近似的目标去优化都已经很不错了。

4、读者可能会想问:前面我们为什么要假设y\boldsymbol{y}^{\top}\boldsymbol{A}\leq \boldsymbol{c}^{\top}而不干脆假设\boldsymbol{y}^{\top}\boldsymbol{A}= \boldsymbol{c}^{\top}?假设后者当然简单很多,但问题是后者在实践中很难实现,所以只能假设前者。

    4.WGAN

    根据式(9)和式(6)可以得到下面的问题

                          \min_{\boldsymbol{\Gamma}}\big\{\langle\boldsymbol{\Gamma},\boldsymbol{D}\rangle\,\big|\,\boldsymbol{A}\boldsymbol{\Gamma}=\boldsymbol{b},\,\boldsymbol{\Gamma}\geq 0\big\}=\max_{\boldsymbol{F}}\big\{\langle\boldsymbol{b},\boldsymbol{F}\rangle\,\big|\,\boldsymbol{A}^{\top}\boldsymbol{F}\leq \boldsymbol{D}\big\}\qquad\qquad(10)

    左边是从W距离出发转换成的线性规划问题,右边是该线性规划的对偶问题。式(5)中b是由p(x)q(x)拼接起来的,F可以写成类似的形式如下:

                                                           \boldsymbol{F}=\begin{pmatrix} f(\boldsymbol{x}_1) \\ f(\boldsymbol{x}_2) \\ \vdots \\ f(\boldsymbol{x}_n) \\ \vdots \\ \hline g(\boldsymbol{y}_1) \\ g(\boldsymbol{y}_2) \\ \vdots \\ g(\boldsymbol{y}_n) \\ \vdots \\ \end{pmatrix}\qquad\qquad (11)

    因此\langle\boldsymbol{b},\boldsymbol{F}\rangle现在就可以变成连加的形式,

                                          \langle\boldsymbol{b},\boldsymbol{F}\rangle=\sum_n p(\boldsymbol{x}_n) f(\boldsymbol{x}_n) + \sum_n q(\boldsymbol{x}_n) g(\boldsymbol{x}_n)\qquad\qquad(12)

    约束条件\boldsymbol{A}^{\top}\boldsymbol{F}\leq \boldsymbol{D}代入之后可以得到下面的结果

                                                      \forall \boldsymbol{x},\boldsymbol{y},\,\,f(\boldsymbol{x}) + g(\boldsymbol{y})\leq d(\boldsymbol{x},\boldsymbol{y})\qquad\qquad(13)

     弄了这么一大圈就是为了找到式(1)的一个对偶形式

                       \mathcal{W}[p,q]=\max_{f,g}\Bigg\{\int \big[p(\boldsymbol{x}) f(\boldsymbol{x}) + q(\boldsymbol{x}) g(\boldsymbol{x})\big]d\boldsymbol{x} \,\Bigg|\,\, f(\boldsymbol{x}) + g(\boldsymbol{y})\leq d(\boldsymbol{x},\boldsymbol{y})\Bigg\}\qquad\qquad(14)

    且f(x)+g(y)\leq d(x,y)\Rightarrow f(x)+g(x)\leq d(x,x)=>g(x)\leq -f(x)

   因此

                                       \begin{aligned}p(\boldsymbol{x}) f(\boldsymbol{x}) + q(\boldsymbol{x}) g(\boldsymbol{x})&\leq p(\boldsymbol{x}) f(\boldsymbol{x}) + q(\boldsymbol{x}) [-f(\boldsymbol{x})]\\ & = p(\boldsymbol{x}) f(\boldsymbol{x}) - q(\boldsymbol{x}) f(\boldsymbol{x})\end{aligned}\qquad\qquad(15)

    即如果g=-f,它的最大值不会小于原来的最大值,所以我们可以放心地让g=−fg=−fg=-f,从而

                        \mathcal{W}[p,q]=\max_{f}\Bigg\{\int \big[p(\boldsymbol{x}) f(\boldsymbol{x}) - q(\boldsymbol{x}) f(\boldsymbol{x})\big]d\boldsymbol{x} \,\Bigg|\,\, f(\boldsymbol{x}) - f(\boldsymbol{y})\leq d(\boldsymbol{x},\boldsymbol{y})\Bigg\}\label{eq:wd-dual-u}\qquad\qquad(16)

    由于p和q都是分布,因此可以写成期望的形式,利用极大似然估计法来拟合真实分布。

                                \mathcal{W}[p,q]=\max_{f,\,\Vert f\Vert_{L}\leq 1}\mathbb{E}_{\boldsymbol{x}\sim p(\boldsymbol{x})}[f(\boldsymbol{x})] - \mathbb{E}_{\boldsymbol{x}\sim q(\boldsymbol{x})}[f(\boldsymbol{x})] \qquad\qquad(17)

    现在终于得到了Wasserstein的期望的计算形式。

参考文献:

[1]https://spaces.ac.cn/archives/6280

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:推导,理论,形式,距离,问题,28x%,WGAN,向量,对偶
来源: https://blog.csdn.net/yiqisetian/article/details/100511478