卷积神经网络CNN实战7

数据增强(Data augmentation)

增加训练数据,则能够提升算法的准确率,因为这样可以避免过拟合,而避免了过拟合
你就可以增大你的网络结构了。当训练数据有限的时候,可以通过一些变换来从已有的训
练数据集中生成一些新的数据,来扩大训练数据。数据增强的方法有:
1)水平翻转(旋转)
卷积神经网络CNN实战7_第1张图片
2)随机裁剪(crop采样)
如原始图像大小为256256,随机裁剪出一些图像224224的图像。如下图,红色方框内为随机裁剪出的224*224的图片。 AlexNet 训练时,对左上、右上、左下、右下、中间做了5次裁剪,然后翻转,得到一些剪切图片。防止大网络过拟合(under ubstantial overfitting)。

卷积神经网络CNN实战7_第2张图片
3)fancy PCA
在训练集像素值的RGB颜色空间进行PCA, 得到RGB空间的3个主方向向量,3个特征值, p1,p2, p3, λ1, λ2, λ3. 对每幅图像的每个像素加上如下的变化:
卷积神经网络CNN实战7_第3张图片
4)样本不均衡(解决方案:增加小众类别的图像数据)
样本不均衡即有些类别图像特别多,有些特别少。类别不平衡数据的处理:Label shuffle。
卷积神经网络CNN实战7_第4张图片

5)其他
平移变换;
旋转/仿射变换;
高斯噪声、模糊处理
对颜色的数据增强:图像亮度、饱和度、对比度变化。

6)训练和测试要协调
在训练的时候,我们通常都需要做数据增强,在测试的时候,我们通常很少去做数据增强。这其中似乎有些不协调,因为你训练和测试之间有些不一致。实验发现,训练的最后几个迭代,移除数据增强,和传统一样测试,可以提升一点性能。
如果训练的时候一直使用尺度和长宽比增强数据增强,在测试的时候也同样做这个变化,随机取32个裁剪图片来测试,也可以在最后的模型上提升一点性能。就是多尺度的训练,多尺度的测试。

你可能感兴趣的:(深度学习,人工智能,CNN,神经网络,算法,卷积,深度学习)