GAN loss

mac2024-10-23  52

传统GAN

来源:https://arxiv.org/abs/1406.2661

符号解释 G G G Generator生成器 D D D Discriminator判别器 P d a t a P_{data} Pdata 真实数据分布 P G P_G PG 生成器生成数据分布

目标公式 min ⁡ G max ⁡ D E x ∼ P d a t a [ log ⁡ D ( x ) ] + E z ∼ P G [ log ⁡ ( 1 − D ( G ( z ) ) ) ] \min _{G} \max _{D} \mathbb{E}_{\boldsymbol{x} \sim P_{data}}[\log D(\boldsymbol{x})]+\mathbb{E}_{\boldsymbol{\boldsymbol{z}} \sim P_G}[\log (1-D(G(\boldsymbol{z})))] GminDmaxExPdata[logD(x)]+EzPG[log(1D(G(z)))]

判别器 loss函数 l o s s D = − E [ l o g ( D ( x ) ) ] − E [ l o g ( 1 − D ( G ( z ) ) ) ] loss_D = -\mathbb{E}[log(D(\boldsymbol{x}))] - \mathbb{E}[log(1 - D(G(\boldsymbol{z})))] lossD=E[log(D(x))]E[log(1D(G(z)))]

生成器 loss函数 l o s s G = − E [ l o g ( D ( G ( z ) ) ) ] loss_G = -\mathbb{E}[log(D(G(\boldsymbol{z})))] lossG=E[log(D(G(z)))]

LSGAN

即最小二乘GAN 来源:https://arxiv.org/abs/1611.04076

判别器 loss函数 min ⁡ D l o s s D = 1 2 E x ∼ P d a t a ( x ) [ ( D ( x ) − b ) 2 ] + 1 2 E z ∼ P G ( z ) [ ( D ( G ( z ) ) − a ) 2 ] {\min _{D} loss_D=\frac{1}{2} \mathbb{E}_{\boldsymbol{x} \sim P_{\mathrm{data}}(\boldsymbol{x})}\left[(D(\boldsymbol{x})-b)^{2}\right]+\frac{1}{2} \mathbb{E}_{\boldsymbol{z} \sim P_{\boldsymbol{G}}(\boldsymbol{z})}\left[(D(G(\boldsymbol{z}))-a)^{2}\right]} DminlossD=21ExPdata(x)[(D(x)b)2]+21EzPG(z)[(D(G(z))a)2] 生成器 loss函数 min ⁡ G l o s s G = 1 2 E z ∼ P G ( z ) [ ( D ( G ( z ) ) − c ) 2 ] {\min _{G} loss_G=\frac{1}{2} \mathbb{E}_{\boldsymbol{z} \sim P_{\boldsymbol{G}}(\boldsymbol{z})}\left[(D(G(\boldsymbol{z}))-c)^{2}\right]} GminlossG=21EzPG(z)[(D(G(z))c)2] 其中作者设置a=c=1,b=0

WGAN-GP

加上梯度惩罚的WGAN 来源:https://arxiv.org/abs/1704.00028

判别器 loss函数 l o s s D = − E x ∼ P data  [ D ( x ) ] + E x ∼ P G [ D ( x ) ] + λ E x ∼ P x ^ [ ∥ ∇ x D ( x ) ∥ p − 1 ] 2 loss_D=-\mathbb{E}_{x \sim P_{\text {data }}}[D(x)]+\mathbb{E}_{x \sim P_{G}}[D(x)]+\lambda \mathbb{E}_{x \sim P_{\hat{x}}}\left[\left\|\nabla_{x} D(x)\right\|_{p}-1\right]^{2} lossD=ExPdata [D(x)]+ExPG[D(x)]+λExPx^[xD(x)p1]2 生成器 loss函数 l o s s G = − E x ∼ P G [ D ( G ( z ) ) ] loss_G = -\mathbb{E}_{x \sim P_{G}}[D(G(\boldsymbol{z}))] lossG=ExPG[D(G(z))]

我们已做过的测试结果中,使用wgan-gp的loss作为模型中的loss函数需要花费的训练时间是上述其他两种方法的4倍左右,效果上没有太大的区别。最终LSGAN效果较好且速度较快。 当然在今后的不同数据的训练中,还需要额外的测试来对比哪种方案比较优秀,并采用。

最新回复(0)