Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

選自medium

作者:Eniola Olaleye

機器之心編譯

編輯:張倩

對於ML學習者和從業者來說,參加競賽是一個很好的鍛鍊機會,還能賺取一些零花錢。那麼,你知道哪個平臺比賽最多,成績比較好的那些團隊都在使用什麼架構、什麼模型嗎?在這篇文章中,一位名叫Eniola Olaleye的資料科學愛好者介紹了他們的統計結果。

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

統計網站:https://mlcontests。com/

作者得出了幾個重要結論:

1、在所有競賽中,Kaggle上的競賽數量仍然佔據1/3,而且獎金數量佔270萬美元總獎金池的一半;

2、在所有比賽中,有67場比賽是在前5大平臺(Kaggle、AIcrowd、Tianchi、DrivenData 和 Zindi)上舉行的,有8場比賽是在去年只舉辦了一場比賽的平臺上舉行的;

3、幾乎所有的冠軍都使用了Python,只有一個冠軍使用了C++;

4、77%的深度學習解決方案使用了PyTorch(去年高達72%);

5、所有獲獎的CNN解決方案都使用了CNN;

6、所有獲獎的NLP解決方案都使用了Transformer。

以下是這次調查的詳細資訊:

平臺型別

在本次調查中,作者總共統計了16個平臺上的83場競賽。這些競賽的總獎金池超過270萬美元,其中獎金最豐厚的比賽是由Driven data舉辦的Facebook AI Image Similarity Challenge: Matching Track,獎金高達20萬美元。

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

競賽型別

此次調查顯示,2021年最常見的競賽型別是計算機視覺和自然語言處理。與2020年相比,這部分變化很大,當時NLP競賽僅佔競賽總數的7。5%。

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

在眾多NLP競賽中,Zindi與AI4D(Artificial Intelligence for Development Africa)合作舉辦的競賽數量最多,比賽內容包括將一種非洲語言翻譯成英語或其他語言以及針對一種非洲語言進行情感分析。

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

語言與框架

在這次調查中,主流的機器學習框架依然是基於Python的。Scikit-learn非常通用,幾乎被用於每個領域。

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

不出所料,兩個最流行的機器學習庫是Tensorflow和Pytorch。其中,Pytorch在深度學習比賽中最受歡迎。與2020年相比,在深度學習競賽中使用PyTorch的人數突飛猛進,PyTorch框架每年都在快速發展。

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

冠軍模型

監督學習

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

在經典機器學習問題中,Catboost、LightGBM等梯度提升模型佔據主流。

舉個例子,在一個室內定位和導航的Kaggle競賽中,選手需要設計算法,基於實時感測器資料預測智慧手機在室內的位置。冠軍解決方案考慮了三種建模方法:神經網路、LightGBM和K-Nearest Neighbors。但在最後的pipeline中,他們只用LightGBM和K-Nearest Neighbours達到了最高分。

計算機視覺

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

自從AlexNet在2012年贏得ImageNet競賽以來,CNN演算法已經成為很多深度學習問題都在用的演算法,特別是在計算機視覺方面。

迴圈神經網路和卷積神經網路並不相互排斥。儘管它們似乎被用來解決不同的問題,但重要的是這兩個架構都可以處理某些型別的資料。例如,RNN使用序列作為輸入。值得注意的是,序列並不侷限於文字或音樂。影片是影象的集合,也可以用作序列。

迴圈神經網路,如LSTM,被用於資料具有時間特徵的情況(如時間序列),以及資料上下文敏感的情況(如句子補全),其中反饋迴圈的記憶功能是達到理想效能的關鍵。RNN還在計算機視覺的下列領域中得到了成功的應用:

「日間圖片」與「夜間圖片」是影象分類的一個例子(一對一RNN);

影象描述(一對多RNN)是根據影象的內容為影象分配標題的過程,例如「獅子獵鹿」;

手寫體識別;

最後,RNN和CNN的結合是可能的,這可能是計算機視覺的最先進的應用。當資料適合CNN,但包含時間特徵時,混合RNN和CNN的技術可能是有利的策略。

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

在其他架構中,EfficientNet脫穎而出,因為它專注於提高模型的準確性和效率。EfficientNet使用一種簡單而有效的技術——複合係數(compound coefficient)來放大模型,使用縮放策略建立了7個不同維度的模型,其精度超過了大多數卷積神經網路的SOTA水平。

NLP

像2020年一樣,2021年NLP領域大型語言模型(如Transformer)的採用比例顯著增加,創歷史新高。作者找到了大約6個NLP解決方案,它們全都基於transformer。

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

獲勝團隊情況

作者在資料集中追蹤了35場比賽的獲勝者。其中,只有9人之前從未在比賽中獲獎。與2020年相比,可以看到贏得很多比賽的老參與者一次又一次獲勝,只有少數幾人首次得獎,在百分比上沒有真正明顯的變化。

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

優勢方案

在機器學習競賽的優勝方案中,整合模型成為了首選方法之一。整合方法中最常用的方法是求平均,即構建多個模型並透過將輸出和的平均值相加將其組合在一起,從而達到更穩健的效能。

在調整一個模型時,一旦你達到了一個收益率下降的點,通常最好重新開始構建一個產生不同型別錯誤的新模型,並將它們的預測求平均。

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

整合方法應用示例

在一個kaggle「木薯葉病分類」比賽中,選手要將木薯葉子影象分類為健康或四類疾病。冠軍解決方案包括4個不同的模型CropNet、EfficientNet B4、ResNext50和Vit,並採用了平均方法。

獲勝者從ResNext和ViT模型中取類權重的平均值,並在第二階段將這種組合與MobileNet和EfficientnetB4結合。

Kaggle大神們都在用什麼語言、框架、模型?這裡有一份詳細統計

TAG: 競賽模型比賽CNNNLP