原始的公式长这样:
min G max D V ( D , G ) = E x ∼ p data ( x ) [ log D ( x ) ] + E z ∼ p z ( z ) [ log ( 1 − D ( G ( z ) ) ) ] \min _{G} \max _{D} V(D, G)=\mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}(\boldsymbol{x})}[\log D(\boldsymbol{x})]+\mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))] GminDmaxV(D,G)=Ex∼pdata (x)[logD(x)]+Ez∼pz(z)[log(1−D(G(z)))] 首先可以明确一点,这种公式肯定是从里面算到外面的,也就是可以先看这一部分: max D V ( D , G ) = E x ∼ p data ( x ) [ log D ( x ) ] + E z ∼ p z ( z ) [ log ( 1 − D ( G ( z ) ) ) ] \max _{D} V(D, G)=\mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}(\boldsymbol{x})}[\log D(\boldsymbol{x})]+\mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))] DmaxV(D,G)=Ex∼pdata (x)[logD(x)]+Ez∼pz(z)[log(1−D(G(z)))] 我们知道,在每个epoch中,GAN的生成器与判别器是分别训练的,即先固定生成器 G G G,去训练判别器 D D D,那么上面这个式子实际上就是判别器的"损失函数"。继续拆分上面这个式子,可以发现主要就是加号左右两个部分。
先看左边。左边这一部分的作用是保证判别器的基础判断能力:对于 E x ∼ p data ( x ) [ log D ( x ) ] \mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}(\boldsymbol{x})}[\log D(\boldsymbol{x})] Ex∼pdata (x)[logD(x)], x \boldsymbol{x} x为从真实数据分布 p data p_{\text {data }} pdata 中采样得到的样本。 E x ∼ p data ( x ) [ log D ( x ) ] \mathbb{E}_{\boldsymbol{x} \sim p_{\text {data }}(\boldsymbol{x})}[\log D(\boldsymbol{x})] Ex∼pdata (x)[logD(x)]越大,相当于意味着 D ( x ) D(\boldsymbol{x}) D(x)越大,即判别器越能准确地将真实样本识别为真实样本;因此有 max D \max _{D} maxD;
再看右边。右边这一部分的作用是保证判别器能够区分出虚假样本:对于 E z ∼ p z ( z ) [ log ( 1 − D ( G ( z ) ) ) ] \mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))] Ez∼pz(z)[log(1−D(G(z)))], z \boldsymbol{z} z为从某一特定分布 p z p_{\boldsymbol{z}} pz中得到的采样, G ( z ) G(\boldsymbol{z}) G(z)为生成器生成的虚假样本。 E z ∼ p z ( z ) [ log ( 1 − D ( G ( z ) ) ) ] \mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))] Ez∼pz(z)[log(1−D(G(z)))]越大,相当于意味着 D ( G ( z ) ) D(G(\boldsymbol{z})) D(G(z))越小,即判别器越能够正确区分虚假样本,将其标为False;因此有 max D \max _{D} maxD。
再来看生成器G的"损失函数"。到了训练生成器G的阶段,此时判别器D固定。如果G更强,那么判别器会进行误判,此时 D ( G ( z ) ) D(G(\boldsymbol{z})) D(G(z))会变大, E z ∼ p z ( z ) [ log ( 1 − D ( G ( z ) ) ) ] \mathbb{E}_{\boldsymbol{z} \sim p_{\boldsymbol{z}}(\boldsymbol{z})}[\log (1-D(G(\boldsymbol{z})))] Ez∼pz(z)[log(1−D(G(z)))]更接近于零,即整个式子的值会更小;因此有 min G \min _{G} minG。