数据学习
登录
注册
原创博客
期刊会议
学术世界
期刊出版社
领域期刊
SCI/SCIE/SSCI/EI简介
期刊列表
会议列表
所有期刊分区
学术期刊信息检索
JCR期刊分区查询
CiteScore期刊分区查询
中科院期刊分区查询
领域期刊分区
管理 - UTD24期刊列表
管理 - AJG(ABS)期刊星级查询
管理 - FMS推荐期刊列表
计算机 - CCF推荐期刊会议列表
高校期刊分区
南大核心(CSSCI)
合工大小核心
合工大大核心
AI资源仓库
AI领域与任务
AI研究机构
AI学术期刊
AI论文快讯
AI数据集
AI开源工具
AI模型
AI模型概览
预训练模型
数据推荐
网址导航
我的网址导航
程序员必备网站
2022年机器学习竞赛领域大家都在使用什么AI模型?——2022竞赛模型使用分析报告!
标签:
#报告#
#机器学习比赛#
时间:2023/03/13 22:13:29
作者:小木
机器学习竞赛中使用的技术通常可以作为一种参考,让大家了解到什么样算法在现实数据中有比较好的效果。最近ML Contests总结了2022年的200多个机器学习比赛数据,为我们展示了哪些AI算法在实际中有较好的结果。 部分结论如下: - 当涉及到表格数据时,深度学习仍然没有取代梯度提升决策树(GBDT),尽管当深度学习与GBDT联合使用时,可以提升效果。 - Transformers继续在NLP中占主导地位,并开始在计算机视觉中与卷积神经网络(CNN)竞争。 - 卷积神经网络仍然主导着计算机视觉。而EfficientNet是计算机视觉中最流行的预训练架构--大多数人对预训练的模型进行微调,而不是从头开始训练。 - 几乎有两倍的获胜方案使用k-fold CV而不是固定的验证集。 - 几乎每个人都在使用Python。 - 在46个使用深度学习的获胜方案中,44个使用了PyTorch,只有2个使用了TensorFlow。 - 对于表格竞赛来说,一个很大的惊喜是:XGBoost的统治似乎结束了。虽然梯度提升仍然赢得了大多数表格竞赛,但LightGBM现在是首选方法,CatBoost位居第二。XGBoost位居第三。 - 10个表格竞赛中的7个获胜方案使用了梯度提升,10个中的5个使用了深度神经网络(用PyTorch实现),大多数获胜方案是集成(Ensemble)方法。 - 大型集成算法在获奖者中仍然很常见,尽管单一模型的解决方案也能获胜。 具体报告如下: [TOC] #### 一、机器学习竞赛的网站平台 最大的平台当然是Kaggle,不过阿里的天池排名第二。

这些平台各有侧重: - Kaggle是最成熟的平台之一,于2017年被谷歌收购,拥有最大的社区,最近已达到1000万用户。在Kaggle上运行一个资助的比赛可能相当昂贵。除了举办比赛之外,Kaggle还允许用户托管数据集、笔记本和模型。 - CodaLab是一个开源的竞赛平台,有一个实例由巴黎萨克雷大学维护。任何人都可以注册并主持或参加比赛。免费的CPU资源可用于推理,比赛组织者可以用自己的硬件来补充。 - Zindi是一个较小的平台,有一个非常活跃的社区,专注于连接组织和非洲的数据科学家。Zindi还举办个人黑客马拉松和社区活动。 - DrivenData专注于举办具有社会影响力的比赛,并为NASA和其他组织举办过比赛。比赛结束后都会有深入的研究报告来描述解决方案。 - AIcrowd最初是EPFL的一个研究项目,现在是五大竞赛平台之一。它已经主办了几个官方的NeurIPS比赛。 #### 二、Python是最受欢迎的编程语言 下图展示了主要使用的语言:

