0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Kaggle的座头鲸识别挑战比赛在最近落下帷幕

电子工程师 来源:lp 2019-03-28 14:21 次阅读

Kaggle的座头鲸识别挑战比赛在最近落下帷幕,全球共2131个团队参加了比赛。

这是近期Kaggle上颇受欢迎的一次竞赛,常用的分类方法无法处理大量的无标注数据,只有对传统的方法进行创新,才能够获得高分。

下面文摘菌为大家介绍比赛中排名TOP10的团队如何完成比赛,以及其他几只团队的相关经验。

注:该团队由Vladislav Shakhray,Artsiom Sanakoyeu海德堡大学的博士组成,以及Kaggle Top-5 大神Pavel Pleskov。

本文作者Vladislav Shakhray,文摘菌对其编译如下。

比赛链接:

https://www.kaggle.com/c/humpback-whale-identification

问题描述

在比赛中,主要是构建算法来识别图像中的鲸鱼个体,而难点在于训练样本的严重不均衡以及存在近三分之一的无标注数据。

训练数据中的同一条鲸鱼的9张照片的示例

在超过2000个鲸鱼类别,只有一个训练样本,这使得常用的分类方法很难使用。更重要的是,无论鲸鱼是否是新的种类,这都是比赛的重要组成部分,结果证明这是非常重要的。

鲸鱼种类间照片数量差距很大

竞赛的衡量标准是MAP @ 5(平均精度为5),能够为每个测试图像提交最多5个预测。 我们在测试集上的最高成绩是0.959 MAP @ 5。

验证和初始设置

在本次比赛前几个月,同一比赛的另一个版本在Kaggle上举行,但是,正如竞赛发起人所指出的那样,现在的版本包含更多清洁的数据。我们决定以多种方式利用之前比赛的成果和数据:

1.使用之前竞争对手的数据,我们使用image hashing来收集超过2000个验证样本。 当我们稍后验证我们的成果时,这一方法非常重要。

2.我们从训练数据集中删除了new_whale类,因为它不在其元素之间共享任何逻辑图像特征。

3.有些图像根本没有对齐。 幸运的是,在之前一版kaggle比赛的成功解决方案中有一个公开可用的预训练边界框模型。我们用它来检测鲸鱼周围的精确边界框并相应地裁剪图像。

4.由于图像的颜色不同,所有数据在训练前都转换为灰色。

方法1:孪生神经网络Siamese Networks(Vladislav)

我们的第一个架构是一个具有众多分支架构和自定义损失的孪生神经网络(Siamese Networks),其中包括许多卷积和密集层。 我们使用的分支架构包括:

ResNet-18, ResNet-34, Resnet-50

SE-ResNeXt-50

Martin Piotte公开分享的类似ResNet的自定义分支

我们通过在每4个时期的分数矩阵上求解线性分配问题来使用显著阴性(hard-negative mining)和显著阳性挖掘(hard- positive mining)。 在矩阵中添加了一些随机化以简化训练过程。

使用渐进式学习(Progressive learning),分辨率策略为229x229 - > 384x384 - > 512x512。 也就是说,我们首先在229x229图像上训练我们的网络,几乎没有用正则化和更大的学习率。 在收敛之后,我们重置学习速率并增加正则化,从而再次对更高分辨率的图像(例如384×484)训练网络。

此外,由于数据的性质,使用了大量增强,包括随机亮度,高斯噪声,随机剪裁和随机模糊。

此外,我们采用智能翻转增强策略,极大地帮助创建了更多的训练数据。 具体地,对于属于相同的鲸鱼X,Y的每对训练图像,我们创建了另外一个训练对翻转(X),翻转(Y)。 另一方面,对于每对不同的鲸鱼,我们创建了另外三个例子:翻转(X),Y,Y,翻转(X)和翻转(X),翻转(Y)。

一个显示随机翻转策略不适用于一对相同鲸鱼照片的例子。 请注意当我们翻转图片时,两张图片的翻转效果不同,因为我们关心鲸鱼尾部的寄生藻的位置。

使用Adam优化器优化模型,初始学习率为1e-4,接近训练结束时减少5倍。 批量大小设置为64。

模型是用Keras编写的。在单个2080Ti上花费2-3天(取决于图像分辨率),训练模型大约400-600个周期。

使用ResNet-50性能最佳的单一模型得分为0.929 LB。

方法2:度量学习Metric Learning(Artsiom)

我们使用的另一种方法是使用保证金损失进行度量学习。 我们使用了许多ImageNet预训练的架构,其中包括:

