Gan网络全局最优解推导

171 阅读1分钟

引言

本文是对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},这个就是目标函数的全局最优解。