天天看點

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大神們都在用什麼語言、架構、模型?這裡有一份詳細統計

繼續閱讀