CycleGAN Loss函数
CycleGAN是GAN发展过程中里程碑式的框架,时至今日在轻量化任务和落地框架中依旧是主流方案之一。
CycleGAN的Loss函数是其能实现在无监督条件下实现良好、稳定效果的精髓所在,其总体Loss函数可以表示为:
L t o t a l = L D + L G + λ c y c l e L c y c l e + λ i d e n t i t y L i d e n t i t y \mathcal{L}_{total}=\mathcal{L}_D+\mathcal{L}_G+\lambda_{cycle}\mathcal{L}_{cycle}+\lambda_{identity}\mathcal{L}_{identity} Ltotal=LD+LG+λcycleLcycle+λidentityLidentity
Adversarial Loss
对于 X → Y X\rightarrow Y X→Y可以表示为:
L D = E y ∼ p data ( y ) [ log D Y ( y ) ] + E x ∼ p data ( x ) [ log ( 1 − D Y ( G ( x ) ) ) ] \mathcal{L}_{\text{D}} = \mathbb{E}_{y \sim p_{\text{data}}(y)} [\log D_Y(y)] + \mathbb{E}_{x \sim p_{\text{data}}(x)} [\log(1 - D_Y(G(x)))] LD=Ey∼pdata(y)[logDY(y)]+Ex∼pdata(x)[log(1−DY(G(x)))]
上述是论文中的表达方式,也是GAN中最常见也是最经典的判别器损失结构,这里我们将遵循官方代码中的表达而不是论文中的方式。
对于A域与B域的数据,当 A → B A\rightarrow B A→B有: