学习目标:

  • 《Reusing Discriminators for Encoding: Towards Unsupervised Image-to-Image Translation》
  • NICE-GAN:No-Independent-Component-for-Encoding GAN
  • NICE-GAN环境搭建 模型训练

学习内容:

  1. GAN-评价指标IS以及FID、KID
  2. 论文初读
  3. Introspective Networks

学习时间:

  • 7.10~7.16

学习产出:

  • CSDN 技术博客 1 篇

GAN-评价指标IS以及FID、KID

GAN网络评价指标主要有两种,IS以及FID
IS(Inception Score)
顾名思义:基于Inception网络的score计算方法。
Inception网络是图片分类器,基于ImageNet数据库进行训练,该数据库共有1.2M个RGB图片,分为1000类。Inception网络作为经典网络,在很多框架中都有集成,直接拿来用即可。
参考:知乎专栏
评价生成模型,主要两方面性能:1、生成图片是否清晰2、生成的图片是否多样。是否清晰说明生成模型表现是否良好;是否多样检测生成模型是否只能生成有限的几种清晰图片,陷入了所谓的mode collapse,这样的模型也不是好的模型。
IS指标是这样进行检测的:
1、清晰度:将生成的图片X输入到Inception V3网络中,将输出的1000维向量y(即属于各类的概率)。假设对于一个清洗的图片,它属于某一类的概率应该非常大,而属于其他类的概率非常小(该假设本身存在问题,清晰度和可分类度并不强相关,有可能有些图片很清晰,但是具体属于哪个类却是模棱两可的)。用专业术语说, [公式1] 的熵应该很小(熵代表混乱度,均匀分布的混乱度最大,熵最大。也就是说,输出的概率分布函数图越尖锐。
2、多样性:多样性:如果一个模型能生成足够多样的图片,那么它生成的图片在各个类别中的分布应该是平均的,假设生成了 10000 张图片,那么最理想的情况是,1000类中每类生成了10张。转换成术语,就是生成图片在所有类别概率的边缘分布p(y)p(y)p(y)熵很大(均匀分布)。具体计算时,可以先用生成器生成 N 张图片,然后计算经验分布。但是,如果各类中的10个图片,都是一模一样的,仍然是 mode collapse。Inception Score 无法检测这种情况。


本质上就是分别计算输入x的概率分布以及所有图片的边缘分布,之后计算KL散度。
综合起来,只要p(y|x)和 p(y)的距离足够大,就能证明这个生成模型足够好。因为前者是一个很尖锐的分布,后者是一个均匀分布,这俩距离本就应该很大。

具体代码可参考:sbarratt/inception-score-pytorch
缺陷:计算 IS 时只考虑了生成样本,没有考虑真实数据,即 IS 无法反映真实数据和样本之间的距离,IS 判断数据真实性的依据,源于 Inception V3 的训练集: ImageNet,在 Inception V3 的“世界观”下,凡是不像 ImageNet 的数据,都是不真实的,都不能保证输出一个 sharp 的 predition distribution。

本质上使用的是真实图片与生成图片提取特征向量之后之间的均值,协方差的距离评价。当生成图片和真实图片特征越相近时,均值之差的平方越小,协方差也越小,则之和(FID)也越小。
FID指标只是使用InceptionV3作为特征提取器,而不依赖图片的具体类别,也不必担心每个类别内部只产生一模一样的图片导致IS中多样性判别失效,无法预测mode collapse的问题。

综上所述,对比 IS,FID 有如下优点:
生成模型的训练集和 Inception V3 的训练集可以不同。
计算 FID 时同时用到了生成的数据和真实数据,比起 IS 来更灵活。可以理解成,IS 判断真实性与否,是把生成数据和 ImageNet 数据做比较,而 FID 是把生成数据和训练数据做比较,因此更 reasonable。
以优化 FID 为目标,不会产生对抗样本。因为优化的是 lantent space feature,不是最终的输出图片,不会导致最终的生成图片失真。
FID缺陷
FID 只是某一层的特征的分布,是否足以衡量真实数据分布与生成数据分布的距离?同时,提出 FID 公式计算的是多元正态分布的距离,显然神经网络提取的特征并不是多元正态分布。
针对同一个生成模型,不同框架下预训练的 Inception V3 算出的 FID 差别是否可以忽略?
FID 无法反映生成模型过拟合的情况,如果某个生成模型只是简单拷贝训练数据,FID 会非常小,认为这是一个完美的生成模型,因此,使用 FID 时同时也要通过别的手段证明生成模型没有过拟合。

KID
Kernel Inception Distance (KID)。与FID类似,KID通过计算Inception表征之间最大均值差异的平方来度量两组样本之间的差异。此外,与所说的依赖经验偏差的FID不同,KID有一个三次核的无偏估计值,它更一致地匹配人类的感知。

论文提出的背景

回顾当前较成功的的图像转换框架(例如CycleGAN),大多数都由三个部分组成:
1、将输入图像嵌入到低维隐层空间的编码器;
2、将隐层编码转换为其他域图像的生成器;
3、使用对抗训练进行域对齐的判别器。

本文的框架思路:
在图像转换任务中,当网络训练完成后,当前的网络框架将丢弃判别器。而在论文提出的新框架中,判别器赋予了双重角色——编码和分类:通过复用目标域判别器的前几层网络来替代目标域图像的编码器。作者将这个新的体系结构称为NICE-GAN。

相比之前方法,NICE-GAN具有的优势:

  • 不需要独立的编码组件,因此结构更紧凑,在训练完成后,其编码部分仍保留用于推断
  • 传统的编码器是通过生成器的梯度传播进行间接训练的。在这里,通过将其插入判别器中,可以直接利用判别损失(Discriminative Loss)进行训练
  • 若应用多尺度判别器结构,它会拥有更多的信息量和更高的训练效率

解耦训练机制

NICE-GAN框架中的主要问题是编码器上的转换构造(translation)与判别(discrimination)之间存在矛盾的耦合——当我们通过GAN优化价值函数minGmaxDV(D,G)\underset{G}{min}\; \underset{D}{max}\; V\left ( D,G \right )GminDmaxV(D,G)时,编码器与生成器一起训练以最小化对抗损失,而与判别器一起训练则为了使对抗损失最大化,这会导致训练目标的冲突。为了解决这个问题,作者提出了一种解耦训练策略,使编码器的训练仅与判别器相关联,而与生成器无关通过该策略——仅在最大化对抗损失(Discriminative Loss)的时候对编码器进行训练。

解耦的训练方式:在最小化对抗损失、重构损失和循环一致性损失时,编码器冻结权重,而在最大化对抗损失时训练编码器。

Introspective Networks.

内省神经网络(INN)和内省对抗网络(IAN)已经探索了判别器的双重作用。尽管INN确实具有重复使用判别器的目的,但与我们的NICE-GAN相比,它表现出一些显着差异。首先,INN和NICE-GAN处理不同的任务。 INN 用于纯生成,判别器重用是用于从隐向量到图像的生成(作为解码);我们的NICE-GAN用于翻译,判别器重用是用于从图像中提取特征到隐向量(作为编码)(embedding from images to hidden vectors (as encoding).)此外,INN即使在进行推理时也需要顺序训练,而NICE-GAN只需要一次前向传递就可以生成一个新颖的图像,效率更高。对于IAN,也是纯粹的生成,重用一个判别器生成自伪样本,这是一种内省机制;我们的NICE-GAN重用一个域的判别器生成另一个域的伪样本,这是一种相互内省的机制。

【研究生工作周报】(第十周)相关推荐

  1. 【研究生工作周报第十四周】

    学习目标: 例如: CycleGAN论文以及源码 学习内容: CycleGAN网络模型 CycleGAN损失函数 模型优化方法Instance Normalization 学习时间: 8.7~8.13 ...

  2. 研究生工作周报(第十三周)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 NICE-GAN性能评估 前言 一.怎么写深度学习代码? 二.生成器效率评估 前言 这周的话主要就是看论文源码,有思考一些问题,带着疑 ...

  3. 【研究生工作周报】(GAN最新论文调研)

    GAN系列最新论文调研 文章目录 GAN系列最新论文调研 前言 一.EditGAN:High-Precision Semantic Image Editing 二.TransductGAN: a Tr ...

  4. 【研究生工作周报】(stylegan)

    StyleGAN提出的背景 ProGAN: NVIDIA在2017年提出的ProGAN解决了生成高分辨率图像(如1024×1024)的问题.ProGAN的关键创新之处在于渐进式训练--从训练分辨率非常 ...

  5. 为什么您公司的工作周报制度,形同虚设?

    据调查,高达78%的公司都在执行工作周报制度,但大部分管理者反映:这项制度似乎并没有取得预期的效果.针对这个问题,笔者结合自己公司这项制度的演化做了一些思考.    首先,我们需要了解为什么很多企业都 ...

  6. 研究生周报(第十周)

    研究生周报(第十周) 学习目标 YOLO1简单理解 线性因子模型 F1.ROC.AUC 决策树和GBDT XGBoost简单理解 学习时间 7.10 ~ 7.16 学习产出 Python代码 gith ...

  7. 第六周工作周报销售_知新周报|第六周

    原标题:知新周报|第六周 知新周报 一周会议汇总 距离国庆小长假又过去了一个星期,在这一周里化学化工学院又发生了哪些事呢,一起来看看吧! 1 10月8日中午十二点半,生活委员大会在十教附一104顺利展 ...

  8. 研究生周报(第九周)

    研究生周报(第九周) 学习目标 自编码器 循环神经网络 实践方法论 应用例子 残差网络 学习时间 7.03 ~ 7.09 学习产出 Python代码 github记录 自编码器 均方误差(MSE) S ...

  9. 第十周学习周报(201800507-20180513)

    第十周学习周报 一.本周学习情况 1.学习了吴恩达老师微专业课<深度学习工程师> 第二篇:改善深层神经网络:超参数调试.正则化以及优化 第二周内容:优化算法 2.看了阿里云云栖社区的深度学 ...

最新文章

  1. 一文搞懂PointNet全家桶——强势的点云处理神经网络
  2. 从课堂走向实践还有多远?
  3. Xamarin iOS开发实战上册-----2.2.2 使用代码添加视图
  4. 学python可以考证吗-python能考证么
  5. (转载)如斯场景 似曾相识
  6. 还在担心服务挂掉?Sentinel Go 让服务稳如磐石
  7. mysql与web服务器之间的分离操作
  8. PHP中类明明存在 但class_exists 确检测不到的坑: 使用完整命名空间
  9. Oracle 审计文件
  10. NetCore服务虚拟化01(集群组件Sodao.Core.Grpc)
  11. Delphi编程修改ProgressBar的颜色
  12. SQL嵌套语句执行顺序
  13. Python——assert(断言)主进程级的终止判断语句
  14. 关于样本量的快速证明
  15. jsp实现简单购物车页面
  16. 美团笔试.最大子段和
  17. 收集的省市区下拉数据源
  18. 说说几种常用的前端缓存
  19. domoticz 使用esp8266通过mqtt控制灯开关
  20. 新生儿登记-申办报告

热门文章

  1. 2020 - 2021 年 Web 前端最新导航 - 前端学习资源分享前端面试资源汇总
  2. Windows下如何启动Redis服务?
  3. Git 学习之团队协作(Gitee实操)
  4. GTD管理自己的时间
  5. IfThen/IIF/Case
  6. CSDN 为什么无法上传付费资源?
  7. 一文带您了解信号线和电源线的区别
  8. 国内AdSense/Youtube如何回款?AdSense/Youtube无限额结汇
  9. java美颜算法_美颜算法之自动祛斑算法实现 | 案例分享
  10. android 如何让应用程序在全部应用程序列表里显示跟隐藏!