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

    文章

    3649

    浏览量

    51719
  • 数据集
    +关注

    关注

    4

    文章

    1231

    浏览量

    26050
  • pytorch
    +关注

    关注

    2

    文章

    813

    浏览量

    14707

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    大唐微电子2025身份识别技术大会圆满收官

    2025年10月16日——以“新时代身份识别技术护航国家高质量发展”为主题的2025身份识别技术大会在深圳圆满落下帷幕。本次大会由多维身份识别
    的头像 发表于 10-22 17:13 463次阅读

    国产自主可控全自动旋转测:中图仪器ACH100T、ACH100S系列

    通过测同坐标测量机控制系统的测接口相连,其结构设计直接影响测量精度与灵活性。根据结构类型,测可分为手动旋转测、自动旋转测和固定测
    的头像 发表于 08-25 11:17 1104次阅读
    国产自主可控全自动旋转测<b class='flag-5'>座</b>:中图仪器ACH100T、ACH100S系列

    01Studio K230怎么同时使用两个摄像

    最近想整个激光打蚊子炮,想像网上那样1个识别是否有人,另一个追踪蚊子。 然后我使用原装摄像和CSI1时频繁报错 虽然我使用AI解决了频繁报错的问题,但是图传和检测结果也直接不见 固
    发表于 08-12 07:48

    360环视技术推荐的硬件平台:支持多摄像与三屏异显的理想选择

    智能硬件不断升级的今天,360环视技术早已不只是豪华车型的专属。通过布置多路摄像,并将其图像进行融合处理,360环视可以为系统提供车辆或设备周围的完整视野。 它不仅能够消除盲区,还能通过AI识别
    发表于 07-30 17:32

    丝杆支撑医疗设备中的关键支撑

    丝杆支撑作为重要部件,保障设备精确运行方面起着关键作用。
    的头像 发表于 07-23 18:11 252次阅读
    丝杆支撑<b class='flag-5'>座</b><b class='flag-5'>在</b>医疗设备中的关键支撑

    K230micropython下能实现同时用USB摄像和板载摄像YOLO识别并显示IDE上吗?

    K230micropython下能实现同时用USB摄像和板载摄像YOLO识别并显示IDE上吗?以及如何提高USB进行YOLO识别的帧数
    发表于 06-20 06:35

    训练完模型后用cls_video.pycanmvIDE上运行,按着步骤操作但是摄像没有识别到是什么情况?

    训练完模型后用cls_video.pycanmvIDE上运行,按着步骤操作但是摄像没有识别到是什么情况啊,没有框出现
    发表于 06-10 06:57

    有偿求助!esp32cam摄像车牌识别代码执行时,上位机闪退

    esp32cam摄像车牌识别在操作执行识别车牌打开摄像,上机位直接闪退,摄像例程检测是有
    发表于 06-03 16:18

    邮科定制的摄像怎么样,用哪个软件?

    最近想入手一个摄像,在网上看到邮科的定制摄像,有大佬知道这个牌子的摄像怎么样吗? 谢谢
    发表于 05-21 16:25

    启智能获专利授权,无人配送技术赋能多行业智能化升级

    近日,南京启智能科技有限公司的《智能配送机器人》专利获得国家专利局授权。这一成就不仅彰显了启智能的技术实力,也为无人配送技术工厂、医院、楼宇等场景的广泛应用提供了强有力的支持。自2022年成
    的头像 发表于 03-04 12:24 774次阅读
    <b class='flag-5'>鲸</b>启智能获专利授权,无人配送技术赋能多行业智能化升级

    双增速第一,云产品CES惊艳亮相

    前不久,2025CES美国拉斯维加斯消费电子展览会上,云携旗下产品和前沿技术精彩亮相,引发行业广泛关注,展示了云智能清洁领域的技术创新和市场进取精神。
    的头像 发表于 02-10 10:30 976次阅读

    人脸识别技术安全监控中的应用

    现代社会,安全监控是维护公共安全和社会秩序的重要手段。随着技术的进步,传统的监控手段已经无法满足日益增长的安全需求。人脸识别技术作为一种新兴的技术,因其高效、准确的特点,安全监控领域展现出巨大
    的头像 发表于 02-06 17:25 1567次阅读

    携全系产品及最新技术亮相CES 2025,开启智能清洁新纪元

    近日,云携旗下全系产品和前沿清洁技术亮相美国消费电子展(CES 2025),吸引了全球媒体和消费者的极大关注。 据了解,本届CES云展台集中亮相了四款扫拖机器人,即Narwal Flow
    的头像 发表于 01-23 11:18 1100次阅读
    云<b class='flag-5'>鲸</b>携全系产品及最新技术亮相CES 2025,开启智能清洁新纪元

    中车典客车批量交付1032辆

    靓丽的红色车身,流畅的动感溜背……12月20日,1032台中车“典”系列公交车正式交付上线,即将化身“红鲸鱼”陆续亮相大连城市街头,为城市再添新名片。 此次交付的中车“典”系列车型,以10.5米
    的头像 发表于 12-24 10:29 1139次阅读

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

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