用GANs来做数据增强

适用于只有很少样本的情况。

即使是不完美的合成数据也可以提高分类器的性能。

生成对抗网络(Generative adversarial networks,简称GANs)由Ian Goodfellow于2014年推出,近年来成为机器学习研究中非常活跃的话题。GAN是一种无监督生成模型,它隐含地学习底层分布。在GAN框架中,学习过程是两个网络之间的极大极小博弈,一个生成器,生成给定随机噪声向量的合成数据,一个鉴别器,区分真实数据和生成器的合成数据。

生成对抗网络

逼真的生成图像(BigGAN, 2018)

GANs在许多领域的应用都取得了令人瞩目的成果,尤其是在计算机视觉领域。在这篇文章中,我们将探索GANs的一个不那么华丽但很有影响力的用例,即在监督学习中提高分类器性能的数据增强。

数据增强

获得更大的数据集是提高机器学习算法性能最可靠的方法之一 —— 用Andrew Ng的一句话来说,“数据量驱动机器学习过程”。在某些情况下,添加生成的或合成的数据(称为数据增强的过程)也可以提高性能。

最常见的方法是对现有数据应用一些转换。在图像分类的例子中,我们知道,例如,在移动或翻转一个猫的图像后,它仍然是一只猫的图像。因此,图像分类数据集通常会增加移位、翻转、旋转或颜色变化,以获得可能的最佳结果。

传统的图像数据增强

这里有一个问题:我们可以使用GAN来生成合成数据来改进分类器吗?在2019年4月的一篇论文:https://arxiv.org/pdf/1904.09135.pdf中,作者为一个二分类问题(癌症检测)生成了完全合成的数据。引人注目的是,他们展示了决策树分类器在这个完全合成的数据集上比在原始小数据集上训练时表现得更好。

然而,这似乎是一个例外情况,这种直接的数据增强方法在非常小的数据集上有更好的工作机会。在2017年的一篇论文中,使用深度学习的图像分类中的数据增强的有效性,作者发现使用GANs直接的数据增强不如其他增强策略有效。

少样本背景下的数据增强

因此,让我们修改一下我们的问题:如果我们有一个非常小的类作为一个更大数据集的子集,比如图像数据集中的一个罕见的狗品种,会怎么样?或者,如果我们正在训练一个欺诈分类器,但我们只有几个已知的欺诈例子,和许多非欺诈的例子,那该怎么办?这种情况被称为少样本学习,这被证明是使用GANs进行数据增强的一个更有前途的用例。但要解决这个问题,我们需要在GAN模型中包含类信息。

我们可以使用conditional GAN来实现这一点,在这个GAN中,类信息被提供给生成器。现在我们来讨论过去两年里的三种conditional GANs变体。

ACGAN: Cooperate on classification

conditional GAN的一个变体,称为ACGAN(辅助分类器GAN),除了区分真实数据和合成数据之外,还让鉴别器执行分类,损失函数包括用于分类的二元交叉熵项。除了学习生成总体真实的样本,这样还鼓励生成器学习不同类别样本的表示。这本质上是多任务学习:虽然生成器和鉴别器在生成的图像是真还是假上“竞争”,但他们在正确分类上“合作”。

DAGAN: learn a shared family of transformations for data augmentation

另一种变体叫做DAGAN (Data augmented GAN),它学习如何使用真实图像的低维表示来生成合成图像。在DAGAN框架中,生成器不是将一个类和噪声向量作为输入,而是本质上是一个自动编码器:它将现有的图像进行编码,添加噪声,然后解码。因此,解码器学习了大量的数据增强转换。

DAGAN生成器

DAGAN鉴别器一方面区分图像和变换后的版本,另一方面区分来自同一类的一对图像。因此,鉴别器激励解码器学习变换,这些变换不会改变类,但在变换后的图像需要与原始图像不太相似这一点上是不容易做到的。然而,DAGAN的一个关键假设是,相同的变换适用于所有类别 —— 这在计算机视觉环境中是合理的,但在欺诈或异常检测中就不那么合理了。

DAGAN的判别器

BAGAN: learning to balance imbalanced data

在另一个conditional  GAN的变体,称为BAGAN,自动编码器也用于生成器。自动编码器被预训练来学习整个数据集的分布。然后,对编码后的图像进行多元正态分布拟合。现在你可以从这些多元正态分布中采样,并将conditional 隐向量传递给生成器。与DAGAN不同,BAGAN为你提供了一个成熟的条件生成器,而不是对现有数据进行转换。它也可能比ACGAN在少量的背景下更好,因为VAE在拟合每个类的正态分布之前有学习整体分布的能力。

BAGAN框架

思考

尽管使用GANs进行简单的数据增强有时可以提高分类器的性能,特别是在非常小或有限的数据集的情况下,但使用GANs进行增强的最有希望的情况似乎包括迁移学习或少量学习。随着研究不断提高GAN训练的稳定性和可靠性,将GAN用于数据增强的快速进展将不足为奇。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/27303.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于word文档,使用Python输出关键词和词频,并将关键词的词性也标注出来

点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 移船相近邀相见,添酒回灯重开宴。 大家好,我是Python进阶者。 一、前言 前几天在有个粉丝问了个问题,大概意思是这样…

一阶电路和二阶电路的时域分析(1)——“电路分析”

小雅兰期末加油冲冲冲!!! 动态电路的方程及其初始条件 动态电路,物理学名词,是指含有储能元件L、C的电路,动态电路方程的阶数通常等于电路中动态元件的个数。 动态电路是指含有储能元件的电路。当动态电路状…

【Java】Java核心要点总结:58

