社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

200+机器学习竞赛最全分析:超550万美元总奖金,人人都用PyTorch,2070也能夺冠!

数据与算法之美 • 1 年前 • 356 次点击  



  新智元报道  

编辑:编辑部
【新智元导读】2022年,200多个机器学习竞赛的最全分析报告来了。打比赛有这篇就够了。

2012年,ImageNet竞赛中,Hinton和他的学生Alex Krizhevsky设计的卷积神经网络AlexNet一举夺得了冠军。
十年过去,机器学习领域依旧不断结出AI之果。2022年,是机器学习竞赛重要一年。
200多场竞赛覆盖了广泛的研究领域,包括CV、NLP、表格数据、机器人技术、时间序列分析等等。
最新报告回顾了2022年所举办有关机器学习竞赛的情况,主要分为两个部分。
在「机器学习竞赛格局」中,报告简要回顾了竞赛情况和每个竞赛平台的活动,以及奖金和比赛类型。
在「制胜策略」上,重点关注了比赛的获胜者,以及获胜的原因。另外,报告还研究了建模类型的趋势、编程语言的偏好、交叉验证方法和其他细节。

报告亮点

-比赛获胜者大都集中在一套共同的工具上:Python、PyData、PyTorch和梯度提升的决策树。
-不过,在表格数据方面,深度学习仍然没有取代梯度提升的决策树。尽管当与增强方法联合使用时,它似乎经常增加价值。
-Transformers继续在NLP中占据主导地位,并开始在计算机视觉中与卷积神经网络竞争。
-尽管单一模型解决方案也确实获胜,但大型模型在获胜者中更为常见。
-目前,有几个活跃的机器学习竞赛平台,以及数十个专门为个人竞赛而构建的网站。
-大约50%的获奖者是单独获奖;50%的人是首次获奖;30%的人以前曾多次获奖。
-一些人在训练其解决方案的硬件上还进行大量投资。有的使用免费硬件的人,像Google Colab等,仍然能够赢得比赛。
-值得一提的是,所有竞赛平台总奖池超过5万美元。

机器学习竞赛格局

值得注意的比赛和趋势

奖金最大的比赛是由美国垦务局赞助的DrivenData的Snowcast Showdown。
参赛者可以获得500万美元奖金,通过提供准确的美国西部不同地区的雪水当量估计值。与往常一样,DrivenData出色的获奖者文章和详细的解决方案报告非常值得一读。
2022年最受欢迎的比赛是Kaggle的信用违约预测大赛(American Express Default Prediction),预测客户是否会偿还贷款。
共有4000多个团队参赛,奖金为10万美元,比赛结果前四名的团队便可获奖。
第一名是由一个首次单独获奖的的团队获得,该团队采用了神经网络和LightGBM模型的组合。
最大的独立竞赛是斯坦福大学的人工智能审计挑战赛, 它为最佳「模型、解决方案、数据集和工具」提供了71000美元的奖池,以提高人们审计人工智能系统的非法歧视的能力。
还有三个都是围绕财务预测的比赛,都在Kaggle上进行:JPX的东京证券交易所预测,Ubiquant的市场预测,以及G-Research的加密货币预测。

计算机视觉

2022年最大一类的机器学习竞赛是计算机视觉问题,总计有40多个竞赛,超过1万美元的奖金池。
其中就包括上面提到的Snowcast Showdown,以及卫星图像中发现浮油、从扫描中识别颈椎骨折、在器官活检中分割功能组织单元和在农业图像中计数害虫等问题。
2022年至少有四场比赛,专门涉及建立模型以识别特定物种或个体动物的保护工作。至少有5场比赛专注于分析医学或生物图像。

自然语言处理

第二大类别是自然语言处理(NLP)竞赛,共有500多场比赛,总奖金超过14万美元。
大多数大型纯NLP竞赛都在Kaggle上,Kaggle举办了三个基于NLP的竞赛,专注于教育的不同方面:分割论文,评估语言能力, 以及预测有效论证。
还有一些比赛是将NLP与其他能力结合起来,比如NLP + 搜索,NLP+强化学习。

顺序决策

