作者 | 对白 整理 | 对白的算法屋 编者寄语:
揭秘对比学习在图像领域为何有效。
卷友们好,我是对白。
最近看到了一篇比较有意思的文章,希望来交流分享一波。最近的自监督学习技术已大大缩小了ImageNet分类的监督学习和无监督学习之间的差距。
利用对比学习的思想,自监督学习可以从数据本身中学习到更好的视觉表征,那么为什么这种对比表证的学习能够成功呢?
除开算法的角度,这篇文章从数据的角度入手,为理解对比学习的成功提供些启示。
每天一个不同的小期待 (ฅ>ω<*ฅ)
一、正文
目前的算法成功都是基于在ImageNet数据集之上,那么是否在其他数据集上也能适用呢?作者抛出了本文最核心的问题:在什么样的条件下,自监督对比表示学习可以学习到好的视觉表征?
作者从数据量、数据域、数据质量和任务粒度四个角度进行探究,提出了四个问题:
- 数据量有什么影响?
- 预训练有什么影响?
- 数据质量有什么影响?
- 任务粒度有什么影响?
作者接下来通过实验,在四个数据集上ImageNet,iNat21,Places365和GLC20,使用SimCLR的框架,对每个问题对行探究,我也依次梳理实验的结论。
1. 数据量
重点关注蓝线和红线,可以看到在三个数据集上的表现十分接近,得到三点发现:
- 超过 50 万张预训练图像几乎没有任何好处。
- 当有监督无法使用时,自监督的预训练可以是一个很好的初始化器。
- 对于某些数据集,自监督表示可以接近有监督的性能,但只能通过使用大量标记图像。
结论1:
当数据量超过500k时,再增加额外的预训练数据对模型的效果提升有限
2. 数据域
1.并非所有的预训练数据集都能起到同等的作用
作者通过交叉的方式观察不同数据域的影响,可以看到同一数据域的效果最好,即对角线上的值。
2.添加跨域数据并不一定会导致更有能力的表示
作者探究组合数据集的方式是否能获得更好的效果。
3. 不同的表示很少是互补的
作者将学习到的表征进行线性组合,观察是否可以得到更好的表征效果,事实证明他们并非互补的,效果有好有坏。
结论2:
增加不同的数据域作为预训练图片并不一定能学习到更通用、强大的表征。
3. 数据质量
3.1 图像分辨率至关重要。
3.2 添加高频噪声比擦除高频信息的危害要小得多。
结论3:
数据质量的好坏对于监督和自监督的预训练有不同的影响
4. 任务粒度
4.1随着任务粒度的增加,对比学习和监督学习之间的性能差距也越来越大。
4.2 数据增强是否是错误的?
4.3 对比学习是否存在粗粒度偏差?
结论4:
在细粒度的分类任务上,对比学习的效果和监督学习相差甚远
二、结论
(1) 超过500k图像的额外预训练数据对于模型性能的提升效果有限。
(2) 添加其他域的预训练图像并不能使对比学习生成更一般的表示。
(3) 损坏的预图像对于有监督和自监督模型有不同的影响。
(4) 对比学习在细粒度视觉分类任务上的表现远不如监督学习。
你好,我是对白,硕士毕业于清华,现大厂算法工程师,拿过八家大厂的SSP级以上offer。
高中荣获全国数学和化学竞赛二等奖。
本科时独立创业五年,成立两家公司,并拿过总计三百多万元融资(已到账),项目入选南京321高层次创业人才引进计划。创业做过无人机、机器人和互联网教育,保研后选择退居为股东。
我每周至少更新三篇原创,分享自己的算法技术、创业心得和人生感悟。