InfoGAN

期望的是 input 的每一个维度都能表示输出数据的某种特征。但实际改变输入的一个特定维度取值,很难发现输出数据随之改变的规律。

InfoGAN 就是想解决这个问题。在 GAN 结构以外,把输入 z 分成两个部分 c 和 z' ,然后根据 generated data x 来预测给到 generator 的 c 是什么,这里的ae 做的事情是 code-x-code。同时还需要 discriminator 来配合,x 还必须要足够像目标数据(要不 generator 直接把 c 复制过来就最容易让 classifer 预测对)。

为了要让 classifer 可以成功从 x 中预测原来的 c(能反推回去),那 generator 就要让 c 的每一个维度都对 output 有一个明确的影响。就让 z' 去表示那些无法解释的特征。

VAE-GAN

可以看作用 GAN 来强化 VAE(让VAE生成的数据更加realistic),也可以看作用 VAE 来强化 GAN(原本的 GAN 是随机从 z 到 x,现在训练的时候 generator 还要尽可能好地重构 z 原本的 x,从一开始就知道一个 z 它对应的 x 应该是什么样,所以 VAE-GAN 训练会稳定一些)

训练流程。其中,原本的真实数据 x 、VAE 从 x 经过 encoder 得到 z~ 再经过 decoder 生成的 x~ (重构)、从 P_z 中采样出来的 z 经过 generator 生成的 x^ (生成)。训练 VAE 的目标是,encoder 让后验分布P_ z| x 尽可能服从高斯并且重构误差越小越好;decoder 让重构误差越小越好并且生成数据越像真实数据越好;discriminator 给真实数据 x 高分给生成和重构低分。

BiGAN (ALI)

encoder 和 decoder 不直接相连,而是通过共同骗过 discriminator 来实现互逆映射。和ae比起来,理想上最佳的结果可能是一样的,但是 BiGAN 的 ae 更能够抓住语义上的信息(比如可以从一只鸟重构到另一只不同的鸟,但仍然还是鸟)

训练过程:

Domain-adversarial Training

需要用 generator 从不同的 domain 抽出特征,可以同分布。

实现方法就是,两个分类器既要让 label 分类正确,也要让 domain-label 分类正确;而特征抽取要让 label 正确但 domain 分不出来

最新文章

  1. Object C中Block用法
  2. 20160113第一个ANDRIOD开发日志
  3. oracle数据库升级记(记一次10.2.0.3版本升级到11.2.0.1版本的过程)
  4. 非阻塞同步算法与CAS(Compare and Swap)无锁算法
  5. Wordpress实现站搜索
  6. 解决Jenkins console输出乱码
  7. 一个比较完整的Inno Setup 安装脚本(转)
  8. 软件工程课后作业——四则运算Ⅲ(C++)
  9. ANDROID_MARS学习笔记_S01原始版_011_XML
  10. [转]优化数据库大幅度提高Oracle的性能
  11. 自定义ASP.NET WebApplication中调用SharePoint2010的对象
  12. WinSock网络编程基础(1)
  13. MVC 缓存1
  14. 安卓Monkey源码分析之运行流程
  15. (译)Windsor入门教程---第四部分 整合
  16. 全国银行列表json格式
  17. Python开发——函数【装饰器、高阶函数、函数嵌套、闭包】
  18. P1613 跑路(倍增 + floyd)
  19. RTSP为什么VLC播放器无法播放
  20. URL中传递参数给视图函数

热门文章

  1. node-sass安装失败解决方法
  2. e3mall商城的归纳总结7之solr搭建和应用
  3. React的几种组件
  4. React.Fragment
  5. hdu 4010 Lct动态链接树
  6. 有手就行 虚拟机上安装Linux
  7. 使用IDEA写Python之pytest环境搭建及第一个程序编写
  8. C++类重载函数的function和bind使用
  9. openshift 4.3中安装helm3并通过helm方式部署应用
  10. C#知识点:抽象类和接口浅谈