但是,需要注意的是C++是最常见的辅助语言!主要使用C++的一个获胜方案是针对ICRA基准自主机器人导航挑战赛,该挑战赛要求实时控制Clearpath Jackal机器人。该团队首先尝试使用反向强化学习,但发现经典的导航算法效果更好。他们在导航和定位堆栈中采用了C++语言,使他们能够以40Hz的速度进行实时控制。鉴于机器人上的双核板载计算机的资源有限,使用Python可能难以实现这一目标。另外三个主要使用Python的团队也将C++用于其解决方案的某些部分,例如,对用C++编写的无人机模拟环境进行调整。 两个主要使用Python进行建模的团队使用R进行预处理--至少在其中一个案例中,这是因为从事预处理管道的团队成员对R比Python更熟悉。 大多数使用Python的团队没有发现需要使用除shell脚本之外的任何其他语言。 #### 三、最流行的Python库 几乎所有的团队都会使用各种开源库帮助处理数据。按照不同类别的结果展示如下:

可以看到,数据处理中,NumPy、Pandas、SciPy和Scikit-Learn是最流行的工具。而深度学习框架中,PyTorch使用最多。 而NLP和CV领域用到的最多的库如下:

#### 四、计算机视觉领域使用的方法总结 计算机视觉任务包括图像识别、边缘检测等。参考:[计算机视觉 -Computer Vision](https://www.datalearner.com/ai-areas/computer-vision) ##### 4.1、CNN依然是计算机视觉最常用的算法 在CVPR 2022上,ConvNext架构被介绍为 "2020年代的ConvNet",并显示其性能优于最近基于Transformer的模型。这至少被用于两个竞赛获奖的计算机视觉解决方案中,而CNN总体上仍然是迄今为止计算机视觉竞赛获奖者中最受欢迎的神经网络架构。

##### 4.2、预先训练的模型是必不可少的 计算机视觉与语言建模非常相似的另一种方式是使用预训练的模型:在公共数据语料库(如ImageNet)上训练的公认的架构。这些模型最流行的储存库是Hugging Face Hub,通过timm库访问,这使得加载几十个不同的计算机视觉模型的预训练版本变得非常简单。 在计算机视觉和NLP等领域使用预训练模型的优势是显而易见的:真实世界的图像和人类生成的文本都有一些共同的特征--使用预训练模型可以获得这些通用知识的好处,类似于使用了一个更大、更通用的训练数据集。 ##### 4.3、微调几乎总是有帮助的 通常,参赛者都会使用预训练的模型在特定任务的数据上进行微调。通常如此,但并不总是如此。例如,在[“图像匹配挑战赛”](https://www.kaggle.com/competitions/image-matching-challenge-2022/discussion/329131?ref=mlcontests)中,获胜者使用了预先训练好的模型,根本没有进行任何微调: > since the quality of the training and test data [varied] in this competition, we did not conduct [fine-tuning] using the provided training data because we thought it would be less effective 这个决定使参赛者获得了胜利。