文章目录 1. java中 怎么确保一个集合不能被修改2. 队列和栈是什么 有什么区别3. Java8开始的ConcurrentHashMap为什么舍弃了分段锁4. ConcurrentHashMap 和 Hashtable有什么区别5. ReadWriteLock和StampeLock 1. java中 怎么确保一个集合不能被修改 Java 中可以使用 Collectio…

计算机网络(数据链路层,复习自用)

数据链路层 数据链路层功能概述封装成帧与透明传输差错编码(检错编码)差错编码(纠错编码)流量控制与可靠传输机制停止-等待协议后退N帧协议(GBN)选择重传协议(Selective Repeat) 信道…

并行事务会引发的三个问题

并行事务是指同时运行多个事务,每个事务独立地执行,并且不会相互影响。在数据库管理系统中,当多个用户同时对同一个数据集进行读取或者写入的时候,使用并行事务可以提高系统的吞吐量和响应时间。同时,由于并行事务可以…

【MySQL 数据库】7、SQL 优化

目录 一、插入数据优化(1) insert 语句① 批量插入数据② 手动控制事务③ 主键顺序插入,性能要高于乱序插入 (2) load 大批量插入数据【☆❀ 二、主键优化(1) 数据组织形式(2) 页分裂(3) 页合并(4) 主键设计原则 三、orber by 优化四、group by 优化五、limit 优化&…

基于前推回代法的连续潮流计算研究【IEEE33节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

基于Java+Springboot+Vue的二次元商城网站设计与实现

博主介绍:✌擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案…

YOLO系列理论合集(YOLOv1~v3SPP)

前言:学习自霹雳吧啦Wz YOLOV1 论文思想 1、将一幅图像分成SxS个网格(grid cell),如果某个object的中心落在这个网格中,则这个网格就负责预测这个object。 2、每个网格要预测B个bounding box,每个bounding box除了要预测位置(…

基于NE555芯片的简单延时电路和方波信号发生器

简单延时电路 NE555芯片是一种经典的计时器集成电路,常用于电子设计中的定时和延时功能。下面是一个简单的NE555延时电路的详细分析和讲解: NE555芯片是一个多功能的集成电路,主要由比较器、RS触发器、RS锁存器以及输出驱动器等组成。它可以工…

Mysql进阶【3】论述Mysql优化

1.通过explain查看sql的详细信息 Mysql的sql优化企业里边主要是对慢sql进行优化,对语句进行优化,对索引进行优化 通过explain查看sql的详细信息,并且分析sql语句存在的问题,比如有没有使用到索引、使用了索引还是慢是不是索引设…

机器学习笔记 - EANet 外部注意论文简读及代码实现

一、论文简述 论文作者提出了一种新的轻量级注意力机制,称之为外部注意力。如图所示,计算自注意力需要首先通过计算自查询向量和自关键字向量之间的仿射关系来计算注意力图,然后通过用该注意力图加权自值向量来生成新的特征图。外部关注的作用…

智慧加油站解决方案,提高加油区和卸油区的安全性和效率

英码科技智慧加油站解决方案是一个综合应用了AI智能算法的视觉分析方案,旨在提高加油区和卸油区的安全性和效率。 加油区算法: 吸烟检测:通过AI算法分析视频流,检测是否有人在加油区域吸烟,以防止火灾风险。 打电话…

STM32开发——串口通讯(非中断+中断)

目录 1.串口简介 2.非中断接收发送字符 3.中断接收字符 1.串口简介 通过中断的方法接受串口工具发送的字符串,并将其发送回串口工具。 串口发送/接收函数: HAL_UART_Transmit(); 串口发送数据,使用超时管理机制HAL_UART_Receive(); 串口…

案例26:基于Springboot校园社团管理系统开题报告

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

苹果MacOS系统傻瓜式本地部署AI绘画Stable Diffusion教程

Stable Diffusion的部署对小白来说非常麻烦,特别是又不懂技术的人。今天分享两个一键傻瓜式安装包,对小白来说非常有用。下面两个任选一个安装就可以。 一、DiffusionBee 简单介绍 DiffusionBee是基于stable diffusion的一个安装包,有图形…

python文字转语音(pyttsx3+flask)

提示:文章结尾有全部代码 目录 前言一、Flaskpyttsx基本使用Flask导入Flask框架配置基础环境初始Flask代码 pyttsx3库基本使用导入pyttsx3初始化pyttsx3文字转语音运行 二、具体实现1.引入库 总结 前言 本文主要讲解如何用python的pyttsx3库flask框架,手…

有了IP地址,还需要MAC地址嘛?二选一可否?

概要 在计算机网络中,IP地址和MAC地址是两个最基本的概念。IP地址在互联网中是用于标识主机的逻辑地址,而MAC地址则是用于标识网卡的物理地址。虽然它们都是用于标识一个设备的地址,但是它们的作用和使用场景是不同的。 IP地址是在网络层&am…

数据结构之树与二叉树——算法与数据结构入门笔记(五)

本文是算法与数据结构的学习笔记第五篇,将持续更新,欢迎小伙伴们阅读学习。有不懂的或错误的地方,欢迎交流 引言 前面章节介绍的都是线性存储的数据结构,包括数组、链表、栈、队列。本节带大家学习一种非线性存储的数据结构&…

chatgpt赋能python:Python分词:从原理到实践

Python分词:从原理到实践 分词是自然语言处理中的关键步骤之一,它是指将一句话或一段文本分成若干个词语(token)并进行标注。Python作为一种非常流行的编程语言,具备强大的文本处理能力,而分词也是它的强项…
最新文章