除了强化学习(RL)在过去十年中的成功,以及Atari DQN,AlphaGo等其他重大成果, 一类新型机器学习问题越来越受欢迎——顺序决策问题。
与典型的训练集/测试集的监督学习设置不同,这些问题为参与者提供了一个随时间变化的环境,以及一组可以在给定的时间段采取的可能行动。
比如,这个环境可以表示游戏世界、或者电力网络或运输网络的模拟。
在游戏世界中,参赛者可以相互匹配(麻省理工学院的Battlecode竞赛),或者完成某些任务(MineRL BASALT竞赛中中在我的世界建造房子)。
2020年,Kaggle便推出了此类模拟竞赛。AIcrowd也举办了一些这样的比赛。
2022年共举办了超过25场此类互动比赛,总奖金300多万美元。而且它们并不都是在模拟环境中运行的竞赛。
在真实机器人挑战赛(NeurIPS 2022官方竞赛)中,参与者必须学习控制三指机器人将立方体移动到目标位置或将其放置在空间中的某个点,并朝着正确的方向。
参赛者的算法每周在物理机器人上运行,并被用来更新排行榜。这场竞赛颁发了5千美元的奖金,还能在NeurIPS研讨会上发表演讲并获得学术荣誉。
此外,还有其他类型的比赛,比如,图形学习、优化、AutoML、音频处理、安全/隐私、元学习、因果推理、时间序列预测,以及分析/可视化。

平台

机器学习竞赛生态系统是由每年运行多项比赛的几个大型平台组成, 以及许多专门举办个人比赛的网站。
还有与之比肩的ML Contests,可以查看所有平台上正在进行的竞赛。
不同平台会有所不同,比如:
-Kaggle是最成熟的平台之一,2017年被谷歌收购, 拥有最大的社区,最近已达到10万用户。在Kaggle上举办资助的比赛可能非常昂贵。除了举办比赛外,Kaggle还允许用户托管数据集,笔记本和模型。
-CodaLab是一个开源竞赛平台,由巴黎萨克雷大学维护。任何人都可以注册,并主持或参加比赛。免费的中央处理器可用于推理,比赛组织者也可以使用自己的硬件作为补充。
-Zindi是一个较小的平台,有一个非常活跃的社区,专注于连接在非洲拥有数据科学家的组织。Zindi还举办面对面的黑客马拉松和社区活动。
-DrivenData专注于举办具有社会影响力的比赛,并为NASA和其他组织举办过比赛。赛后都会有描述解决方案的深入研究报告。
-AIcrowd最初是洛桑联邦理工学院的一个研究项目,现在是五大竞赛平台之一。它已经举办了几次官方的NeurIPS比赛。
报告中还排除了一些其他有趣的平台:因为它们没有举办符合我们标准的比赛,或者因为他们在2022年没有举行任何比赛。比如:
-Numerai是一家众包量化基金,自成立以来已向数据科学家支付了超过44万美元。
-Makridakis公开预测中心研究并举办时间序列预测竞赛。2022年没有截止日期的比赛,但M6比赛于2023年1月结束。
-microprediction正在进行时间序列预测挑战赛,奖金有大约50,000美元。Slack组有1,000名用户,大约有500个现场自主算法进行预测。
-Crunchdao是一家众包量化基金,有2000多名数据科学家分摊奖金。
-OpenML是一个用于共享数据集、算法和实验的开放平台。它托管5000个数据集和24个基准测试套件,允许研究人员以开放和可重复的方式审查不同算法的性能。
-CodaBench是一个新平台,目前处于测试阶段,支持CodaLab式的竞赛。有奖金和截止日期,以及OpenML式的持续基准测试。
-Hugging Face于2023年2月推出竞赛平台。

学界

在大型平台上举办的比赛的大部分奖金来自工业界,但机器学习竞赛已经有多年丰富的学术历史——正如Isabelle Guyon今年在NeurIPS的邀请演讲中所讨论的那样。
NeurIPS是全球顶级学术机器学习会议之一,并且一直是介绍最多论文的所在地,并见证了过去十年中ML的重大进展:AlexNet,GAN,Transformers,和 GPT-3。
NeurIPS于2014年首次举办了机器学习挑战(CiML)研讨会, 自2017年以来一直设置了专门的比赛赛道。
从那时起,比赛数量和总奖池都逐年稳步增长,到2022年奖金达到40万美元。
另外,其他机器学习会议也举办了比赛,包括CVPR,ICPR,IJCAI,ICRA,ECCV,PCIC和AutoML。

奖金

