本文是对http://www.seeprettyface.com/research_notes.html的学习笔记
1. minimize reconstruction error,可以保证原图信息的保留。
2. 将不同域映射到相同的特征空间,例如,使Face Attribution一致:(1)CoGAN:encoder x和encoder y的最后几层共享参数。(2)Guillaume Lample:判别face attribution属于哪个域。(3)ComboGAN:将两条回路拼在一起,通过cycle consistency,使得两条回路尽可能保留原图的特征信息。(4)XGAN:在latent空间,使特征保持一致。
3. Domain Adaptation (DA)和GAN:
(1)DA是将未知分布和已知分布投影到同一个特征空间。在auto-encoder的视角上来看,GAN想做的是,将已知分布投影(通过生成器)到未知分布的特征空间(通过判别器判断两者是否在同一特征空间/分布)。
(2)DA中的feature extractor和域无关,这点与neural style transfer相似,与GAN不同。
(3)两者都是minmax问题,但是DA只有一个网络,因此通过gradient reversal layer,反传梯度来训练(两步更新,第一步是常规的分类任务最小化,第二步是域分类器参数最小化,然后对feature extractor参数反传梯度)
4. aoto-encoder还可以作为GAN的pre-trained判别器(背板的感觉):通过输入图片和输出图片的差异,判断图片是否来自训练数据集。
考虑使用auto-encoder做大风格的转换,例如将真人图片转换为动漫图片:
再进一步,希望两域的图片可以相互转换,因此再添加一个auto-encoder:
但此时,只是两个auto-encoder的简单叠加,他们相互之间并没有产生互动。因此,我们希望minimize reconstruction。
同时,我们还希望生成的图片尽可能的清晰,因此再分别加入一个判别器:
但是目标无法保证image x -> encoder x -> decoder y或者image y->encoder y->decoder x。输入图片和输出图片在语义上的相似,因为两域差异巨大,我们无法保证经过不同编码器编码得到的特征,它在相同维度的语义也相同。
1. CoGAN (Coupled GAN)
让encoder x和encoder y的最后几层参数共享,使得他们提取出的脸部特征在结构上非常相似。因此,也让decoder x和decoder y的前几层参数共享。
2. Guillaume Lample
给face attribution添加一个判别器,判断这个face attribution来自domain x还是domain y。encoder x和encoder y为了骗过这个判别器,就会产生尽可能一致的face attribution。
3 ComboGAN
利用Cycle Consistency,将两条路拼在一起:image x->encoder x->decoder y->image y->encoder y->decoder x-> image x’,然后让image x和image x' minimize reconstruction error。这会使得encoder x -> decoder y和encoder y -> decoder x尽可能不丢失原图信息。
4. XGAN:latent相似性计算
5. EBGAN (Energy-Based GAN)
用真实图片训练一个autoencoder,使得输入来自真实数据集时,就产生与输入非常相似的图片;但如果不是,则输出与输入不相似。因此输入图片与重构图片的差值越小,意味这输入图片越符合真实图片的特征。
EBGAN中使用autoencoder作为判别器,这导致判别器在一开始就非常强,使得生成器初期就获得比较大的“能量驱动”(energy based),效率较高。