AI学习者 · 2020年09月14日

谷歌地标检索2020 Kaggle第一名解决方案的解读和见解

来源:AI人工智能初学者
作者:ChaucerG

640.png

本文介绍了Kaggle的Google Landmark Retrieval 2020竞赛第一名的解决方案。该解决方案基于度量学习来对众多地标类别进行分类,并使用带有两个训练数据集的迁移学习,在较大的图像上进行微调,为更干净的样本调整损失权重以及进行组合以进一步提高模型的性能。最终,本文方案在Public/Private排行榜上均为第1。

1 论文概要

为了强调表征学习的重要性,这场比赛要求选手设计一个可以更好的提取图像特征的模型,然后评分系统将使用模型:

  • 提取Private test sets和index sets的特征;
  • 创建一个KNN(K=100)模型查找每个测试样本,并使用欧氏距离度量Samples之间的距离;
  • 查询Score是竞争的质量指标,测试机包括:Public、index sets是谷歌地标数据集image.png的子集,Private test index dataset是全新的。

2 Basic Solution

基本的解决方案为:
EfficientNet
Cosine Softmax
Ensemble
等,并使用Colab TPUs进行训练。

2.1 模型设计

640-1.png

图1 基本模型架构

第1步:使用EfficientNet和Global Avgerage Pooling从图像中提取特征,然后采用DNN网络将特征压缩到更小的维数中,以实现紧凑表示和缩小模型尺寸同时可以降低最终特征输出的维度,节省内存。
注:这里的BackBone使用了EfficientNet模型在ImageNet数据集的预训练权重。

第2步:使用Cos Softmax对DNN之后的多维度特征表征进行多类别分类;同时为了解决Imbalance Classes的问题,参赛作者使用了Weighted Cross Entropy Loss来缓解数据不平衡的问题image.png(这里也是实际工业界经常使用的处理不平衡数据的方法,虽然不可以彻底的解决不平衡问题,但是会有比较好的提升,值得借鉴和学习的地方,不过weight参数的设置,是选择自动化学习出来还是人为设调出来也是一门很大的学问,这里作者的设置还是略显粗糙的,应该可以有更好的设置)

数据预处理方案:
对于图像增强,由于样本数量大,过拟合的可能性比较小,因此只使用左右翻转,进而不干扰图像原始的分布。

学习率和优化器设置:
采用随机梯度下降优化器进行训练,其中学习率、动量、权值衰减分别设为image.png。训练中没有使用学习调度。

3 Training Strategy

  • 第1步:利用CGLD2数据集训练模型并对81313个地标类进行分类。以512x512图像输入和Batch size=64为基础的BackBone进行训练,总训练了35个epoch花费149小时的验证损失来收敛。
  • 第2步:使用迁移学习的方法,把第一步训练的得到的模型在CGLD2的203094数据集进行进一步的训练,Batch\_Size=64,Epoch=13,耗时为150小时
  • 第3步:主要是扩大图像的分辨率继续对第2步得到的模型进行微调,先是放大到640x640进行训练,然后再扩大到736x736进行训练,得到最终的模型;
  • 第4步:调节损失函数的权重loss weight再进行训练。

640-2.png

4. Ensemble

采用Ensemble法进一步提高排行榜的得分。将多个模型的特征embeddings与权重连接起来,形成最终的特征embeddings。使用的模型是一个EfficientNet-B7、一个EfficientNet-B6和两个EfficientNet-B5主干模型。根据各模型的性能给出权重。通过对少数提交结果的检查,最终选择了EfficientNet-B7为1.0,EfficientNet-B6为0.8,EfficientNet-B5为0.5,即:

image.png

更多详细内容可以参考论文原文。

References

[1] https://www.kaggle.com/c/land...
[2] T. Weyand, A. Araujo, B. Cao, J. Sim. Google Landmarks Dataset v2 - A Large-Scale Benchmark for Instance-Level Recognition and Retrieval. CVPR,2020
[3] Kohei Ozaki, Shuhei Yokoo. Large-scale Landmark Retrieval/Recognition under a Noisy and Diverse Dataset. 2019
[4] https://www.kaggle.com/c/land...
[5] Mingxing Tan, Quoc V. Le. EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks. ICML, 2019
[6] Hao Wang, Yitong Wang, Zheng Zhou, Xing Ji,Dihong Gong, Jingchao Zhou, Zhifeng Li, and WeiLiu∗. CosFace: Large Margin Cosine Loss for Deep Face Recognition. CVPR, 2018
[7] https://github.com/qubvel/eff...
[8] AdaCos : Adaptively Scaling Cosine Logits for Effectively Learning Deep Face Representations.CVPR, 2019
[9] https://colab.research.google...

声明:转载请说明出处
推荐专栏文章


更多嵌入式AI算法部署等请关注极术嵌入式AI专栏
推荐阅读
关注数
16328
内容数
1218
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息