在那些提供金钱奖励或学术荣誉的比赛中,大约有一半的奖金超过了1万美元。
通常,与著名学术会议相关的比赛为获奖者提供旅行补助,使他们能够参加会议。
按总奖金计算的前十名包括DrivenData、Kaggle、CodaLab和AIcrowd上的竞赛。
从历史上看,比赛的资金通常来自以下几个方面:
-寻求问题解决方案的组织(比如NASA)
-准备计划借机招人的组织(比如美国运通,G-Research等)
-激励参与者使用其技术的平台或供应商(比如谷歌,或Kaggle资助他们自己的年度圣诞老人竞赛)
2022年,FTX未来基金资助了一些领域相对较新的独立竞赛。
然而,由于FTX的破产,旗下的未来基金团队也于2022年11月解散。11月下旬,Open Philanthropy宣布他们将在2023年接管一些比赛,但奖金不多。

参与

有些竞赛比其他竞赛更受欢迎,竞争更激烈。
大多数机器学习竞赛允许参赛者作为团队的一部分合作解决,有时对每个团队的参赛人数有限制。
衡量一个比赛的受欢迎程度或竞争力的方法之一是看设法向排行榜提交有效解决方案的团队数量。

学术竞赛的参与度通常较低

大多数比赛至少有50个团队参赛,但也有一些小比赛的参与数量会少于10个,其中大多是在主流平台之外举办的学术比赛。
注意,这个结果反映的并不是竞赛质量,一方面这些比赛通常会有相对较高的门槛,另一方面参赛团队也往往是专门从事相关领域的资深研究人员。

独立竞赛很难被注意到

大型竞赛平台可以凭借着自己的知名度和便利性,让用户很容易了解并参加到新的竞赛。
相比之下,独立竞赛并没有现成的用户群体,而组织者也不得不通过社交媒体宣传或发送电子邮件的方式来吸引参赛选手。

20个Kaggle竞赛的参与团队数超过1000个

在Kaggle上,参与者不仅可以轻松地在平台运行代码,还可以借鉴其他团队的解决方案。如此一来,即便是初次参与的新人,也可以创建一个有效的解决方案。
此外,Kaggle的机制也鼓励参与者去进行分享,当自己的代码或帖子被很多人「喜欢」时,就可以获得奖牌。进而,也就形成了一种非常融洽的合作氛围。
除了Kaggle以外,最受欢迎的比赛是Zindi的乌干达空气质量预测挑战,有239个团队参加。Zindi还有其他四个比赛,有两百多个团队进入排行榜。

获奖者的解决方案

编程语言

Python最受胜利者喜爱

毫不意外,Python几乎是所有竞赛获胜者的首选语言。其中,约有一半的人主要使用Jupyter notebook,而另一半则使用标准的Python脚本。
一个主要使用R语言的方案非常有趣,作者Amir Ghazi在「预测2022年美国男子大学篮球赛冠军」的Kaggle比赛中,逐字逐句地复现了2018年获胜方案的代码,而这个方案则是出自Kaggle大师Darius Barušauskas之手。尽管这已经很疯狂了,但Darius还是以一种新的方式参加了2022年的比赛......并获得了第593名的好成绩……

C++是最常见的辅助语言

在ICRA基准自主机器人导航挑战赛中,参赛者需要实时控制Clearpath Jackal机器人。
其中一个团队发现,相比于反向强化学习,经典的导航算法的效果反而更好。于是他们决定在导航和定位堆栈中采用C++语言,并实现了以40Hz的速度进行实时控制。鉴于机器人上的双核板载计算机的资源有限,Python可能很难做到这一点。
另外三个主要使用Python的团队也将C++用于其解决方案的某些部分,例如,对用C++编写的无人机模拟环境进行调整。

部分比赛会限制语言的选择

有的比赛规则限制了语言的选择。一些平台只接受Python(比如Xeek);一些则要求使用Python(比如如DrivenData);有的干脆不接受商业语言(因此比赛中不会出现MATLAB)。

Python包

所有使用Python的获胜者都在某种程度上使用了PyData堆栈。
最受欢迎的包可以分为三类:核心工具包,NLP领域,计算机视觉领域。

PyTorch没有竞争对手

从2021年到2022年,PyTorch的增长非常显著:从77%上升到96%。
具体来说,在46个深度学习的方案中,有44个采用的是PyTorch,只有两个用了TensorFlow。
可以说,在竞赛领域,PyTorch已经赢了。而这也与更广泛的机器学习研究的趋势是一致的。
值得注意的是,目前还没有使用其他神经网络库获胜的例子,比如JAX、PaddlePaddle或MindSpore。

计算机视觉

