【技术综述】深度学习中的数据增强(下)

言有三

毕业于中国科学院,计算机视觉方向从业者,有三工作室等创始人

作者 | 言有三(微信号Longlongtogo)

编辑 | 言有三

今天带来深度学习中的数据增强方法的下篇。我们将从以下几个方向入手。1,介绍一下什么是无监督的数据增强方法。2,简单介绍一下GAN生成数据的应用。3,介绍一下AutoAugment为代表的网络自动学习数据增强策略的方法。4,总结。

00

什么是无监督数据增强方法

我们先看看什么是有监督的数据增强方法。它指的是生成的图片,是在已有的图片上直接做简单的几何变换,像素变化,或者简单的图片融合,如下。

上面的增强方法,都是由使用者完全定义的。然而,不是所有的任务都适合所有的数据增强方法。

比如数字识别,就不适合做旋转。不然,9和6就分不开了。

人脸姿态,就不适合做翻转,不然左右分不清。

那什么是无监督的方法呢?

包括两类:

(1)通过模型学习数据的分布,随机生成与训练数据集分布一致的图片,代表方法,GAN【1】。

(2)通过模型,学习出适合当前任务的数据增强方法,代表方法,AutoAugment【2】。

下面分别讲述。

01

GAN

1.1 什么是Gan

generative adversarial networks,译名生成对抗网络 ,它包含两个网络,一个是生成网络,一个是对抗网络,基本原理如下:

(1)G是一个生成图片的网络,它接收随机的噪声z,通过噪声生成图片,记做G(z) 。

(2)D是一个判别网络,判别一张图片是不是“真实的”,即是真实的图片,还是由G生成的图片。

如上图,原理非常简单,至于更多的数学,训练等细节,留待以后专题,毕竟这里主要介绍数据增强方法的使用。

1.2 Gan应用

DCGAN【3】作为第一个比较实用的Gan,生成手写数字的效果还是不错的。

它的生成器的网络结构也比较简单,如下。

关于更多细节,以后再专门讲。我们看看生成的一些嘴唇的数据,这是真实项目中使用的。

现在生成效果最惊艳的来自于nvidia【4】,利用从小分辨率到大分辨率逐步提升的办法,看看结果吧。

Gan学习的是数据分布,下面我们讲讲另一种思路。

02

AutoAugment

虽然这是一篇论文,但是也可以看作一个研究方向。

它的基本思路:使用增强学习从数据本身寻找最佳图像变换策略,对于不同的任务学习不同的增强方法。

1.1 原理

我们直截了当,流程如下。

1:准备16个数据增强操作。

2 : 从16个中选择5个操作,随机产生使用该操作的概率和幅度,将其称为一个sub-policy,一共产生5个sub-polices。

3:每一个batch中的图片,随机采用5个sub-polices操作中的一种。

4:通过childmodel在验证集上的泛化能力来反馈,使用增强学习方法。

5:经过80~100个epoch后开始有效果,能学习到sub-policies。

6:串接这5个sub-policies,然后再进行最后的训练。

文章中用到的16个操作如下:

大致原理就是这样,数据增强都是已有的操作,学习到的就是组合的策略,更多训练细节可以看原文。

1.2 实际效果

我们看两个例子。

第一个是SVHN门牌图像识别,下面是学习到的图像增强操作。

从上面可以知道,AutoAugment学到了侧重于剪切和平移等几何变换,同时学会了颜色反转。

再看一个imagenet的分类任务。

从上面可以看出,AutoAugment不使用剪切,也不完全反转颜色,因为这些变换会导致图像失真。相反,AutoAugment 侧重于微调颜色和色相分布。

效果还不错对吧。还有没有其他的一些方法呢?有的,我们再举一个例子吧。

Smart Augmentation【5】,它学习到的就是组合多张图片的策略,框架如下:

下面是一个具体的例子,第一张图是后面两张图的组合。

针对具体任务进行自适应数据增强,这是一个很好的研究方向,期待后续的研究。

03

总结

下面对数据增强这两次的分享做一个总结,数据增强是为了增强模型的泛化能力,那它与dropout,weight decay有什么区别?

  • weight decay,dropout,stochastic depth等方法,是专门设计来限制模型的有效容量的,用于减少过拟合,它们是显式的规整化方法。研究表明这一类方法可以提高泛化能力,但并非必要,且能力有限,而且参数高度依赖于网络结构等因素。

  • 数据增强则没有降低网络的容量,也不增加计算复杂度和调参工程量,是隐式的规整化方法。实际应用中更有意义,所以我们常说,数据大于天。

(0)

