数据增强(尚未完成)

1. 为什么需要数据增强?

(1)数据增强是扩充数据样本规模的一种有效的方法,深度学习是一种基于大数据的方法,数据的规模越大、质量越高就越好,模型也能够拥有更好的泛化能力。然而在实际采集数据的时候,往往很难覆盖全部的场景,比如光照条件,那么在训练模型的时候,就需要加入光照方面的数据增强;

(2)即使拥有大量数据,也应该进行数据增强,这会有助于增加数据集中相关数据的数量。通过增强数据集,可以防止神经网络学习到不想关的模式,避免了过拟合,根本上提升了整体性能。

假设数据集有两个类别,如下图,左边是品牌A(福特),右边是品牌B(雪佛兰),并且已经完成了模型的训练。

输入下面这个图像:

神经网络会认为它是品牌B的车。因为这是大多数机器学习算法就是这么工作的。它会寻找区分一个类和另一个类的最明显特征。在这个例子中 ,这个特征就是所有品牌A的汽车朝向左边,所有品牌B的汽车朝向右边。 由此可以得出:神经网络的好坏也取决于输入的数据。如何避免?最简单的解决办法就是为数据集中的每种类别都添加朝向不同方向的汽车照片。更好的办法是,只需要将现有的数据集中的照片水平翻转,使汽车朝向另一侧。

2. 数据增强的作用

(1)增加训练的数据量,提高模型的泛化能力;

(2)增加数据噪声,提升模型的鲁棒性。

3. 数据增强的分类

(1)离线增强:直接对数据集进行处理,数据的数目会变成增强因子 \(\times\) 原数据集的数目 ,这种方法常常用于数据集很小的时候 ;

(2)在线增强:这种增强的方法用于,获得 batch 数据之后,然后对这个 batch 的数据进行增强,如旋转、平移、翻折等相应的变化,由于有些数据集不能接受线性级别的增长,这种方法常用于较大的数据集,很多机器学习框架已经支持了这种数据增强方式,并且可以使用 GPU 优化计算。

4. 常用数据增强技术(离线增强)

空间几何变换:翻转,旋转,缩放,随机裁剪,平移

像素颜色变换类:噪声(高斯,椒盐),CoarseDropout,SimplexNoiseAlpha,FrequencyNoiseAlpha

模糊类:高斯模糊

HSV对比度变换:

RGB颜色扰动:

随机擦除:

超像素法:

边界检测:

锐化和浮雕:

多样本合成:SMOTE、SamplePairing、Mixup

注意:引入数据增强并不一定会带来模型性能上的提升,尤其是在数据增强的时候,需要考虑如何设置恰当的增强比例因子。实际上,只有当我们增强后的样本,理论上和我们的实际业务场景最接近的时候,才会达到性能最好。也就是所谓的训练集和测试集样本分布一致的时候。 因此,在进行增强的时候不要盲目增强,需要看一下看数据集增强之后的效果如何。

如何查看数据增强后的效果?对于离线数据,保存图片以后就能够看到,但是对于在线的数据,则需要借助工具了。这一点tensorflow做的就很好,可以直接使用tensorboard来进行实时训练图片查看。

原文地址:https://www.cnblogs.com/xxxxxxxxx/p/10989005.html

时间: 2024-10-08 02:01:53

数据增强(尚未完成)的相关文章

对于机器学习中,数据增强

