Zhao S., Liu Z., Lin J., Zhu J. and Han S. Differentiable Augmentation for Data-Efficient GAN Training. NIPS, 2020.

Karras T., Aittala M., Hellsten J., Laine S., Lehtinen J. and Alia T. Training Generative Adversarial Networks with Limited Data. NIPS, 2020.

Augmentation 在分类识别中已经是非常常用的技术了, 但是在GAN中却并不多用, 究其原因主要是:

  1. Augmentation容易泄露导致生成器最后拟合的是变换后的分布;
  2. 技术上, augment之后是否保留梯度(这个其实是我个人的想法, 总觉得augmentation只能施加在图片上, 原来大部分augmentation都可以直接在tensor上实现, 虽然这可能不是现成的).

主要内容

Differentiable Augmentation

添加augmentation有三种策略:

  1. \(T(x)\), 仅对真实样本施加, 显然这种情况会让生成器学到恶心的东西;
  2. \(T(x), T(G(z))\), 对二者都施加, 但仅用于训练判别器;
  3. \(T(x), T(G(z))\), 对二者都施加, 同时训练生成器, 当然这就要求augmentation不破坏梯度.

本文采取的就是第三种策略.

Adaptive Augmentation

这篇文章有一个点我觉得很有意思, 其认为augmentation应当是'invertible'的.

倘若我们对一个生成的图片施加随机的旋转: 0, 90, 180, 270, 那么显然, 最后的生成器就不一定生成正常视角(0)的图片, 这是因为, 不管生成最后变成 0, 90, 180, 270度的概率都是一样的, 生成器没法判断哪一个才是我们想要的是对的.

所以, 这篇文章认为, 对于每一个augmentation应该添加一个概率\(p < 1\), 即按照小于1的概率实施.

虽然代码给出了很多augmentation, 不过最后选择的是比较弱的俩种...

注: Diff_Aug 虽然没有这个概率\(p\), 但是它选择的变换都是满足‘invertible'的.

代码

Diff_Aug

Ada_Aug

Augmentation For GAN的更多相关文章

  1. (转)Awesome GAN for Medical Imaging

    Awesome GAN for Medical Imaging 2018-08-10 09:32:43 This blog is copied from: https://github.com/xin ...

  2. 常见的数据扩充(data augmentation)方法

    G~L~M~R~S 一.data augmentation 常见的数据扩充(data augmentation)方法:文中图片均来自吴恩达教授的deeplearning.ai课程 1.Mirrorin ...

  3. [转]GAN论文集

    really-awesome-gan A list of papers and other resources on General Adversarial (Neural) Networks. Th ...

  4. 《StackGAN: Text to Photo-realistic Image Synthesis with Stacked GAN》论文笔记

    出处:arxiv 2016 尚未出版 Motivation 根据文字描述来合成相片级真实感的图片是一项极具挑战性的任务.现有的生成手段,往往只能合成大体的目标,而丢失了生动的细节信息.StackGAN ...

  5. 深度学习笔记(十)Augmentation for small object detection(翻译)

    一. abstract 这些年来,目标检测取得了令人瞩目的成就.尽管改进很大,但对于小目标和大目标的检测性能差异还是蛮大的.我们在 MS COCO 数据集上分析了如今一个比较先进的算法,Mask-RC ...

  6. Regularizing Deep Networks with Semantic Data Augmentation

    目录 概 主要内容 代码 Wang Y., Huang G., Song S., Pan X., Xia Y. and Wu C. Regularizing Deep Networks with Se ...

  7. (转) How to Train a GAN? Tips and tricks to make GANs work

    How to Train a GAN? Tips and tricks to make GANs work 转自:https://github.com/soumith/ganhacks While r ...

  8. 不要怂,就是GAN (生成式对抗网络) (一)

    前面我们用 TensorFlow 写了简单的 cifar10 分类的代码,得到还不错的结果,下面我们来研究一下生成式对抗网络 GAN,并且用 TensorFlow 代码实现. 自从 Ian Goodf ...

  9. 深度学习中的Data Augmentation方法(转)基于keras

    在深度学习中,当数据量不够大时候,常常采用下面4中方法: 1. 人工增加训练集的大小. 通过平移, 翻转, 加噪声等方法从已有数据中创造出一批"新"的数据.也就是Data Augm ...

随机推荐

  1. Java 监控基础 - 使用 JMX 监控和管理 Java 程序

    点赞再看,动力无限.Hello world : ) 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码网站 已经收录,有很多知识点和系列文章. 此篇文 ...

  2. Netty4.x 源码实战系列(一): 深入理解ServerBootstrap 与 Bootstrap (1)

    从Java1.4开始, Java引入了non-blocking IO,简称NIO.NIO与传统socket最大的不同就是引入了Channel和多路复用selector的概念.传统的socket是基于s ...

  3. Java中特殊的类——包装类

    Java中特殊的类--包装类 包装类就是将基本数据类型封装在类中. 1.包装类 (1)自定义包装类 将基本数据类型包装成一个类对象的本质就是使用Object进行接收处理. 此时IntDemo类就是in ...

  4. 在应用程序中的所有其他bean被销毁之前执行一步工作

    1.实现ServletContextListener.ApplicationContextAware两个接口,在销毁方法里借助ApplicationContextAware注入的application ...

  5. 【Linux】【Basis】【网络】网络相关的内核参数

    Linux系统内核设置优化tcp网络,# vi /etc/sysctl.conf,添加以下内容 net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies.当出现SYN等待 ...

  6. 图书管理系统总结——JAVA Swing控件简介

    断断续续学习JAVA语言,写了一个多月数据库大作业,终于在五一过后写完了.由于第一次使用JAVA和数据库,遇到了许多问题,记录下来,以备以后查看. 我使用的JAVA SE,说实话,在开发后期,觉得JA ...

  7. excel数据导入mySql数据库

    1.将excel数据保存好 2.打开数据库,在表上点击右键,选择导入向导 3.点击下图中红色部门,点击下一步 4.选择excel文件的位置,下方的表空间内,会出现excel中的sheet页,选择要导入 ...

  8. 【Github】如何下载csv文件/win10如何修改txt文件为csv文件

    csv文件:逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号) 右键点击raw按钮,选择目标另存为,下载的是txt文件 win10如何 ...

  9. 【Linux】【专项突破】Linux重定向与管道

    [专项突破]Linux重定向与管道 This article is written by Xrilang(Chinese Name:萌狼蓝天) If you want find me ,You can ...

  10. 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)

    实现的功能: l  APP控制月球灯 l  本地月球灯控制 l  APP控制"大白"颜色,实现各种颜色变身 l  门状态传感器状态APP显示 l  网络状态指示灯,连接服务器长亮, ...