导入
使用数据增强训练神经网络
学习在训练神经网络时如何增强数据集。
数据增强是训练机器学习模型的重要环节。本课程将介绍 PyTorch 图像模型框架中的所有数据增强类。
数据增强 是机器学习中常用的技术,用于扩充数据集。通常,我们会以多种方式对原始样本进行修改,从而生成经过调整的副本。
让我们通过以下图示来进一步理解数据增强:
...
通过将原始样本与修改后的样本结合来创建增强的数据集
数据增强的优势
训练机器学习模型需要大量带标签的数据,而收集和标注数据集耗时较长。整个过程可能繁琐且成本高昂。
因此,大多数开发者在训练模型前会应用数据增强。总体而言,数据增强具有以下优势:
- 人为增加小规模数据集的训练数据量。
- 在训练数据中引入多样化噪声,防止过拟合。
- 提升模型在真实场景输入下的表现能力。
注意:过拟合是指机器学习模型在训练数据上表现极佳,但在测试数据上表现不佳,因此在未见过的数据上效果不好。
图像变换
我们可以通过应用简单的变换为图像分类模型生成合成数据。最常见的图像变换包括:
- 翻转(垂直和水平)
- 坐标轴平移(x 或 y 方向)
- 填充(Padding)
- 旋转
- 裁剪(Crop)
- 亮度和对比度调整
- 灰度化(Grayscale)
- 随机噪声
- 模糊(Blur)
下面我们详细回顾一些更常见的图像变换。
灰度化(Grayscale)
灰度化 将彩色图像转换为不同深浅的灰色图像。黑色表示对比度最弱,白色表示最强。
下图展示了彩色图像与灰度图像之间的差异:
...
通过将原图转换为灰度图来生成新数据
亮度与对比度(Brightness and contrast)
亮度与对比度 属于图像色彩校正的一部分。亮度用于调亮或调暗图像,而对比度则增强或减弱图像中的细节。
如下图所示,对比了正常图像与提高亮度后的图像:
...
通过调整图像的亮度或对比度来生成新数据
模糊(Blur)
模糊 使图像看起来失焦。我们可以对图像的特定区域进行模糊处理。最常见的模糊技术包括:
- 高斯模糊(Gaussian blur)
- 均值模糊(Average blur)
- 中值模糊(Median blur)
- 运动模糊(Motion blur)
下图展示了一张正常图像与其模糊版本的对比:
...
通过对图像进行模糊处理来生成新数据
裁剪(Crop)
裁剪是指去除图像中不需要的边缘区域。尽管该方法简单,但有助于生成有用的合成训练数据。
下图展示了原始图像与其裁剪后版本的区别:
...
通过对原图进行裁剪来生成新数据
翻转(Flip)
图像翻转有两种方式:
- 垂直翻转
- 水平翻转
算法沿 x 轴或 y 轴对图像进行镜像反射。下图展示了水平翻转和垂直翻转的最终效果:
...
通过垂直或水平翻转图像来生成新数据
数据增强是图像分类项目中不可或缺的一部分。图像变换有助于扩充我们的数据集,从而使模型能够更好地泛化真实世界的数据。