计算机视觉竞赛有许多类型的任务。
图像分类,如Kaggle的竞赛,要求从数字病理图像中对中风类型进行分类。
物体检测,如在大堡礁的视频中检测海星。
图像分割,比如在核磁共振扫描中分割胃和肠道。
机器学习排序,比如在类似图像的数据库中寻找单个鲸鱼的图片。
现状:卷积神经网络(CNN)
这些问题的核心是获取图像数据,通常是像素的二维阵列,并从中提取有用的信息。
十多年前,随着AlexNet的出现,CNN成为解决这类问题的最先进架构。因其利用了图像的分层结构,识别小规模的特征,并将这些特征建立为图像中越来越大的的表现特征,所以CNN是很实用的。
Transformer
最近,2020/2021年推出的Vision Transformer和Swin Transformer表明,基于Transformers的模型完全取代了递归神经网络的语言建模,而后者在计算机视觉中应用也很广泛,并有可能比基于CNN的传统模型表现更好。
正如Andrej Karpathy(之前在斯坦福大学、OpenAI、Tesla,现在回到OpenAI)在2021年底指出的那样,不同领域的神经网络架构看起来都在向Transformer架构靠拢。
他说,「人工智能领域正在进行的整合令人难以置信......大约十年前,视觉、语音、自然语言、强化学习是完全独立的......大约过去两年,所有领域的神经网络架构都开始看起来相同了,都变成了Transformer。」
预训练模型很重要
计算机视觉与语言建模的相似之处是都使用预训练模型,在公共数据语料库(如ImageNet)上训练的公认架构。
这些模型最流行的储存库是Hugging Face Hub,可以通过timm库访问,这样的话,加载几十个不同的计算机视觉模型的预训练版变得非常简单。
在计算机视觉和NLP等领域使用预训练模型的优势是显而易见的:真实世界的图像和人类生成的文本都有一些共同的特征,而且使用预训练模型可以获得这些通用知识的好处,就像是使用了一个更大、更通用的训练数据集。
微调总是有帮助的
通常,预训练模型会在特定任务的数据上进行微调,来进一步训练,比如基于比赛组织者提供的数据。
到目前为止,2022年获奖者中最受欢迎的预训练CV模型是EfficientNet。它的优势在于比许多其他模型的资源密集度低得多。
没有一种增强策略是万能的
除了大量使用CNN预训练模型,在获胜的解决方案中还有相当多的种类:
-训练时的数据增强很常见,指的就是通过转换现有的训练数据产生额外的训练数据,经常使用的是Albumentations库。
-混合,是另一种增强策略。
-测试时增强策略则使用情况不一。该策略就是对输入的几个转换版本进行推理,并使用综合预测。一些人在使用这个策略后取得了成功,而另一些人则觉着它的效果不如其他方法好。

自然语言处理

自2017年成立以来,基于Transformer的模型已经主导了自然语言处理(NLP)。BERT和GPT中的 「T」就是指Transformer,也是ChatGPT的核心神经网络架构。
Transformer仍占主导地位
在NLP竞赛中获胜的所有解决方案的核心都是基于Transformer的模型,这并不奇怪。只不过,它们都是在PyTorch中实现的。
它们都使用了预先训练好的模型,用Hugging Face的Transformers库加载,而且几乎所有的模型都使用了微软研究院的DeBERTa模型,通常用的是deberta-v3-large。
其中许多需要大量的计算资源。例如,谷歌AI4Code的获胜者为其最终解决方案训练一个deberta-v3-large,运行A100(80GB)GPU约10天。

算力和硬件

我们希望能够测量每个获胜者在其解决方案里使用的总计算能力。例如,在EDA、初始实验、超参数调整和最后的训练运行中进行的浮点运算总数。不幸的是,这其实是不可行的,所以我们只能用一些代理措施来解决。
首先,获胜者使用的硬件如下:
现实中,各种硬件类型都有被使用。正如预期的那样,大多数获奖者使用GPU进行训练,它可以极大地提高梯度提升树的训练性能,而且它也是深度神经网络的必备条件。
还有不少获奖者可以使用由其雇主或大学提供的GPU集群。
没有TPU或苹果芯片
令人惊讶的是,我们没有发现任何获奖者使用谷歌的张量处理单元(TPU),同时也没有看到有获胜者提到Apple Silicon。
谷歌Colab
谷歌的云笔记本解决方案Colab很受欢迎,有一个获胜者使用了免费层,一个使用了Pro层,一个使用了Pro+,第四个获胜者使用的是哪层Colab,我们不得而知。
本地个人硬件比云端硬件稍微更流行一些,尽管有9位获胜者提到了他们用于训练的GPU模型,但没有具体说明他们使用的是本地还是云端GPU。
都是英伟达的显卡
获胜者使用了10种不同的GPU模型进行训练,都是NVIDIA GPU。虽然PyTorch在2021年增加了对AMD的ROCm平台的支持,但AMD的GPU在深度学习方面仍然滞后。
在三个主要的GBDT库中,LightGBM是唯一支持AMD GPU的库。XGBoost和CatBoost目前只在NVIDIA GPU上运行。
顶级加速卡最受欢迎
最受欢迎的GPU是NVIDIA A100(我们将A100 40GB和A100 80GB型号归为一类,因为大家并不总是区分这两种型号)。
大家通常使用多个A100 ,例如,Zindi的Turtle Recall竞赛的获胜者使用了8个A100(40GB)GPU,另外2个获胜者使用了4个A100。
不过,这些基本都是从数据中心租用的,毕竟直接购买一个A100要花费超过10,000美元。
A6000也很受欢迎:Kaggle特级大师Qishen Ha用2倍的A6000配置赢得了今年的两项比赛。单个A6000的成本接近5,000美元。
消费级显卡也能搞定
令人欣慰的是,消费者级的GPU出现了——RTX 2070、RTX 2080Ti和RTX 3090出现在更高端的游戏电脑中,新的价格为300-2000美元,二手型号有很大折扣。
在云计算服务中,这些产品通常以低于1美元/小时的价格提供。