ResNet-50, ResNet-101, ResNet-152

DenseNet-121, DenseNet-169

这些网络主要由448x448 - > 672x672策略逐步训练。

我们使用了Adam优化器,在100个训练周期后将学习率降低了10倍。 我们还为整个训练使用批量大小为96的训练方法。

由Sanakoyeu,Tschernezki等人开发的度量学习(metric learning)方法能够让成绩迅速提升。

度量学习在CVPR 2019上发布,它所做的是每个周期它将训练数据以及嵌入层分成簇。在训练组块和学习者之间建立双射之后,模型分别训练它们,同时累积分支网络的梯度。

代码及文章链接:

https://github.com/CompVis/metric-learning-divide-and-conquer

由于巨大的种类数量不平衡,我们使用了大量的增强,包括随机翻转,旋转,变焦,模糊,光照,对比度,饱和度变化。 之后,计算查询特征向量和列车库特征向量之间的点积,并且选择具有最高点积值的类作为TOP-1预测。 隐含地帮助类不平衡的另一个技巧是对属于相同鲸鱼id的火车图像的特征向量进行平均。

这些模型使用PyTorch实现,需要单个Titan Xp 2-4天(取决于图像分辨率)来训练。 值得一提的是,具有DenseNet-169架构表现最佳的单一模型得分为0.931LB。

方法3:特征分类(Artsiom)

当我和Artsiom联手时,我们做的第一件事就是使用从我们所有模型中提取并连接(应用PCA分析)的特征来训练分类模型。

分类的主要部分由两个密集的层组成,其间会删失信息。由于我们使用了预先计算的特征,因此模型训练得非常快。

通过这种方法我们获得了0.924 LB,并让整个集合更富多样性。

方法4:新鲸鱼分类(Pavel)

本次比赛最复杂的部分之一是正确分类新鲸鱼(大约30%的图像属于新类别鲸鱼)。

解决这个问题的流行策略是使用一个简单的阈值。也就是说,如果给定的图像X属于某个已知类别鲸鱼的最大概率小于阈值,则将其归类为新鲸鱼。然而,我们认为可能有更好的方法来解决这个问题。

对于每个表现最佳的模型和集合,我们选取了TOP-4预测,按降序排序。然后,对于其他的每个模型,我们将他们的概率用于所选择的这4个类。目标是根据这些特征来预测鲸鱼是否属于新类别。

Pavel创建了一个非常强大的包含LogRegression,SVM,几个k-NN模型和LightGBM的混合模型。这个混合模型在交叉验证中给出了0.9655 的ROC-AUC值,并且将LB得分提高了2%。

综合

由我们的模型构建混合模型相当不容易。难度在于我的模型的输出是非标准化概率矩阵(从0到1),而Artsiom提供的输出矩阵由欧几里德距离组成(范围从0到无穷大)。

我们尝试了许多方法将Artsiom的矩阵转换为概率,其中包括:

1、类似tSNE的转换:

2、Softmax

3、通过应用函数1 / (1 + distances)简单地反转范围

4、其他可以反转矩阵范围的函数

不幸的是,前两种方法根本不起作用,而使用大多数函数将范围剪切至[0,1]的结果大致相同。我们最终选择在验证集上具有最高mAP @ 5的函数。

令人惊讶的是,最好的是1 / (1 + log(1 + log(1 + distances)))。

其他团队使用的方法

大卫现在是Kaggle Grandmaster(等级为12),在Private LB上排名第四,并在Kaggle Discussions论坛上分享了他的解决方案。

https://www.kaggle.com/c/humpback-whale-identification/discussion/82356

他使用全分辨率图像并使用传统的关键点匹配技术,利用SIFT和ROOTSIFT。为了解决假阳性问题,大卫训练了一个U-Net从背景分割鲸鱼。有趣的是,他使用后期处理给只有一个训练样本的类别更多的机会跻身TOP-1预测。

我们也考虑过尝试基于SIFT的方法,但我们确信它肯定会比顶级神经网络表现得差。

在我看来,我们能从中学会的是,永远不应被深度学习的力量所蒙蔽,从而低估了传统方法的能力。

单纯分类

由Dmytro Mishkin,Anastasiia Mishchuk和Igor Krashenyi组成的Pure Magic thanks radek团队(第7名),追求将metric learning(triplet loss)和分类结合起来,正如Dmytro在他的文章中描述的那样。

在训练分类模型一段时间时,他们尝试使用Center Loss来减少过拟合,并在应用softmax之前进行temperature scaling。在使用的众多主干架构中,最好的是SE-ResNeXt-50,它能够达到0.955LB。

