接着上一篇的内容
model averaging
我们将多个模型融合的结果作为最后提交的内容
1)Test-time augmentation
对于每一个单独的模型,我们使用不同的augmentation得到不同的预测结果,然后将这些结果融合,这对performence的提升有很大的帮助。我们将Test-time augmentation简写为TTA。
开始的时候,我们使用人工创造的仿射变换(affine transformations )数据集应用于每一张图片来进行augmentation,这样比随机的选择参数进行augmentation得到的performence要更好。接下来,我们寻找更好的augmentation的方法,最终确定使用quasi-random 进行70次转换,采用比训练时更加modest的参数。
使用TTA得到预测结果花费大约12小时。
2)Finding the optimal transformation instead of averaging
观察到上述TTA过程相对的提高了performence,我们在想有没有可能在预测的时候继续优化augmentation的参数。这是有可能的,因为仿射变换本身随着参数的不同而不同,也就是说具有可区分性。
为了做到这一点,我们将仿射变换(affine transformations )作为网络的layer,这样的话网络在训练的时候,就能通过BP来更新augmentation的参数。但是求导有些复杂。
我们尝试了几个不同的方法来寻找优化的augmentation:
- 优化augmentation的参数来最大化预测结果的置信度
- 训练一个卷积网络来预测augmentation的参数,然后传递给另外一个卷积网络使用。
不幸的是这些方法都没有提升performence,我们在我们提交的结果中没有采用这个方法,但是我们以后会进一步的研究。
3)Combining different models
我们总共训练的模型超过300个,所以我们必须从中选择好模型然后进行最终的融合。我们使用validation数据集来选择模型。我们优化模型的参数来减小模型在训练时的loss。
我们有规律的测试一些top-weights模型融合后的整体perforemence,然后在test数据集上进行预测。最后,大致的找到了融合模型的idea。
一旦融合模型选择好后,我们将他们均匀融合,或者用validation数据集来优化weighs。两种方法得到的performence不相上下。
选择要进行融合的模型并不一定是TTA过程中performence表现好的。一些performence很低也可以被选中,因为这些模型得到的预测结果与其他模型差异非常大。一些由于overfitting而performence低的模型也可以用来融合,因为模型的融合可以减小overfitting。
4)Bagging
为了更好的提升融合模型的performence,我们将其中的某些模型(大部分5个)用由不同的子数据集训练得到的模型代替。
Miscellany
下面这些是我们尝试的其他一些方法,不同的方法有不同的提升效果:
- untied biases:提升的performence微乎其微
- 在FC层用winner take all nonlinearity (WTA)取代Relus/maxout。
- smooth nonlinearities:用smooth nonlinearities取代LRelu,得到的performence更差。
- specialist models:对于一些难以进行分类的类别,我们使用了额外的模型来训练,使用了包括 knowledge distillation和self-informed neural network structure learning 两种方法,但是都没有得到更好的performence。
- batch normalization: 遗憾的是我们没有获得和Ioffe and Szegedy 描述的一样的效果.
- 使用 FaMe regularization ,效果没有dropout好。
- 使用 Reed描述的 Semi-supervised learning 没有得到更好的performence,也没有降低overfitting。
下面是一些我们测试能防止overfitting的一些方法(有遗漏):
- dropout(传统以及变种)
- 好的 data augmentation
- 合适的模型结构(深度以及每一层的宽度都会影响overfitting)
- weight-decay
- 无监督预训练(unsupervised pre-training)
- cyclic pooling(特别是其中的 root-mean-square pooling)
- leaky Relu
- pseudo-labeling
我们记录了比赛期间的准确率。最好的模型在validation上的准确率为82%,top-5准确率超过98%。这使得我们可以用模型作为工具加速人工注释.
本篇译文系作者原创,转载请先联系作者: 18254275587@163.com