深度学习数据增强

进行数据增强的必要性

通过增强数据集,可以防止神经网络学习到不相关的模式,根本上提升整体性能。

某种程度上,深度学习的训练过程,就是生成一个从输入到输出的映射关系。而深度学习生成的这种映射,会含有大量的参数,当前主流的模型含有几十万到几百万个参数,而训练过程,就是不断修正这些参数的过程。在这个过程中,如果数据集的多样性不够,模型会把一些不想关的特征标记为输入数据的特征。

以图片识别举个简单的例子,假设你的任务是利用放置在路边的监控摄像头采集到的车辆图片作为输入,模型的目标是识别车辆的型号。而如果恰好你的数据都是面向车辆行驶的一侧放置的摄像头采集到的,即你的数据集中,大量车辆是略微向左侧倾斜的。如果恰好使用这个数据集直接训练,不可避免的,模型会认为面向左侧也是一种特征。这样训练出来的模型可能对其他角度采集的图片识别率欠佳。

通过诸如图片翻转之类的数据增强方式,可以让模型不再把不需要的特征作为识别特征,优化模型映射的准确率。

如何进行数据增强

常见的数据增强方式

  • 翻转

可以把图片沿着水平方向或者垂直方向翻转。

  • 旋转

可以把图片旋转一定的角度,但是这个方法会导致图片的部分区域缺少,可能需要使用插值方式补齐。

  • 缩放

可以把图片放大或者缩小。

  • 裁剪

可以裁剪掉不关心的区域

  • 平移

可以沿着某个方向平移一定距离,同样的,这个方法需要使用其他方法补齐缺失区域。

  • 高斯噪声

可以直接向着图片添加高斯噪声。

高级增强方式

还有一些高级的数据增强方式,比如条件型生成对抗网络,插值等等,在此不做深究。

猜你喜欢

转载自blog.csdn.net/weixin_42749767/article/details/82992840