相关推荐

  • 障眼法修行指南:GAN是怎样一步步学会“骗人”的?

    算法,就像是武林绝学中的"内功",是计算机领域最重要的基石.不过,算法多了也很麻烦.不断推陈出新的算法是否更新更快更好,大厂各执一词,评价褒贬不一. 没有"内功" ...

  • 必读论文 | 生成对抗网络经典论文推荐10篇

    生成式对抗网络(Generative adversarial networks, GAN)是当前人工智能学界最为重要的研究热点之一.其突出的生成能力不仅可用于生成各类图像和自然语言数据,还启发和推动了 ...

  • 如何入门多视角人脸正面化生成?不得不看的超详细最新综述!

    作者丨宁欣,南方哲,许少辉,于丽娜,张丽萍 审稿丨邓富城 编辑丨极市平台 极市导读 本文将重点对近些年来基于3D模型和深度学习模型的人脸正面化生成方法的主要进展和部分具有代表性的研究成果进行介绍,并通 ...

  • 揭秘腾讯微视人脸技术「黑科技」,基于GAN的人脸魔法特效 – 我爱计算机视觉

    作者:微视团队 随着小视频越来越流行,兼具趣味与人物个性的人脸特效成为小视频软件的标配,美颜自不必说,现在的人脸特效可谓"千变万化",人脸年轻化.变欧美范儿.发型改变.各种表情.胖 ...

  • CVPR 2020 Oral | 妙笔生花新境界,语义级别多模态图像生成

    GAN已经成为图像生成的有力工具,现今GAN已经不再局限于生成以假乱真的图,而是向着更加灵活可操控的方向发展. 今天向大家介绍的CVPR 2020 的文章出自华中科技大学白翔老师组,特别要提醒,文中有 ...

  • 【图像上色小综述】生成对抗网络的GAN法

    获取有趣.好玩的前沿干货! 超100篇!CVPR 2020最全GAN论文梳理汇总! 0,图像上色及其分类 图像上色一般分为两种:无引导上色和有引导上色. 顾名思义,无引导指的是全交由算法进行自动化上色 ...

  • GAN的综述

    GAN的综述

  • 【技术综述】深度学习中的数据增强方法都有哪些?

    很多实际的项目,我们都难以有充足的数据来完成任务,要保证完美的完成任务,有两件事情需要做好:(1)寻找更多的数据.(2)充分利用已有的数据进行数据增强,今天就来说说数据增强. 作者 | 言有三 编辑 ...

  • [综述类] 一文道尽深度学习中的数据增强方法(上)

    00 什么是数据增强 在深度学习项目中,寻找数据花费了相当多的时间.但在很多实际的项目中,我们难以找到充足的数据来完成任务. 为了要保证完美地完成项目,有两件事情需要做好: 1.寻找更多的数据: 2. ...

  • 【阿里云课程】详解深度学习优化:数据增强

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第6课中一节,介绍如下: 数据增强 本节课内容为:数据增强,讲述数据增强的重要性,基于几何和颜色变换的增强操作,以及自动学习 ...

  • 如何系统性掌握深度学习中的数据使用

    数据是深度学习系统的输入,对深度学习的发展起着至关重要的作用,但是又容易被很多人忽视,尤其是缺少实战的理论派. 今天便来谈谈这个问题,同时介绍一个好的学习社区供大家讨论与提升. 文/编辑 | 言有三 ...

  • 【AI白身境】深度学习中的数据可视化

    今天是新专栏<AI白身境>的第八篇,所谓白身,就是什么都不会,还没有进入角色. 上一节我们已经讲述了如何用爬虫爬取数据,那爬取完数据之后就应该是进行处理了,一个很常用的手段是数据可视化. ...

  • 综述:深度学习中的池化技术

    作者丨仿佛若有光 来源丨CV技术指南 编辑丨极市平台 极市导读 本文对池化技术进行了一个总结,简述了池化的作用与原理并解答了池化在使用时常见的问题,作者还对主要的几种池化操作分类进行了介绍. > ...

  • 深度学习中的知识蒸馏技术(下)

    本文概览: 写在前面: 这是一篇介绍知识蒸馏在推荐系统中应用的文章,关于知识蒸馏理论基础的详细介绍,请看上篇文章: 1. 背景介绍 1.1 简述推荐系统架构 如果从传统角度来看实际的工业推荐系统,粗略 ...

  • 深度学习中的知识蒸馏技术

    本文概览: 1. 知识蒸馏介绍 1.1 什么是知识蒸馏? 在化学中,蒸馏是一种有效的分离不同沸点组分的方法,大致步骤是先升温使低沸点的组分汽化,然后降温冷凝,达到分离出目标物质的目的.化学蒸馏条件:( ...

  • 深度学习中的知识蒸馏技术(上)

    本文概览: 1. 知识蒸馏介绍 1.1 什么是知识蒸馏? 在化学中,蒸馏是一种有效的分离不同沸点组分的方法,大致步骤是先升温使低沸点的组分汽化,然后降温冷凝,达到分离出目标物质的目的.化学蒸馏条件:( ...