引言
本文是对GAN网络中目标函数全局最优解情况的推导,推导过程在原论文有给出。这里再对其进行一个推导。
推导
首先重新看一下目标函数$$\underset Gmin\underset Dmax V(D,G)=E_{x_\tilde{} p_{data}}(x)[logD(x)]+E_{z\tilde{} p_z(z)}[log(1-D(G(z)))]$$
我们可以先固定G,来求一下D在什么情况下使得函数最大。就变成了求$$\underset Dmax V(D,G)$$
求解$\underset Dmax V(D,G)$
我们先对V(D,G)变一下形,即$$\int_x p_{data}(x)log(D(x))dx+\int_zp_z(z)log(1-D(g(z)))dz$$$$=\int_xp_{data}(x)log(D(x))+p_g(x)log(1-D(x))dx$$
我们知道对于形如$alog(y)+blog(1-y)$的函数它在[0,1]区间内在$\frac{a}{a+b}$取得最大值,区间为[0,1]是因为x表示的概率分布是[0,1]之间的。所以V(D,G)在$D_G^* = \frac{p_{data}(x)}{p_{data}(x)+p_g(x)}$取得最大值。
接下来就是求解$\underset GminV(D,G)$。
求解$\underset GminV(D,G)$
将$\underset DmaxV(D,G)$的$D^* $的值带入原目标函数,则变成了$$C(G) = \underset Dmax V(D,G)$$
$$= E_{x_\tilde{} p_{data}}[logD_G^* (x)]+E_{z\tilde{} p_z}[log(1-D_G^* (G(z)))]$$
$$=E_{x_\tilde{} p_{data}}[logD_G^* (x)]+E_{x\tilde{} p_g}[log(1-D_G^* (G(x))]$$
$$=E_{x_\tilde{} p_{data}}[log\frac{p_{data}(x)}{p_{data}(x)+p_g(x)}]+E_{x\tilde{} p_g}[log\frac{p_g(x)}{p_{data}(x)+p_g(x)}]$$
$$=E_{x_\tilde{} p_{data}}[log(\frac{p_{data}(x)}{(p_{data}(x)+p_g(x))/2}* \frac{1}{2})]+E_{x\tilde{} p_g}[log(\frac{p_g(x)}{(p_{data}(x)+p_g(x))/2}* \frac{1}{2})]$$
$$=KL(p_{data}||\frac{p_{data}+p_g}{2})+KL(p_g||\frac{p_{data}+p_g}{2})-log4$$
由KL散度性质得知当两个分布相等的时候,KL散度为0,所以C(G)在$p^* _g=p_d$的时候最小。把$p^* _g=p_d$再带回$D_G^* $得到$D_G^* =\frac{1}{2}$,这个就是目标函数的全局最优解。