数据增强是一种与众不同的创建新“数据”的方法。它有两方面的优势,第一是能够从有限的数据中生成“更多的数据”,第二,它避免了过度拟合。
处理有限的数据有其自身的挑战,只有当增强技术加强了当前的数据集时,使用数据增强才能产生积极的效果。我们需要思考的是,训练一个网络用来“学习”颠倒后的地标是否值得?
然而,如果你的数据集包含处方药的图像,那么有很多方向是有意义的,因为理论上这类图像的方向是不固定的。
有很多因素会影响结果,例如数据集的大小、增强技术的效果、批处理大小、图像大小和训练参数等等。本文的目的是说明数据增强对总体精度的影响。后文的推断都是基于以下假设:
1.共1040幅火车图像,选其中208幅进行测试
2.实验采用Fastai方法
3.训练采用莱斯利·史密斯单周期法,即短周期内进行高速学习。 其中最大动量为0.95,最小动量为0.85,重量衰减为1e-5。目的是在最快的时间内取得最好的结果,以便能够进行多种不同技术的实验(以下结果并不显示所有的结果)。
4.总数有82个不同的标签,比如说形状、颜色、标记等等。例如胶囊可以有以下标签(胶囊)、(蓝色)、(TEVA)、(多色)、(白色)、(胶囊形状)、(25毫克)等。
5.作者没有上传的10幅图像测试了对增强技术的推测,并计算了准确度和误差率。这是通过检查正确分类标签的数量和不准确分类标签的数量来完成的。大多数论文都关注正确的,但作者还想调查错误标签的数量。
6.结果被分解为1)N:预测的正确标签总数,2)准确性:(n/82)*100,其中82是标签总数,3)E:预测的错误标签总数和4)错误:(e/N)*100
使用Random Rotate(随机旋转):
变量:以57°的角度随机旋转
准确标签: 55
准确性: 67%
错误标签: 4
错误: 7%
使用Dihedral(二面体):
变量:转动90度和/或翻转。
准确标签: 51
准确性: 62%
错误标签: 9
错误: 18%
使用RandomLighting:
变量:设置参数b =平衡和c =对比度随机调整。
准确标签: 57
准确性: 70%
错误标签: 12
错误: 21%
使用RandomLighting和RandomDihedral:
准确标签: 52
准确性: 63%
错误标签: 13
错误: 25%
使用RandomDihedral和RandomRotate的组合:
变量:随机二面体与随机旋转27度角
准确标签: 56
准确性: 68%
错误标签: 13
错误: 23%
使用RandomZoomRotate:
变量:3个参数
deg =最大旋转角度,zoom =最大缩放比例,stretch =最大拉伸比例
准确标签: 62
准确性: 76%
错误标签: 8
错误: 13%
使用Padding(填充)
变量:2个参数
pad =顶部,底部,左侧和右侧的填充大小,mode = cv2填充模式的类型
准确标签: 54
准确性: 66%
错误标签: 2
错误: 4%
使用Cutout(剪贴)
变量:2个参数
n_holes和长度,以便在随机位置图像中切出尺寸长度为n_holes的n个孔。这些孔可能重叠。
准确标签: 41
准确性: 50%
错误标签: 9
错误: 22%
结果:
这个项目的目的是要找到最高的精确度和在最短时间内错误次数最少(每10次平均训练时间约为3分钟),我们可以看到,通过使用各种数据增强技术,加上单周期训练方法,可以更好的了解到不同数据增强技术适合什么样的数据集。
结果表明[RandomZoomRotate]准确标签更多,[Padding(50)]错误标签最少。同理,[Cutout]选择的准确标签最少,[RandomLighting + Dihedral]的错误标签最多。
如果我们将做出正确选择最多的[RandomZoomRotate]和做出错误选择最少的[Padding(50)]结合在一起,会怎么样呢?
变动量:随机旋转、缩放与填充
准确标签: 60
准确性: 70%
错误标签: 6
错误: 10%
最后总结
毫无疑问,[RandomRotateZoom]和[AddPadd](即Padding(50))的组合效果最好。
数据增强对提高准确性,减少误差方面有着举足轻重的作用。结果表明,并不是所有的增强都能产生良好的效果,因此,对不同的数据增强技术进行初步实验可以帮助我们更好的选择数据增强技术。