AI 简报 -FIX 你的模型
1.背景
本简报涉及两篇 fix 相关的文章,内容基本上是相同的,只是针对 fix 的模型不同,出自 Facebook AI Research。
Fixing the train-test resolution discrepancy
FIXING THE TRAIN-TEST RESOLUTION DISCREPANCY: FIXEFFICIENTNET
下图是近期 Imagenet 数据集 sota 的表现, fix efficient 都表现最好。
fix 想解决的问题是:训练集和测试集因数据处理而产生的分布的不一致性。
正常情况下,如果训练集和测试集的分布一致的话, 好的模型能有好的泛化表现。分布一致,从另外一个角度来看,模型的训练和模型的使用场景要一致, 所以人工智能落地的成功和具体场景有直接的关系, 针对特定的场景训练特定的模型,万能的模型至少目前是不存在的。。
分布不一致,有两种情况:
训练和测试数据本身就不一致,这时候调整数据是最直接的方法。
训练和测试的策略(数据增强)导致的不一致
第 2 点就是上述两篇论文中要解决的问题,主要是指采用数据增强方式如 crop,会导致训练和测试中分类主体尺度上不一致。如下图左边。
2. 解读
对于上述尺度不一致的问题,其实在没有 crop 数据增强的情况下,训练集和测试集也是有这种存在。以往研究的策略是:金字塔(feature pyramid net)和多尺度输入的方式。
FIX 提出的解决方案是采用训练和测试联合优化的方式,就是通过改变训练集和测试输入图片的分辨率,比如用 224224 的图片来训练模型,用 320320 的图片来测试模型。适当的增加测试时输入图像的分辨率,FIX 训练的模型有性能上的提升。
似乎是一个很简单的原则,提高测试分辨率,所能提取各个网络层的特征就会更多,包含主体的信息逐层传递到分类层也相应增加。
下图展示了,用 224224 训练的模型,不同尺度的测试输入时,模型的表现。可以看出 288288 时模型效果最好。但并不是越大越好,这可能是太大,反而会加大训练和测试集的分布不一致性。
FIX 证明了在默认的预处理或增强下,测试集中的目标大小为训练集的 80%,因此将 Ktest 扩大到原来的 1.25 倍后(224×1.25=280),训练集和测试集的目标大小将大致相同,这将减少 CNN 对尺寸不变性的学习
3.方法和实现细节
试着用低分辨率来训练,用 1.25 倍的测试分辨率来测试。可能是一个简单的提分点策略
下图是不同分辨率的训练集模型在不同分辨率测试的精度表现。
用合适低分辨的训练集来训练模型,另一个好处是可以加快训练的速度。
版权声明: 本文为 InfoQ 作者【AIWeker-人工智能微客】的原创文章。
原文链接:【http://xie.infoq.cn/article/09419f5f3ceae995ac65bed79】。文章转载请联系作者。
评论