SamplePairing:针对图像处理领域的高效数据增强方式 | PaperDaily #34

简介:

论文动机

这是 IBM 在 arXiv,2018 年 1 月 9 日新挂的一篇论文,主要研究数据增强。核心思想很简单,小学生都会,求平均值。这是我见到 CNN 领域最简单的一篇论文。 

数据增强是机器学习任务中广泛使用的技术,如图像处理领域,人工标注数据成本昂贵,而 CNN 的训练有需要大量标注数据避免过拟合。像处理领域常用的数据增强技术有旋转、扭曲、添加少量噪音、从原图像裁剪等。

本文提出了一种高效数据增强方式 SamplePairing:从训练集随机抽取的两幅图像叠加合成一个新的样本(像素取平均值),可以使训练集规模从 N 扩增到 N*N没有任何公式,没有任何框架,简单易懂简洁明了,任何 CPU 都能处理。

论文在使用 GoogLeNet,在 ILSVRC 2012 数据集从 top-1 错误率从 33.5% 降低到 29%,在 CIFAR-10 数据集 top-1 错误率从 8.22% 降低到 6.93%。这对训练集有限的任务而言,提高了模型的准确性。

模型介绍

1d1b83cc3a2c299c00ae2ca36af8823d80007688

论文的模型结构 SamplePairing 如上图所示。模型虽然很简单,但是还得消化一下为什么简单有效。 

先说一下实现过程。训练图像 A 是随机的,从训练集随机抓取图像 B,(A 和 B 都是 ILSVRC2012 的图像,分辨率 256x256)两者都经过基本的数据增强(随机翻转,萃取),分辨率变为 224x224,对两幅图像求平均值,但是 label采用的是 A,之后送入 GoogLeNet 模型。因此,SamplePairing 随机从图像集中创建新的图像,而且 label B 未使用。 

图像 A 和 B 在模型中的权重是一致的,即使使用大型网络,训练误差也不能变成 0,训练精度平均不能超过 50%。对于 N 分类器,最大训练精度是 0.5+1/(Nx2)。

尽管 SamplePairing 的训练精度不会很高,当停止 SamplePairing 作为最终微调时的训练,训练精度和验证精度很快改善。

经过微调模型,使用 SamplePairing 训练的网络比未使用 SamplePairing 训练的模型都高很多。论文认为使用 SamplePairing 是一种正则化。 

在 mix 之前有其他数据增强方式,在 CPU 执行,而反向传播的训练过程在 GPU 执行,这样 CPU 和 GPU 并行计算,没有限制增加总的训练时间。 

论文的训练过程如下: 

1. 先不使用 SamplePairing 数据增强训练,而是先使用传统的数据增强训练网络。

2. 完成一个 epoch(ILSVRC)或者 100 个 epoch(其他数据集),加入 SamplePairing 数据增强。

3. 间歇性禁止 SamplePairing。对于 ILSVRC 数据集,为 300,000 个图像启用 SamplePairing,然后为下一个 100,000 个图像禁用它。对于其他数据集,启用 8 个 epoch,在接下来的 2 个 epoch 禁止 SamplePairing。 

4. 在训练损失函数和精度稳定后,禁止 SamplePairing 作为微调。

实验

论文的模型在多个数据集进行验证:ILSVRC 2012,CIFAR-10,CIFAR-100,以及 Street View House Numbers (SVHN) datasets。

以 CIFAR-10 为例,validation 误差一致在波浪形震荡,800epoch 之后才趋于稳定,此时误差才小于不使用 SamplePairing 的模型。 

论文表 1 所示 training error 会增加,而 validation error 会减小,说明正则化效果明显。在 CIFAR 训练集减少样本个数,训练和验证误差相差不大。

文章评价

目前作者论文仅仅在 ILSVRC 2012 验证分类的错误率,其他数据集比如目标检测,语义分割是否有效?有研究能力的同志们赶紧往前冲,这又是一个坑。 

论文给出一种数据增强方式,也用实验验证确实有效,但是为什么有效?

个人认为相当于随机引入噪声,在训练样本中人为引入误导性的训练样本。 如果不是 IBM 的论文,我估计也不会认真研究一番的。在论文满天飞的年代,名企名校名人还是占优势的。


原文发布时间为:2018-01-17

本文作者:陈泰红

本文来自云栖社区合作伙伴“PaperWeekly”,了解相关信息可以关注“PaperWeekly”微信公众号

相关文章
|
1月前
|
机器学习/深度学习 数据采集 运维
高效处理异常值的算法:One-class SVM模型的自动化方案
高效处理异常值的算法:One-class SVM模型的自动化方案
36 1
|
4月前
|
算法 异构计算
基于FPGA的图像缩小算法实现,包括tb测试文件和MATLAB辅助验证
基于FPGA的图像缩小算法实现,包括tb测试文件和MATLAB辅助验证
|
4月前
|
存储 数据采集 数据可视化
支持CT、MR三维后处理的医学PACS源码
支持CT、MR三维后处理的医学PACS源码
58 0
|
4月前
|
算法 计算机视觉 异构计算
基于FPGA的图像指数对比度增强算法实现,包括tb测试文件和MATLAB辅助验证
基于FPGA的图像指数对比度增强算法实现,包括tb测试文件和MATLAB辅助验证
|
5月前
|
机器学习/深度学习 算法框架/工具 Python
pyton数据增强
pyton数据增强
34 0
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
常用数据增强方法(基于pytorch)
常用数据增强方法(基于pytorch)
142 0
|
8月前
|
存储 编解码 搜索推荐
影像系统PACS源码,支持多种图像处理及三维重建功能
完全遵守DICOM协议,整体通过IHE—C测试; 全院级PACS系统,应用于放射、超声、内窥镜、病理等影像科室; 集成放射科管理RIS系统; 支持多种图像处理及三维重建功能; 所见即所得的图文报告编辑、打印; 完善的报告留痕、历史记录、多级审核机制; 完备的综合统计分析,包括工作量、收费、阳性率、学术统计等。
|
8月前
|
数据可视化 定位技术 API
探索Streamlit中强大而灵活的 st.write() 函数(五):构建丰富多样的应用界面
探索Streamlit中强大而灵活的 st.write() 函数(五):构建丰富多样的应用界面
726 0
|
10月前
|
机器学习/深度学习 人工智能 算法
数据增强方法汇总
数据增强方法汇总
160 0
|
10月前
|
数据采集 移动开发 数据可视化
空间转录组|Load10X_Spatial函数修改适配多形式数据 + 空转标准流程
空间转录组|Load10X_Spatial函数修改适配多形式数据 + 空转标准流程
363 0