-
解决该问题的一种方法是:创建一些虚拟的数据用于训练。
数据集增强仅仅用于模型的训练,而不是用于模型的预测。即:不能对测试集、验证集执行数据集增强。
当比较机器学习算法基准测试的结果时,必须考虑是否采用了数据集增强。
通常情况下,人工设计的数据集增强方案可以大大减少模型的泛化误差。当两个模型的泛化性能比较时,应该确保这两个模型使用同一套人工设计的数据集增强方案。
注意数据集增强和预处理的区别:数据集增强会产生更多的输入数据,而数据预处理产生的输入数据数量不变。
对于某些任务来说,创建虚拟数据非常困难。如:在密度估计任务中,除非预先知道了密度函数,否则无法产生新的虚拟数据。
对于分类问题来说,创建虚拟数据非常简单。对于一个分类器,它将高维的输入 映射到类别 。这意味着这种映射规则是不随坐标系的改变而改变的。因此可以通过线性变换,将训练集中的 变换为 从而产生了新的数据 。
在使用线性变换执行数据集增强时需要注意:
-
如:字符识别任务中, 以及的图像, 不能执行水平翻转变换和旋转 180 度变换。
某些线性变换难以执行。
如:平面外的绕轴旋转(类似于翻页)难以通过简单的几何运算在输入图片上实现。
-
3.2 输入噪声注入
在神经网络的输入层注入噪声也可以视作数据增强的一种形式。如:在图像识别任务中,对训练图像注入高斯噪声。
事实上输入噪声注入也可以用于无监督学习,如:降噪自动编码器。
通常一个训练好的神经网络对噪声鲁棒性较差,改善其噪声鲁棒性的常用方法是:简单地将随机噪声施加到输入上,再进行训练。
表明:当仔细调整噪声的幅度之后,该方法非常高效。
-
本章后面的正则化策略可以被看作是通过对隐单元的输入乘上噪声。