temperature scaling:

https://arxiv.org/pdf/1706.04599.pdf

他们的解决方案比这更加多样化,我强烈建议你参考原文。

正如Ivan Sosin在文章中(他的团队BratanNet在本次比赛中排名第9)所述,他们使用了CosFace和ArcFace方法。下面是来自于原文:

Cosface和Arcface作为面部识别任务新近发现的SOTA脱颖而出。其主要思想是在余弦相似空间中将同类的例子相互拉近并分开不同的类别。通常是分类任务使用cosface或arcface,因此最终的损失函数是CrossEntropy

当使用像InceptionV3或SE-ResNeXt-50这样的较大主干网络时,他们注意到了过拟合,因而他们切换到较轻量的网络,如ResNet-34,BN-Inception和DenseNet-121。

文章链接:

https://www.kaggle.com/c/humpback-whale-identification/discussion/82427

该团队还使用了精心挑选的扩充和众多网络修正方法,如CoordConv和GapNet。

他们方法中特别有趣的是他们处理新类别鲸鱼的方式。下面是原文:

一开始我们就意识到必须对新鲸鱼做一些处理,以便将它们纳入训练中。简单的方法是给每个新鲸鱼分配一个1/5004的可能属于每一类别的概率。在加权采样方法的帮助下,它带来了一些提升。

但后来我们意识到可以使用softmax预测来自于训练集中的新鲸鱼。所以我们想到了distillation。我们选择distillation代替伪标签,因为新鲸鱼的标签应该与训练的标签不同,虽然它可能不是真的。

为了进一步提升模型性能,我们将带有伪标签的测试图片添加到训练集中。最终,我们的单一模型可以通过snapshot ensembling达到0.958。不幸的是,以这种方式训练的ensembling并没有在分数上有任何的提高。也许是因为伪标签和distillation造成的多样性减少。

最后的思考

最后的排名

令人惊讶的是,尽管私人测试集占到全部测试集的近80%,但是最终结果几乎没有大的改变。我相信比赛的主办方已经提供了一个非常有趣的问题,以及经过很好地处理的数据。

这是我参加的第一场Kaggle比赛,毫无疑问,它表现出了Kaggle比赛的有趣,迷人,激励和教育性。我要祝贺由于这次比赛而成为Expert,Master和Grandmaster的人。我还要感谢ODS.ai社区提供的精彩讨论和支持。

最后,我要再一次特别感谢我的队友Artsiom Sanakoyeu和Pavel Pleskov,为我带来了一次难忘的Kaggle比赛经历。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3261

    浏览量

    48912
  • 数据集
    +关注

    关注

    4

    文章

    1208

    浏览量

    24736
  • pytorch
    +关注

    关注

    2

    文章

    808

    浏览量

    13249

原文标题:Kaggle座头鲸识别赛,TOP10团队的解决方案分享

