<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          年輕人的第一塊金牌:我是如何成為 Kaggle 全網(wǎng)第一的

          共 3592字,需瀏覽 8分鐘

           ·

          2021-11-20 00:08



          點擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時間送達(dá)

          能在 Kaggle 競賽中取得金牌已經(jīng)是一項挑戰(zhàn)了,而成為 Kernel Grandmaster 甚至是可遇不可求。而近日,畢業(yè)于莫斯科國立大學(xué)的數(shù)據(jù)科學(xué)家Andrey Lukyanenko在一次競賽中達(dá)成Kaggle金牌,并在Kernel Grandmaster排名全網(wǎng)第一。本文是他的心路歷程。


          參加Kaggle競賽對于任何人來說都是一項嚴(yán)峻的挑戰(zhàn)。你需要花費大量時間和精力來學(xué)習(xí)新知識、嘗試新技巧,努力獲得高分。但這些往往還是不夠,因為你的競爭對手可能擁有更多經(jīng)驗、更多空閑時間、更多硬件甚至其他莫名其妙的優(yōu)勢。



          但是,獲得 Kaggle 金牌,甚至取得全網(wǎng)第一的排名似乎也不是完全不可能。一位來自俄羅斯的數(shù)據(jù)科學(xué)家就寫下了他的心得,供讀者參考。

          以下為原文內(nèi)容:

          雖然剛剛在競賽中拿下第一塊金牌,但Lukyanenko已經(jīng)在Kernel上排名第一了。

          以前,我能在一些競賽中獲得銀牌,有時歸功于運氣,有時得益于自己做了大量工作。但盡管我花費了大量時間,還是只能在很多競賽中獲得銅牌(甚至一無所獲)。

          競賽回顧

          當(dāng)看到一場新的競賽將于5月底啟動時,我就立即對它產(chǎn)生了興趣。這是一場特定領(lǐng)域的競賽,旨在預(yù)測分子中各原子之間的相互作用。

          眾多周知,核磁共振(NMR)技術(shù)利用類似于MRI的原理來了解蛋白質(zhì)和分子的結(jié)構(gòu)與動態(tài)。全世界的研究人員進(jìn)行NMR實驗來進(jìn)一步了解跨環(huán)境科學(xué)、藥物科學(xué)和材料科學(xué)等領(lǐng)域的分子的結(jié)構(gòu)與動態(tài)。

          在此次競賽中,選手們試圖預(yù)測一個分子中兩個原子之間的磁相互作用(標(biāo)量耦合常數(shù))。當(dāng)前量子力學(xué)最先進(jìn)的方法可以計算這些耦合常數(shù),并且只需要一個3D分子結(jié)構(gòu)作為輸入即可。但這些計算會耗費大量資源,所以不常使用。

          因此,如果機(jī)器學(xué)習(xí)方法可以預(yù)測這些值,則能夠真正地幫助藥物化學(xué)家洞見分子結(jié)構(gòu),并且速度更快、成本也更低。

          競賽之初


          就自身而言,我通常會為新的Kaggle競賽編寫EDA內(nèi)核,所以這次也不例外。在這一過程中,我發(fā)現(xiàn)這次競賽非常有意思,也非常特別。我們獲得了有關(guān)分子及其內(nèi)部原子的信息,所以可以使用圖來表征分子。Kaggle競賽中常見的表格數(shù)據(jù)處理方法是利用大量的特征工程和構(gòu)建梯度提升模型。



          在最初的嘗試中,我也使用了LGB,但知道還有更好的方法來處理圖。這種挑戰(zhàn)令我著迷,所以決定認(rèn)真參與到競爭之中。

          我沒有一點相關(guān)領(lǐng)域知識(上一次看化學(xué)式還是在學(xué)校時),所以我決定完全使用機(jī)器學(xué)習(xí)技術(shù):大量特征工程、創(chuàng)建折外元特征(out-of-fold meta-feature)等等。和往常一樣,我在Kernels上公開了自己的工作。從下圖中你可以看到,它們很受歡迎。



          這次,該方法在leaderboard上取得了相當(dāng)好的得分,我也得以保持白銀段位。

          此外,追蹤當(dāng)前一些最新的Kaggle Kernels和論壇觀點也非常重要。

          其中真正幫到我的是論壇和Kaggle Kernels。從競賽開始直至結(jié)束,我瀏覽了所有的Kernels和論壇帖子,這其中包含很多不容錯過的有用信息。即使是一些不太流行的Kernels也會包含有趣的新功能。論壇帖子里會有其他人的一些觀點,這也有助于提高競賽分?jǐn)?shù)。

          組建團(tuán)隊

          幾乎從一開始,我就意識到,領(lǐng)域?qū)I(yè)知識將為團(tuán)隊帶來很大優(yōu)勢,因此我尋找每一條這樣的信息。當(dāng)然,我關(guān)注了幾個活躍的專家并拜讀了他們撰寫的文章以及創(chuàng)建的kernels。

          有一天,我收到了Boris的一封郵件,他是這一領(lǐng)域的專家,認(rèn)為我們的技能可以實現(xiàn)互補(bǔ)。通常來說,我喜歡在比賽中單打獨斗,但這一次,團(tuán)隊合作似乎是更好的選擇。事實證明的確如此。


          合并方法

          起初,我們的方法存在很大分歧。我用的是特征工程技術(shù),而Boris則致力于創(chuàng)建描述符。一段時間之后,我們發(fā)現(xiàn)我的模型在一些原子對類型上表現(xiàn)更好,而他的模型在其他情況下表現(xiàn)更佳,因為我們?yōu)椴煌念愋陀?xùn)練了不同的模型。

          幸運的是,Psilogram加入了我們的團(tuán)隊。沒過多久,他的模型就表現(xiàn)出了優(yōu)于我們模型的性能。另一名成員Bojan幫助我們進(jìn)一步改進(jìn)了結(jié)果。他們都是很棒的機(jī)器學(xué)習(xí)專家。


          圖神經(jīng)網(wǎng)絡(luò)



          那時我們已經(jīng)看到了神經(jīng)網(wǎng)絡(luò)在此次競賽中的潛力:著名的kaggle大師Heng發(fā)布過一個MPNN模型的例子。



          一段時間之后,我甚至可以在自己的PC上運行這個模型,但是結(jié)果并不如LGB模型。但無論如何,現(xiàn)在我的團(tuán)隊知道了,如果想達(dá)到更高的目標(biāo),我們需要使用這些神經(jīng)網(wǎng)絡(luò)。

          我們讓Christof加入我們的團(tuán)隊,他能很快構(gòu)建出一個新的神經(jīng)網(wǎng)絡(luò)。因此,我們停止訓(xùn)練LGB,因為LGB遠(yuǎn)遠(yuǎn)比不上Christof構(gòu)建的神經(jīng)網(wǎng)絡(luò)。


          神經(jīng)網(wǎng)絡(luò)的時代


          從那時起,我在團(tuán)隊中的角色就變成了輔助。我用我們的神經(jīng)網(wǎng)絡(luò)進(jìn)行了多次實驗:嘗試使用不同的超參數(shù)和不同的架構(gòu),對訓(xùn)練計劃和損失進(jìn)行微小的調(diào)整等。有時,我會基于我們的預(yù)測進(jìn)行EDA,以發(fā)現(xiàn)好的和不好的例子,然后利用這些信息進(jìn)一步改進(jìn)模型。


          尋找新的方法是我的主要貢獻(xiàn)之一


          • 我看了很多關(guān)于神經(jīng)網(wǎng)絡(luò)架構(gòu)的論文,包括EAGCN、3DGNN等;

          • 我嘗試了不同的損失函數(shù),如Huber。我甚至找到了一篇用于回歸的焦點損失函數(shù)論文,但實現(xiàn)起來并不可行;

          • 當(dāng)然,我還嘗試了RAdam、Ranger等新的熱門優(yōu)化器,但簡單的Adam在此次競賽中更加好用。

          • 但最后,還是Christof實現(xiàn)了架構(gòu),這給我留下了非常深刻的印象,也令我頗受啟發(fā)。


          硬件

          好的硬件對于訓(xùn)練這些神經(jīng)網(wǎng)絡(luò)來說非常重要。我們用到了很多硬件,但我們也經(jīng)常用kaggle kernels:你可以用P100以相同的時間在4個kaggle kernels中訓(xùn)練模型,所以即使沒有額外的硬件,我們也可以拿到金牌。


          結(jié)果和結(jié)論


          我們最后的解決方案拿到了第八名,贏得了金牌。


          值得一提的是,我們的團(tuán)隊可以獲得比-3 Imae更好的分?jǐn)?shù)(平均所有類型的絕對值誤差對數(shù))。在這個帖子中,樓主表示達(dá)到-3是一個驚人的成就:https://www.kaggle.com/c/champs-scalar-coupling/discussion/98375#569312

          事實上,我們做到了!


          總結(jié)


          從這次競賽中我學(xué)習(xí)到了很多東西,總體來說,想要在Kaggle上成功我們需要:

          • 瀏覽Kernel和論壇,其中會提供大量有用的信息;

          • 準(zhǔn)備好屢敗屢戰(zhàn)。當(dāng)你試圖找到一種可以提高分?jǐn)?shù)的方法時,大多數(shù)是行不通的,但不要氣餒;

          • 不斷尋找新的想法、新的論文和核心的文章。你永遠(yuǎn)不會知道下一個神奇工具會從哪里出現(xiàn);

          • 在團(tuán)隊內(nèi)構(gòu)建一個驗證效果的機(jī)制,從而令工作結(jié)果更加直觀;

          • 一個強(qiáng)大的團(tuán)隊是由很多不同特長的人組成的,我們應(yīng)該涵蓋不同領(lǐng)域;

          • Kaggle比賽非常具有挑戰(zhàn)性,當(dāng)然在這個過程中我們也可以收獲諸多樂趣:)


          我很幸運可以和這些了不起的人一同工作,感謝他們!


          原文鏈接:https://towardsdatascience.com/a-story-of-my-first-gold-medal-in-one-kaggle-competition-things-done-and-lessons-learned-c269d9c233d1


          —完—

          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺」公眾號后臺回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實戰(zhàn)項目52講
          小白學(xué)視覺公眾號后臺回復(fù):Python視覺實戰(zhàn)項目即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學(xué)校計算機(jī)視覺。

          下載3:OpenCV實戰(zhàn)項目20講
          小白學(xué)視覺公眾號后臺回復(fù):OpenCV實戰(zhàn)項目20講即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


          瀏覽 37
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  feifeibebe | 日韩亚洲欧美中文高清在线 | 操逼视频动漫 | 熟女18p| 羞羞午夜|