【GAN 03】auto-encoder在GAN中的应用

本文是对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),效率较高。 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用: Auto-encoder是一种深度学习模型,用于将输入数据编码为低维表示,并尽可能地重构原始数据作为输出。在降维方面,PCA会将不同类别的数据混合在一起,而auto-encoder则可以将它们分开。除了降维之外,auto-encoder还有其他用途,比如图片搜索。 引用: 训练一个auto-encoder的过程通常会先固定一些权重参数,然后逐层训练多个自编码器,每个自编码器的输入和输出维度逐渐逼近目标维度。最后,可以使用反向传播来微调网络参数。现在也可以不进行预训练,直接训练auto-encoder。此外,auto-encoder还可以与卷积神经网络(CNN)一起使用。 引用: 特征区分技术是指在auto-encoder,通过编码器获取的Embedding向量,可以区分出不同输入数据的特征信息。比如,对于语音输入,可以分别提取出语音内容和说话者的特征。这就是Feature Disentangle的目标。 根据李宏毅老师的讲解,auto-encoder是一种用于降维、重构和特征提取的深度学习模型。它可以将输入数据编码为低维表示,并尽可能地重构原始数据作为输出。除了降维之外,auto-encoder还可以用于图片搜索等任务。训练auto-encoder时,可以使用预训练和微调的方法,也可以直接进行训练。此外,auto-encoder还可以与卷积神经网络(CNN)结合使用。特征区分技术可以用于auto-encoder,用于提取不同输入数据的特征信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值