原始的公式長這樣:
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。