文章出处:【微信号:BigDataDigest,微信公众号:大数据文摘】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    智能完成数亿元新一轮融资

    融资,累计融资金额高达数十亿元。这一轮融资历程不仅显示了云智能在扫地机器人领域的领先地位,也体现了其持续创新和市场拓展的能力。 智能的背后,汇聚了一批知名投资机构。其中包括由李泽湘管理的清水湾基金、互
    的头像 发表于 12-18 11:03 424次阅读

    客流统计自动识别摄像

    随着城市化进程的加快和商业活动的日益繁荣,客流统计成为了商家和城市管理者关注的重要指标。为了更精准地获取客流数据,客流统计自动识别摄像应运而生,成为现代商业和公共管理中不可或缺的工具。客流统计
    的头像 发表于 12-10 15:32 161次阅读
    客流统计自动<b class='flag-5'>识别</b>摄像<b class='flag-5'>头</b>

    公安特警团队作战过程中该如何保证和队员间的实时通讯-TIKOOL太酷公网全双工内通

    “尖刀·使命”2024年全国公安特警挑战浙江杭州顺利落下帷幕。参赛队凭借精湛的技能和顽强的作风,全力以赴地参与各科目的角逐。FG-P80公网全双工系列通过管理后台灵活的矩阵式终端管
    的头像 发表于 11-21 16:00 168次阅读
    公安特警<b class='flag-5'>在</b>团队作战过程中该如何保证和队员间的实时通讯-TIKOOL太酷公网全双工内通

    PC机不能识别AIC3254EVM-K的原因?

    最近买了AIC3254EVM-K,带USB口。按照user\'s guide的说明一步一步安装后,PC机不能识别该EVM,总找不到原因。特此请教软件安装、板上各插针的连接等,还需特别注意的问题。谢谢!
    发表于 11-07 06:07

    人流量检测识别摄像

    人流量检测识别摄像是一种结合了监控摄像技术和智能分析技术的先进设备,旨在通过实时监测和分析监控画面中人员的数量、密度、流动方向等信息,识别不同人群特征并进行统计分析。这种摄像
    的头像 发表于 09-25 10:58 402次阅读
    人流量检测<b class='flag-5'>识别</b>摄像<b class='flag-5'>头</b>

    智能化升级:机载无人机摄像如何自动识别目标?

    机载无人机摄像智能化升级的过程中,自动识别目标的能力得到了显著提升。这一过程涉及多个关键技术和算法,以下是关于机载无人机摄像如何自动识别
    的头像 发表于 09-19 15:23 670次阅读
    智能化升级:机载无人机摄像<b class='flag-5'>头</b>如何自动<b class='flag-5'>识别</b>目标?

    电动车乱停放识别摄像

    电动车乱停放情况,提高交通管理效率和道路秩序。电动车乱停放识别摄像城市交通管理中具有重要意义。通过安装这种设备主要道路、交叉口等地点,系统可以自动
    的头像 发表于 09-10 10:30 402次阅读
    电动车乱停放<b class='flag-5'>识别</b>摄像<b class='flag-5'>头</b>

    康谋分享 | 基于场景的AD/ADAS验证过程中,识别挑战性场景!

    基于场景的验证是AD/ADAS系统开发过程中的重要步骤,然而面对海量驾驶记录数据时,如何实现自动且高效地识别、分类和提取驾驶记录中的挑战性场景?本文康谋为您介绍IVEX软件识别挑战性场
    的头像 发表于 08-28 10:16 1098次阅读
    康谋分享 | <b class='flag-5'>在</b>基于场景的AD/ADAS验证过程中,<b class='flag-5'>识别</b><b class='flag-5'>挑战</b>性场景!

    AI4Science黑客松光子计算挑战赛成功举办

    经过数月角逐,第二届AI4Science黑客松竞赛日前落下帷幕曦智科技主持的光子计算挑战赛中,参赛选手何自强和来自东北大学的参赛队伍The Power of Light获得完赛优胜
    的头像 发表于 08-07 09:58 547次阅读

    解析Type-C母与Type-C公:特点与区别

    在数字连接领域,Type-C接口因其高速、多功能等特点备受瞩目。然而,Type-C连接器中,母和公作为两个重要组成部分,却有着各自独特的特点和用途。本文将深入探讨Type-C母
    的头像 发表于 07-24 11:50 1809次阅读
    解析Type-C母<b class='flag-5'>座</b>与Type-C公<b class='flag-5'>头</b>:特点与区别

    摄像模块突然无法显示!!!可能是什么原因?

    求助!!! 之前摄像模块用的好好的,由于要去外省打比赛,摄像模块连同机器人一起封箱后从北京运到了上海,结果到了上海一上电发现摄像模块啥也检测不到了。于是尝试直接把摄像
    发表于 07-15 23:50

    信息获500万元天使轮融资

    近日,河南多信息技术有限公司宣布成功完成500万元天使轮融资,本轮融资由多资本、北塔资本以及个人投资人共同参与。这一轮融资不仅彰显了多信息的市场潜力和投资价值,也为公司未来的发展注入了强大的资本动力。
    的头像 发表于 06-03 09:31 596次阅读

    云天励飞首届渠道大会落下帷幕,多家企业现场签约

    3月28日,云天励飞首届渠道大会落下帷幕。此次大会汇聚了上百家业内企业,共同见证了云天励飞在AI领域的创新与突破。
    的头像 发表于 04-03 09:13 495次阅读

    NBA比赛收视率的背后是什么?

    夏季季后赛之前,还有82场常规赛,那么赛程安排就是NBA的一个重要任务。30支球队要进行82场比赛,每支球队市值都超过10亿美元。仅电视转播收入每年就超过20亿美元,球迷和广告商都希望他们的球队
    的头像 发表于 02-24 08:04 392次阅读
    NBA<b class='flag-5'>比赛</b>收视率的背后是什么?

    车内语音识别数据智能驾驶中的应用与挑战

    详细介绍车内语音识别数据智能驾驶中的应用、面临的挑战以及未来的发展趋势。 二、车内语音识别数据智能驾驶中的应用 语音控制:通过车内语音
    的头像 发表于 01-26 18:14 1130次阅读