深度学习(十四):数据增强Data Augmentation

这是一系列深度学习的介绍,本文不会涉及公式推导,主要是一些算法思想的随笔记录。
适用人群:深度学习初学者,转AI的开发人员。
编程语言:Python
参考资料:吴恩达老师的深度学习系列视频
吴恩达老师深度学习笔记整理
深度学习500问
唐宇迪深度学习入门视频课程
笔记下载:深度学习个人笔记完整版

为什么要使用数据增强

数据增强,也称数据扩充,没有大量数据情况下,如何获取更多数据。数据增强是指通过对现有样本的变换来获取更多数据的技巧。

当训练集不够大,或者某一类数据较少,或者为了防止过拟合,让模型更加鲁棒性,数据增强都是一个不错的选择。

数据增强常用于数据预处理阶段。

数据增强的方法

参考:data augmentation 总结

基于数字图像,常用的数据增强技巧如下:

  1. Color Jittering:对颜色的数据增强:图像亮度、饱和度、对比度变化(此处对色彩抖动的理解不知是否得当);
  2. PCA Jittering:首先按照RGB三个颜色通道计算均值和标准差,再在整个训练集上计算协方差矩阵,进行特征分解,得到特征向量和特征值,用来做PCA Jittering;
  3. Random Scale:对图像按照指定的尺度因子, 进行放大或缩小; 或者参照SIFT特征提取思想, 利用指定的尺度因子对图像滤波构造尺度空间. 改变图像内容的大小或模糊程度;
  4. Random Crop:采用随机图像差值方式,对图像进行裁剪、缩放;包括Scale Jittering方法(VGG及ResNet模型使用)或者尺度和长宽比增强变换;
  5. Horizontal/Vertical Flip:水平/垂直翻转
  6. Shift:在图像平面上对图像以一定方式进行平移; 可以采用随机或人为定义的方式指定平移范围和平移步长, 沿水平或竖直方向进行平移. 改变图像内容的位置;
  7. Rotation/Reflection旋转/仿射变换;
  8. Noise:高斯噪声、模糊处理;
  9. Random mix/combinations of 以下的混合操作
    a.translation 平移,只涉及沿X或Y方向(或两者)移动图像
    b.rotation 旋转(角度变换)
    c.stretching 拉伸
    d.shearing 修剪
    e.lens distortions 透镜畸变/镜头扭曲,…
  10. Label shuffle:类别不平衡数据的增广,参见海康威视ILSVRC2016的report;另外,文中提出了一种Supervised Data Augmentation方法,有兴趣的朋友的可以动手实验下。
  11. GAN

你可能感兴趣的:(深度学习,计算机视觉,深度学习,计算机视觉,数据增强,图像处理)