Logo
Section 1 / 7

使用数据增强训练神经网络

学习在训练神经网络时如何增强数据集。

导入

使用数据增强训练神经网络

学习在训练神经网络时如何增强数据集。

数据增强是训练机器学习模型的重要环节。本课程将介绍 PyTorch 图像模型框架中的所有数据增强类。

数据增强 是机器学习中常用的技术,用于扩充数据集。通常,我们会以多种方式对原始样本进行修改,从而生成经过调整的副本。

让我们通过以下图示来进一步理解数据增强:

...
通过将原始样本与修改后的样本结合来创建增强的数据集

数据增强的优势

训练机器学习模型需要大量带标签的数据,而收集和标注数据集耗时较长。整个过程可能繁琐且成本高昂。

因此,大多数开发者在训练模型前会应用数据增强。总体而言,数据增强具有以下优势:

  • 人为增加小规模数据集的训练数据量。
  • 在训练数据中引入多样化噪声,防止过拟合。
  • 提升模型在真实场景输入下的表现能力。

注意:过拟合是指机器学习模型在训练数据上表现极佳,但在测试数据上表现不佳,因此在未见过的数据上效果不好。

图像变换

我们可以通过应用简单的变换为图像分类模型生成合成数据。最常见的图像变换包括:

  • 翻转(垂直和水平)
  • 坐标轴平移(x 或 y 方向)
  • 填充(Padding)
  • 旋转
  • 裁剪(Crop)
  • 亮度和对比度调整
  • 灰度化(Grayscale)
  • 随机噪声
  • 模糊(Blur)

下面我们详细回顾一些更常见的图像变换。

灰度化(Grayscale)

灰度化 将彩色图像转换为不同深浅的灰色图像。黑色表示对比度最弱,白色表示最强。
下图展示了彩色图像与灰度图像之间的差异:

...
通过将原图转换为灰度图来生成新数据

亮度与对比度(Brightness and contrast)

亮度与对比度 属于图像色彩校正的一部分。亮度用于调亮或调暗图像,而对比度则增强或减弱图像中的细节。
如下图所示,对比了正常图像与提高亮度后的图像:

...
通过调整图像的亮度或对比度来生成新数据

模糊(Blur)

模糊 使图像看起来失焦。我们可以对图像的特定区域进行模糊处理。最常见的模糊技术包括:

  • 高斯模糊(Gaussian blur)
  • 均值模糊(Average blur)
  • 中值模糊(Median blur)
  • 运动模糊(Motion blur)

下图展示了一张正常图像与其模糊版本的对比:

...
通过对图像进行模糊处理来生成新数据

裁剪(Crop)

裁剪是指去除图像中不需要的边缘区域。尽管该方法简单,但有助于生成有用的合成训练数据。

下图展示了原始图像与其裁剪后版本的区别:

...
通过对原图进行裁剪来生成新数据

翻转(Flip)

图像翻转有两种方式:

  • 垂直翻转
  • 水平翻转

算法沿 x 轴或 y 轴对图像进行镜像反射。下图展示了水平翻转和垂直翻转的最终效果:

...
通过垂直或水平翻转图像来生成新数据

数据增强是图像分类项目中不可或缺的一部分。图像变换有助于扩充我们的数据集,从而使模型能够更好地泛化真实世界的数据。

部署

Mixup 和 Cutmix