美文网首页深度学习
使用数据增强

使用数据增强

作者: 庵下桃花仙 | 来源:发表于2019-04-16 22:57 被阅读0次
训练精度和验证精度.png 训练损失和验证损失.png

发生了过拟合。训练精度随着时间线性增加,直到接近 100%,而验证精度则停留在 70%~72%。验证损失仅在 5 轮后就达到最小值,然后保持不变,而训练损失则一直线性下降,直到接近于 0。

不使用前面介绍的降低过拟合技巧,使用一种针对于计算机视觉领域的新方法,在用深度学习模型处理图像时几乎都会用到这种方法,它就是数据增强(data augmentation)。

使用数据增强

从现有的训练样本中生成更多的训练数据,其方法是利用多种能够生成可信图像的随机变换来增加(augment)样本。其目标是,模型在训练时不会两次查看完全相同的图像。这让模型能够观察到数据的更多内容,从而具有更好的泛化能力。

利用 ImageDataGenerator 来设置数据增强
datagen = ImageDataGenerator(
    rotation_range=40, # 角度值(0~180范围内),表示图像随机旋转的角度范围
    width_shift_range=0.2, # 水平方向上平移的范围(相对于总宽度的比例)
    height_shift_range=0.2, # 垂直方向上平移的范围(相对于总高度的比例)
    shear_range=0.2, # 随机错切变换的角度
    zoom_range=0.2, # 图像随机缩放的范围
    horizontal_flip=True, # 随机将图像水平翻转
    fill_mode='nearest' # 用于填充新创建像素的方法,这些新像素可能来自于旋转或宽度/高度平移
)
  • rotation_range 是角度值(在 0~180 范围内),表示图像随机旋转的角度范围。
  • width_shift 和 height_shift 是图像在水平或垂直方向上平移的范围(相对于总宽度或总高度的比例)。
  • shear_range 是随机错切变换的角度。
  • zoom_range 是图像随机缩放的范围。
  • horizontal_flip 是随机将一半图像水平翻转。如果没有水平不对称的假设(比如真实世界的图像),这种做法是有意义的。
  • fill_mode是用于填充新创建像素的方法,这些新像素可能来自于旋转或宽度/高度平移。我们来看一下增强后的图像


    通过随机数据增强生成的猫图像.PNG

相关文章

  • 使用数据增强

    发生了过拟合。训练精度随着时间线性增加,直到接近 100%,而验证精度则停留在 70%~72%。验证损失仅在 5 ...

  • 使用数据增强

    添加 Dropout 层,进一步降低过拟合。 进一步使用正则化以及调节网络参数(卷积层过滤器个数或网络的层数),可...

  • 数据增强:padding

    数据增强,使用padding进行数据增可以有效避免数据失真

  • 数据增强库imgaug使用

    项目主页imgaug是一个用于机器学习实验中图像增强的库。它支持多种增强技术,允许轻松组合这些技术,具有简单但强大...

  • RandAug

    主要结论 发现数据增强的效果与模型和数据集size有关。这说明传统上的使用小的代理任务单独搜索得到数据增强策略可能...

  • 数据分类提高精度的一些总结

    在总体技术方面很多同学会做下面的一些增强: 数据增强,在测试的时候多使用几次稍微弱一点的增强然后取平均。 使用多个...

  • 深度学习 分别利用PyTorch 与numpy实现数据增强

    PyTorch有自带的数据增强包在torchvision.transforms中, 可以使用 实现张量空间的数据增...

  • 猫狗大战-是否加数据增强(augmentation)的区别

    没有带数据增强 加了数据增强之后

  • 2019-06-11 数据预处理

    数据增强:数据有限时如何使用深度学习 ? (续) 深度神经网络中的提示/技巧 sklearn-数据预处理

  • NLP中数据增强的综述大全

    与计算机视觉中使用图像进行数据增强不同,NLP中文本数据增强是非常罕见的。这是因为图像的一些简单操作,如将图像旋转...

网友评论

    本文标题:使用数据增强

    本文链接:https://www.haomeiwen.com/subject/wthwwqtx.html