众所周知,数据对机器学习来说是那么的重要,但是我们通常因为各种原因得不到 理想的数据量,这时候我们就想到进行数据增强.比如添加噪声,左右镜像,随机crop 一部分等,但是有一点要注意的,就是要记住我们要机器学习的是什么特征,比如说人脸, 眼睛,嘴巴等,这时候添加噪声就不能改变这些特征.一句话:喂给机器什么数据,机器 就学什么数据.(但注意,并不是你觉得是这样,机器就真的这样,因为,机器可能通过 其他方式进行学习,所以数据量越大,机器可选择的路越少,就越有可能按照你的想法学 习对应的特征.数据量越

深度学习之图像的数据增强

在图像的深度学习中,为了丰富图像训练集,更好的提取图像特征,泛化模型(防止模型过拟合),一般都会对数据图像进行数据增强, 数据增强,常用的方式,就是旋转图像,剪切图像,改变图像色差,扭曲图像特征,改变图像尺寸大小,增强图像噪音(一般使用高斯噪音,盐椒噪音)等. 但是需要注意,不要加入其他图像轮廓的噪音. 对于常用的图像的数据增强的实现,如下: 1 # -*- coding:utf-8 -*- 2 """数据增强 3 1. 翻转变换 flip 4 2. 随机修剪 random

HLJU 1046: 钓鱼(数据增强版) (贪心+优化)

1046: 钓鱼(数据增强版) Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 11  Solved: 3 [Submit][Status][Web Board] Description 在一条水平路边,有n个钓鱼湖.从右到左编号为1.2.3--.n. 佳佳有H个小时的空余时间.他希望用这些时间尽可能多的钓鱼.他从湖1出发,向右走,有选择的在一些湖边停留一定时间钓鱼.最后在某一湖边结束钓鱼. 佳佳測出从第i个湖到第i+1个湖须要走Ti分钟的路,还測

数据增强利器--Augmentor

最近遇到数据样本数目不足的问题,自己写的增强工具生成数目还是不够,终于在网上找到一个数据增强工具包,足够高级,足够傻瓜.想要多少就有多少!再也不怕数据不够了! 简介 Augmentor是一个Python包,旨在帮助机器学习任务的图像数据人工生成和数据增强.它主要是一种数据增强工具,但也将包含基本的图像预处理功能. 特色 Augmentor是用于图像增强的软件包,重点在于提供通常用于生成机器学习问题的图像数据的操作. Augmentor包含许多用于标准图像处理功能的类,例如Rotate 旋转类.C

数据增强

Data Augmentation 水平翻转(horizontal flips),镜像操作,是数据增强的常用操作. 原文地址:https://www.cnblogs.com/zzx1905/p/9933969.html

深度学习中的数据增强技术(二)

上篇文章介绍了深度学习中数据增强技术的应用,及部分TensorFlow实现代码.废话不说了,这篇接着介绍: TensorFlow实现图片数据增强 注:类似的方法放在了代码中注释的部分,实际调试时可以分别打开运行 ③图像色彩调整 import matplotlib.pyplot as plt import tensorflow as tf # 读取图片 image_data = tf.gfile.FastGFile("data/dog3.jpg", 'br').read() # 4中调整

Python库 - Albumentations 图片数据增强库

Python图像处理库 - Albumentations,可用于深度学习中网络训练时的图片数据增强. Albumentations 图像数据增强库特点: 基于高度优化的 OpenCV 库实现图像快速数据增强. 针对不同图像任务,如分割,检测等,超级简单的 API 接口. 易于个性化定制. 易于添加到其它框架,比如 PyTorch. 1. Albumentations 的 pip 安装 sudo pip install albumentations # 或 sudo pip install -U

keras训练函数fit和fit_generator对比,图像生成器ImageDataGenerator数据增强

1. [深度学习] Keras 如何使用fit和fit_generator https://blog.csdn.net/zwqjoy/article/details/88356094 ps:解决样本数量不均衡:fit_generator中设置参数class_weight = 'auto' 2. 实现批量数据增强 | keras ImageDataGenerator使用 https://www.jianshu.com/p/3da7ffb5d950 ps:数据量不足时一定要加上数据增强 原文地址:h

StartDT AI Lab | 数据增强技术如何实现场景落地与业务增值?

有人说,「深度学习“等于”深度卷积神经网络算法模型+大规模数据+云端分布式算力」.也有人说,「能够在业内叱咤风云的AI都曾“身经百战”,经历过无数次的训练与试错」.以上都需要海量数据做依托,对于那些数据量匮乏的领域,就衍生出了数据增强技术.即,根据一个原始数据,稍作改动,变成一个对于AI来说的全新的数据. 01 为什么做数据增强? 数据规模的重要性到底怎样呢?可以说,深度学习的火热和蓬勃发展,直接源于普林斯顿大学教授李飞飞及她所带领的团队创作的一个包含百万级图片的数据集ImageNet.工业级人