数据集大小和训练时间

除了所使用的具体硬件外,在这些比赛中获胜所需的算力的2个有用的代用指标是数据集大小和训练时间。这两点都很难衡量!
在不同解决方案之间很难有个可比性的定义,也很难让竞争者易于追踪。最后,我们确定从这两个问题着手。
-提供给参与者的数据集的总大小是多少,以千兆字节为单位?(按规定)
-最后的训练运行大概需要多长时间?
虽然这些问题比较模糊,但它们至少在某种程度上是容易测量的,而且我们希望由测量的便利性所增加的样本量会超过精度的不足。对于数据集的大小,我们采用提供给参与者的数据大小,而这通常是未压缩的csv文件。
为比赛提供的数据量存在巨大差异,跨越了5个数量级。在低端,Kaggle的专利短语匹配竞赛只提供了超过2MB的数据,不过允许使用外部训练数据。
在另一方面,DrivenData的空气质量竞赛提供了超过2TB的数据,AIcrowd的MineRL Basalt有650GB,而Waymo用于其4个挑战的开放数据包括了大约400GB的训练数据和各40GB的验证和测试数据。
训练时间也很不稳定,可能部分是因为问题的模糊性。在可能的情况下,我们排除了预处理和表征生成的时间,这些可以在后续运行中跳过。
有些使用免费的计算,有些则花费了很多钱
Zindi的Alvin交易分类挑战是由一个在GPU上使用谷歌Colab的免费层训练不到半小时的模型赢得的。
在另一端,Kaggle的谷歌AI4Code竞赛的获胜方案在租用的云计算平台上用英伟达A100(80GB)训练了10多天,仅最后的训练就可能产生约500美元的云计算成本。
而谷歌通用图像嵌入竞赛的获胜方案是在4个英伟达A100 GPU上训练了20天,如果使用云计算,成本可能超过2000美元。

团队构成

在大部分的比赛中,每个团队的人数最多不能超过5个。

几乎一半都是个人获奖者

令人印象深刻的是,几乎一半的获胜「团队」都只有一个人。
独自赢得比赛是一个真正的壮举,因为较大的团队可以从任务的分配中受益(例如,一个人主要专注于数据预处理/输入生成)。与之相对的,2022年的Waymo 3D纯摄像头检测挑战是由一个10人团队赢得的。

在比赛中首次获奖很常见

2022年,超过半数比赛的优胜团队,是他们在该竞赛中第一次获奖。
此外,有不到三分之一的获奖者是新参赛的选手,还有不到三分之一的是赢过不止一次比赛的团队。

有些人一次又一次地获胜

在机器学习竞赛中,经验显然是一种优势。
首先,某些工作可以在不同的比赛中重复使用。比如,图像预处理、计算指标、通用训练管线等等。
其次,拥有良好记录的参赛者有时会获得计算硬件的支持,这可以让他们在未来的比赛中获得优势。例如,惠普的数据科学大使项目Z,其成员中就有Kaggle大师Qishen Ha。
得注意的是,H2O.ai的Kaggle大师团队成员在2022年至少赢得了5场比赛,而2022年至少有3场比赛是由在Preferred Networks工作的成员赢得的。
参考资料:
https://mlcontests.com/state-of-competitive-machine-learning-2022/?ref=mlc_reddit

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/152842
 
356 次点击