作者:SeuTao
又一位Kaggle大神!
Kaggle是全球首屈一指的数据科学、机器学习竞赛和分享平台,企业和研究者可以在Kaggle平台发布数据、举行/参加竞赛,通过“众包”的形式产生最好的模型,现在注册用户数量超过100万。
在Kaggle Competitions排行榜中,有一个头衔是众多用户都十分向往的,那就是“Kaggle Grandmaster”,他们是排名0.1‰的顶级高手。目前,Kaggle只有136位Grandmaster。
Grandmaster除了代表你参加过很多竞赛并且多次获得冠军,这个头衔在投简历找工作时也很具吸引力。同时,参加大企业举办的大型竞赛,还能获得奖金。
知乎上有一位大神“Seu Tao”,他从2018年9月份到2019年3月,仅历时半年,共参加了 5 次 Kaggle比赛,就拿到了5 个金牌(包括一个 solo gold),顺利成为了 Competitions Grandmaster!
Seu Tao告诉新智元,他17年本硕士毕业于东南大学,目前在某创业公司任职视觉算法工程师,这5次Kaggle比赛,也都是计算机视觉类的任务。最近,Seu Tao把他参赛经历和经验分享出来,我们一起膜拜下。
Kaggle 五次比赛成绩 (按名次排序)
SeuTao Kaggle主页:
https://www.kaggle.com/shentao
五次比赛介绍(按时间排序,记录下 5 次比赛的过程)
1. TGS Salt Identification Challenge(4/3234)金牌 2018.10
TGS 盐体识别挑战赛,挑战者需要开发出能准确分割地表以下沉积盐分布的算法。地震数据是通过地震反射(reflection seismology)收集的,这种方法要求能量的受控震源(如压缩气体或地震振动器),以及记录来自地下岩石界面反射的传感器。之后处理记录的数据,创建地球内部的 3D 视图。地震反射类似于 X 光、声波定位仪和回波定位。
比赛任务:地震图像语义分割
这是我第一次完整的 Kaggle 比赛经历,坚持刷 discussion,follow 蛙神的实验。比赛中后期一直保持着 top5 左右的名次,ddl 前一度上了 top1,最终 public 第 2,private 第 4。金牌 + 奖金,一次 Kaggle 全体验。
solution 介绍:
https://www.kaggle.com/c/tgs-salt-identification-challenge/discussion/69178
代码:
https://github.com/SeuTao/Kaggle_TGS2018_4th_place_solution
关于本次比赛的一些详细解读可以参考 @AlexL 的文章,他们是这次比赛的第 5 名团队:
https://zhuanlan.zhihu.com/p/47412338
2. Airbus Ship Detection Challenge(8/884) 金牌 2018.11
Airbus 的遥感图像分割检测比赛 Airbus Ship Detection Challenge,airbus 也就是空中客车公司,悬赏金额 6 万美金。航运流量增长迅速。更多的船只增加了海上违规行为的机会,这迫使许多组织对公海进行更密切的监视。在过去的 10 年里,人们做了大量的工作,从卫星图像中自动提取目标,取得了显著的效果,但在实际操作中存在许多不足。现在空中客车公司与 kaggle 共同举办比赛,寻求更好更快的船舶自动检测方案。
比赛任务:从卫星图片中找到所有的船只
刚结束 TGS 比赛,此时距离 Airbus deadline 仅剩下不到一个月了,好在之前训练了一个基础的 unet 模型,同时把 TGS 的经验迁移过来,敲定方案是 unet 语义分割模型 + mask rcnn 检测模型,几位队友合力之下顺利上升到了 PB 第 2 的位置。这题 AB 榜 shakeup 很大。最终我们 team PB 第 5,private 第 8。Do not trust LB, trust ur CV!
solution 介绍:
Do not trust the LB, trust your CV. (5th/8th in public/private LB)
https://www.kaggle.com/c/airbus-ship-detection/discussion/71601
代码:
https://github.com/SeuTao/Kaggle_Airbus2018_8th_place_solution
附:来自 @Pascal 的方案:
https://zhuanlan.zhihu.com/p/48381892
3. Google Doodle Recognition Challenge(12/1316)金牌 2018.12
这次比赛识别的是 Quick, Draw! 游戏的 5000 万张涂鸦,它们由来自全球各国的超过 1500 万玩家贡献,画得大多是一些苹果啊,浴缸啊,计算器啊之类的日常用品。
比赛任务:灵魂画手涂鸦分类
跟 airbus 比赛一样,花了一个月左右的时间去完成。跟之前比赛认识到的伙伴们组成了 8 人小队。赛题的数据量和需要的计算资源都很大,模型迭代的效率相对比较低。比赛结束之前也没有太多有效的探索。有幸的是最终还是能够 private 榜逆袭,拿下金牌的最后一名。
拿下这块金牌之后,顺利拿到了 kaggle master 头衔 :)
代码占坑:
https://github.com/SeuTao/Kaggle_Doodle2018_code
4. Human Protein Atlas Image Classification (9/2236)金牌 2019.01
多标签蛋白质图像分类比赛。数据极不均衡,且原始图像尺寸较大。
比赛任务:蛋白质图像多标签分类
连续几个月每天都用大量业余时间来做比赛确实比较辛苦,拿到 kaggle master tier 之后本来想着休息一段时间。本人本硕 BME 毕业,看到医学图像相关的主题异常亲切,决定还是试一试蛋白分类比赛。跟队友二人集成 baseline 结果之后,进入了金牌区(集成提升巨大)。之后就是加入了杨老师的队伍:
杨佶 Kulbear:Kaggle Human Protein Atlas 蛋白质分类比赛第九名总结和复盘
https://zhuanlan.zhihu.com/p/54734559
结果是 public 第 19,private 第 9,金牌 :)
5. Humpback Whale Identification (2/2131)金牌 2019.03
为了帮助鲸鱼保护,科学家们使用照片监视系统 (Photo Surveillance Systems) 来监视海洋活动。他们使用鲸鱼尾巴这一独一无二的标记来在连续的图像中识别鲸鱼,并对它们的活动进行细致地分析。在过去的四十年里,大部分工作基于科学家们的手工作业,这也使得大量的数据未被充分利用。5004 个 id 鲸鱼数据,其中许多 id 仅有 one shot 的数据。这是一个 few shot learning 和细粒度分类的问题。
比赛任务:座头鲸识别
Kaggle Grandmaster tier 要求 5 块金牌,其中包括一块 solo gold,遂决定一鼓作气尝试 solo,争取拿下 GM title。比赛时间比较充裕,面对的问题也是我相对熟悉的,很快成绩就进入了前 10。然而 PB 达到 0.910 之后,实验一度没有进展,名次在逐步下滑。急于打破僵局,尝试了相关的各种方案,sota 人脸 loss,Person reid 的模型结构,metric learning,pytorch 下也重新搭建了 siamese net 的 pipeline。然而尝试得越多,导致每条路线实验不够充分,更难以得到提升。(后续比赛结果也证明,任何一条路线,工作足够细致,都是能够在比赛中取胜的)冷静下来还是回归最初的方案,稳扎稳打,最终 rank 2nd。
solution:
https://www.kaggle.com/c/humpback-whale-identification/discussion/83885
代码:
https://github.com/SeuTao/Kaggle_Whale2019_2nd_palce_solution
Kaggle 参赛感受总结
关于成绩:6 个月连续五次比赛全部金牌,这是我开始做第一个比赛时没有想到的,其中运气也占了很大成分。每个比赛的初期,我的预期都不会是一块金牌(因为完全不知道会做成什么样),而是随着比赛的进行,不断提升对自己成绩的要求(5%->1%->top10->top5)。
投入精力: 在做竞赛之前,我的业余时间主要是用来做一些自己的 project 和学习充电。参加 kaggle 竞赛半年来,我把所有的业余时间都献给了这个平台。周末,国庆,元旦甚至春节假期,几乎都是在 kaggle 中度过,kaggle 可以说成为了我的第二职业。
收获回报:从学习角度来说,kaggle 上我收获了对不同问题,不同数据的认识,相关技能上也有不少提升;从荣誉角度来说,得到了多块金牌,成为了 Grandmaster,在平台 10w 用户中能够排名 top38(虽然对于很多大佬来说不算什么);还能够认识很多竞赛爱好者,并且相互交流提升;最后,奖金也是一个很好的回报 :)
比赛与工作:比赛与工作的关系,像是训练场与实战。作为一个从业者,比赛给我提供了非常好的训练环境,有非常多的新鲜问题和数据,在限制的条件下供我探索。在这里我想说明的是,比赛成绩好,决不能代表实际工作中能够表现出色。但是反过来,一个算法工程师如果不具备在竞赛中得到好名次的能力,又怎么能胜任实际工作呢?
本文分享自 机器学习算法与Python学习 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!