到目前为止,2022年获奖者中最受欢迎的预训练计算机视觉模型类型是EfficientNet,正如其名称所示,它的优势在于比许多其他模型的资源密集度低得多。 ##### 4.4、没有一种策略可以取得所有好的结果 除了大量使用预先训练好的模型以及CNN网络,获胜的解决方案中有各种各样的技巧: - 训练时的数据增强(通过转换现有的训练数据产生额外的训练数据)是很常见的,经常使用Albumentations库。 - 混合,是另一种增强策略,也被许多获奖者提及。 - 测试时增强(对输入的几个转换版本进行推理,并使用综合预测)的使用情况不一。一些人在这方面取得了很好的成功,而另一些人则发现它的效果不如其他方法好。 #### 五、自然语言处理领域使用的方法总结 自然语言处理的任务包括问答、分类等,参考:[自然语言处理 - Natural Language Process](https://www.datalearner.com/ai-areas/natural-language-process) 自2017年成立以来,基于Transformer的模型已经主导了自然语言处理(NLP)。Transformer是BERT和GPT中的 "T",也是ChatGPT的核心神经网络架构。 ##### 5.1、Transformer继续占主导地位 在NLP竞赛中获胜的所有解决方案的核心都是基于Transformer的模型,这并不奇怪。只不过,它们都是在PyTorch中实现的!Tensorflow你肿么了!他们都使用了预先训练好的模型,用Hugging Face的Transformers库加载,而且几乎所有的模型都使用了微软研究院的DeBERTa模型--通常是deberta-v3-large。 ##### 5.2、Transformer继续吞噬着计算资源 其中许多需要大量的计算资源。例如,谷歌AI4Code的获胜者运行A100(80GB)GPU约10天,为他们的最终解决方案训练一个deberta-v3-large。这种方法是个例外(使用单一的主模型和固定的训练/评估分割)--所有其他的解决方案都大量使用了ensembles方法,而且几乎都使用了各种形式的k-fold交叉验证。例如,Jigsaw Toxic评论竞赛的获胜者使用了15个模型输出的加权平均值。 基于Transformer的ensembles有时与LSTM或LightGBM相结合。 至少有两个例子表明伪标签被有效地用于获胜的解决方案中。 #### 六、表格数据处理使用的方法总结 深度学习的主导地位仍有争议的一个领域是表格数据问题--即任何训练数据被结构化为标量数值的行和列的问题(参考:[表格数据处理 - Tabular Data Process](https://www.datalearner.com/ai-areas/tabular-data-process))。许多 "商业ML "问题都属于这个类别。 ##### 6.1、建模 虽然有大量专门用于表格数据的深度学习方法,但这些方法与之前的表格数据技术状态--梯度提升决策树(GBDT)模型(如XGBoost)相比,仍然没有定论。 虽然许多介绍新的表格深度学习方法的论文都声称有卓越的性能,但这些论文之后往往会有评论文章表明这种性能并不普遍。关于这方面的文献综述,见[表格数据深度学习简史](https://sebastianraschka.com/blog/2022/deep-learning-for-tabular-data.html?ref=mlcontests)。 ##### 6.2、GBDTs仍然在纯表格数据中获胜,但神经网络也有自己的位置 纯粹的表格数据竞赛,没有额外的结构可以利用,往往是由GBDT模型或GBDT和神经网络模型的组合赢得。 如果表格数据有一些很适合特定神经网络架构的底层结构,如RNN/Transformers的序列数据或CNN的类似图像的数据,这些比赛往往是由神经网络模型或GBDT和神经网络模型的组合赢得。 ##### ️6.3、LightGBM现在比XGBoost在获奖者中更受欢迎 XGBoost曾经是Kaggle的代名词。然而,在2022年,LightGBM显然是获胜者中最受欢迎的GBDT库--获胜者在他们的解决方案撰写中或在我们的调查问卷中提到LightGBM的次数与CatBoost和XGBoost的总和相同。CatBoost排名第二,而XGBoost则令人惊讶地排名第三。 ##### 6.4、Dataframes Pandas长期以来一直是Python中事实上的数据框架库,但它远非完美。近年来,替代方案层出不穷--Polars、Dask[dataframe]、Modin、Vaex、RAPIDS cuDF和PyArrow等库都希望在Pandas的基础上,取代或扩展它。 但是,Pandas的地位至高无上。我们发现87%的赢家使用Pandas,而......没有人使用任何替代品。 这很令人惊讶 这些替代方案都有自己的优势(规模、速度、分布),而且似乎已经成熟到可以看到一些使用。目前还不清楚为什么会出现这种情况。有几个可能的原因: - 竞争性的机器学习社区在比赛期间经常分享代码,竞争者在别人的解决方案上进行构建。有可能与常用的堆栈库相背离,使其更难整合他人共享的代码。 - Pandas已经存在了很长时间,并且得到了NumPy数组的支持。NumPy通常与PyData生态系统中的其他库有很好的接口,包括scikit-learn,它经常被用于计算指标以及数据预处理/转换。 - 我们将在未来几年内关注这方面的发展,特别是随着各个项目对Apache Arrow(支持Polars)的支持越来越多,包括Pandas 2.0中 报告来源:https://mlcontests.com/state-of-competitive-machine-learning-2022/#fn:3
相关博客
最热博客