0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Kaggle大師訪談:他是怎么馳騁機(jī)器學(xué)習(xí)競賽的

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-11-16 09:17 ? 次閱讀

編者按:早在90年代中期,國外一些論壇上就出現(xiàn)了一種另類訪談活動(dòng):Ask Me Anything(AMA)。發(fā)起AMA后,任何網(wǎng)友都能在留言中寫出自己想要對方回答的一個(gè)問題,之后接受采訪的對象會(huì)視情況作出解答。近日,Reddit、Kaggle和science.d3.ru三個(gè)論壇的網(wǎng)友對獲得Kaggle Grandmaster頭銜的Lyft計(jì)算機(jī)視覺工程師Vladimir Iglovikov發(fā)起了AMA,讓我們一起去探尋他是怎么馳騁機(jī)器學(xué)習(xí)競賽的。

Vladimir Iglovikov

大家好,我是Vladimir Iglovikov。

自從在大學(xué)拿到理論物理學(xué)的學(xué)位后,我就輾轉(zhuǎn)到硅谷想成為一名數(shù)據(jù)科學(xué)家。我現(xiàn)在任職于Lyft的自動(dòng)駕駛汽車部門,主要從事計(jì)算機(jī)視覺方面的相關(guān)應(yīng)用。

在過去的幾年里,我在機(jī)器學(xué)習(xí)競賽中投入了大量時(shí)間。一方面,它非常有趣;另一方面,它也是提高個(gè)人數(shù)據(jù)科學(xué)水平的一種非常有效的方式。我不會(huì)說所有競賽都很簡單,也不會(huì)吹噓自己在所有競賽里都取得了不錯(cuò)的成績。但有時(shí)候我也能觸及巔峰,這是我最終能得到“Kaggle Grandmaster”這個(gè)頭銜的原因。

在這里,我想感謝@Lasteg發(fā)起了這個(gè)AMA,并收集了Reddit、Kaggle和science.d3.ru(俄語)上的提問。大家的問題有很多,在下面,我會(huì)選擇性地盡力做一些回答。

以下是我(本人和團(tuán)隊(duì))曾參與過的一些名次還不錯(cuò)的深度學(xué)習(xí)競賽:

第10名:Ultrasound Nerve Segmentation(超聲神經(jīng)分割)

第3名:Dstl Satellite Imagery Feature Detection(Dstl衛(wèi)星圖像特征檢測

第2名:Safe passage: Detecting and classifying vehicles in aerial imagery(安全通道:航空影像中的車輛檢測與分類)

第7名:Kaggle: Planet: Understanding the Amazon from Space(Planet:從太空了解亞馬遜

第1名:MICCAI 2017: Gastrointestinal Image ANAlysis (GIANA)(胃腸內(nèi)窺鏡圖像分析)

第1名:MICCAI 2017: Robotic Instrument Segmentation(內(nèi)窺鏡視野內(nèi)機(jī)器人儀器分割)

第1名:Kaggle: Carvana Image Masking Challenge(自動(dòng)識(shí)別圖像中汽車的邊界)

第9名:Kaggle: IEEE’s Signal Processing Society?—?Camera Model Identification(IEEE信號(hào)處理學(xué)會(huì) - 相機(jī)模型識(shí)別)

第2名:CVPR 2018 Deepglobe. Road Extraction(道路提?。?/p>

第2名:CVPR 2018 Deepglobe. Building Detection(建筑提取)

第3名:CVPR 2018 Deepglobe. Land Cover Classification(土地覆被提?。?/p>

第3名:MICCAI 2018: Gastrointestinal Image ANAlysis (GIANA)(胃腸內(nèi)窺鏡圖像分析)

問:除了數(shù)據(jù),你有其他的生活嗎?

是的,我有。

我喜歡當(dāng)背包客和攀巖。如果你早晨也去舊金山的Mission Cliffs室內(nèi)攀巖館攀巖,下次見面時(shí)我們可以打個(gè)招呼。我也喜歡和人一起跳舞伴舞,特別是Blues Fusion舞曲,我經(jīng)常光顧舊金山的Mission Fusion和South Bay Fusion。

旅游也是我生活中很重要的一部分。今年春天,我去了白俄羅斯、摩洛哥和約旦。9月,我又在芬蘭、德國和奧地利度過了三個(gè)星期。當(dāng)然,今年最好的體驗(yàn)還是黑石城的2018火人節(jié)。

問:你的身高和體重是多少?

6英尺(1米8),185磅(84公斤)。

我覺得這個(gè)問題的答案可能和鍛煉有關(guān),下面是我在校期間的一些力量舉重?cái)?shù)據(jù):

最大臥推:225磅

最大深蹲:315磅

最大硬拉:405磅

問:你是怎么做到既擁有全職工作,又全天候參加Kaggle競賽的?

在我眼里,參加Kaggle競賽就是我的第二份全職工作(無償),這么做的理由很充分——Kaggle上的活躍用戶通常都在尋求轉(zhuǎn)變,我也不例外。當(dāng)我從學(xué)術(shù)界轉(zhuǎn)向工業(yè)界時(shí),我就開始參加競賽。我需要一種有效的方法來測試ML算法是否適合解決一些潛在問題,需要用它來提升自己的工具使用熟練度,需要把我的思維方式擴(kuò)展到機(jī)器學(xué)習(xí)的新世界。

后來,當(dāng)我在Bidgely找到第一份工作后,我更加注重Kaggle競賽的參與。那時(shí)我白天在做信號(hào)處理任務(wù),晚上則徹夜沉迷在表格數(shù)據(jù)的競爭中。我其實(shí)沒有很好地平衡工作和生活,但每分每秒獲得知識(shí)量告訴我:這么做是值得的。

等到某個(gè)時(shí)間點(diǎn),我知道自己已經(jīng)準(zhǔn)備好迎接新階段了,我就跳槽到了TrueAccord,在那里,我可以做很多傳統(tǒng)機(jī)器學(xué)習(xí)工作。但停止參加Kaggle還是不明智的。于是我把白天用來做傳統(tǒng)機(jī)器學(xué)習(xí),把夜間和周末用來做深度學(xué)習(xí),工作與生活的平衡更糟糕了。盡管如此,我還是學(xué)到了很多東西,也順勢成了Kaggle Master。當(dāng)我能在Lyft獲得一份Level5的工作時(shí),所有努力都得到了回報(bào)——對于深度學(xué)習(xí)而言,自動(dòng)駕駛是一個(gè)非常重要的應(yīng)用領(lǐng)域。

最后,現(xiàn)在的我并沒有全天候參加Kaggle競賽,但我還在努力學(xué)習(xí)。我的工作中有許多令人興奮的計(jì)算機(jī)視覺問題,我正試圖在Kaggle未涵蓋的領(lǐng)域獲得更多知識(shí)。當(dāng)然,我還是會(huì)向各種競賽提交自己的作品,但這主要是為了更好地理解參與者面臨的問題和挑戰(zhàn)。只有理解參賽者,我才能更深刻地從論壇分享的信息中汲取經(jīng)驗(yàn)。

問:你覺得哪些日常安排可以幫你提升效率?你是怎么安排自己的一天的?

首先,我不確定自己是不是很有效率。:)我一直在尋找一種新的方法來優(yōu)化我的日程。

在日常生活中,一個(gè)人需要做的事總比他想做的事多得多,而且它們還不一定是有用的、令人愉快的。這意味著我總要先考慮該做什么。有幾本書對這個(gè)問題進(jìn)行了很好的討論,這里我把它們推薦給想提高自己效率的人:

So Good They Can’t Ignore You: Why Skills Trump Passion in the Quest for Work You Love

Deep Work: Rules for Focused Success in a Distracted World

在工作日,我會(huì)在早上6點(diǎn)起床,然后去攀巖館攀巖,這有助于我保持身材和清醒頭腦。攀完巖我就開車去上班。公司的自動(dòng)駕駛工程中心在Palo Alto,這讓喜歡住在城里的我有點(diǎn)憂傷。開車很有趣,但通勤很無聊。為了更有成效地度過通勤時(shí)間,我會(huì)在車上聽有聲讀物。這不是說我在上下班途中可以專注于閱讀,這些讀物往往包含有用的非技術(shù)技能和商業(yè)導(dǎo)向,非常適合開車時(shí)聽。

我也很想在工作和生活之間保持平衡,但目前還沒做到這點(diǎn)——盡管我還是會(huì)花很多時(shí)間和朋友聚會(huì)或參加其他活動(dòng),不過幸好它們中的大多數(shù)是在舊金山舉行的。與此同時(shí),我還需要學(xué)習(xí),需要保持在機(jī)器學(xué)習(xí)領(lǐng)域的競爭力。這不僅涉及我在辦公室的前途,也影響著更長遠(yuǎn)的東西。所以我會(huì)在晚上花些時(shí)間閱讀技術(shù)論文,編寫競賽、業(yè)余項(xiàng)目和開源項(xiàng)目的代碼。

談到開源項(xiàng)目,我想借此機(jī)會(huì)推廣一個(gè)圖像增強(qiáng)庫。這是我和Alexander Buslaev、Alex Parinov、Eugene Khvedchenia從計(jì)算機(jī)視覺挑戰(zhàn)工作中總結(jié)出來的。

最后,為了回答這個(gè)問題,我想我還是得提供一些具體的技巧:

比起MacBook,我更喜歡Ubuntu + i3——個(gè)人表現(xiàn)加成10%。

我不常用Jupyter Notebook,只會(huì)在做EDA和可視化時(shí)偶爾用用。模型的幾乎所有代碼都是我自己編寫的,寫代碼工具是PyCharm,檢查代碼的工具是flake8,完成后再把代碼托管到GitHub上。很多機(jī)器學(xué)習(xí)問題其實(shí)很相似,所以投資一個(gè)沒有太多重復(fù)內(nèi)容、更優(yōu)質(zhì)的代碼庫會(huì)有助于加快項(xiàng)目進(jìn)度,讓你贏在起點(diǎn)。

我會(huì)盡量手動(dòng)編寫單元測試。很多人都認(rèn)可單元測試在數(shù)據(jù)科學(xué)中的重要性,但并不是每個(gè)人都會(huì)花時(shí)間來編寫它們。關(guān)于這方面的內(nèi)容,Alex Parinov寫了一篇很好的文檔,詳細(xì)介紹了從簡單到復(fù)雜的入門方法。如果你準(zhǔn)備參加Kaggle競賽,你可以先參考他的做法,在管道里添加更多測試。

目前我正在嘗試用DVC進(jìn)行模型的版本控制,我希望這能讓模型管道和代碼更具重復(fù)利用性。

我會(huì)避免過多地使用鼠標(biāo),有時(shí)候,這也意味著我得把設(shè)置好的熱鍵寫在紙上,把紙放在面前,然后盡可能多地使用它們。

我不用社交網(wǎng)絡(luò)。

我每天只會(huì)查看幾次電子郵件。

每天早上,我都會(huì)用Trello為自己創(chuàng)建這一天里可以完成的任務(wù)列表,然后嘗試去完成它們。

我會(huì)避免讓自己的一天過于碎片化,因?yàn)樵S多任務(wù)需要專注投入,過于頻繁地轉(zhuǎn)換焦點(diǎn)沒有益處。

這些建議都很常規(guī),但我實(shí)在想不起來自己有什么“獨(dú)門”技巧:)

問:你是怎么追趕當(dāng)前領(lǐng)域的技術(shù)前沿的?

我并不覺得自己趕上了前沿。如今機(jī)器學(xué)習(xí)領(lǐng)域正值蓬勃發(fā)展,我們有讀不盡的論文、競賽、博客文章和書籍。每當(dāng)我遇到一個(gè)新問題,我就會(huì)專注于查看它的最新進(jìn)展并進(jìn)行深入研究。讀懂解答后,我就會(huì)切換到下一個(gè)。因此,我在自己沒有上手經(jīng)驗(yàn)的東西上反而更貼近前沿,我個(gè)人覺得這一點(diǎn)倒是可以接受的。

與此同時(shí),對于那些需要深厚專業(yè)背景且我有實(shí)踐經(jīng)驗(yàn)的地方,我也有一張問題清單,只是這份清單太長了,而且正在變得越來越長。這個(gè)事實(shí)讓我感到安心,因?yàn)槲业乃饺藃epo就像一個(gè)代碼“百寶箱”,能讓我在開始任何新機(jī)器學(xué)習(xí)任務(wù)時(shí)輕松上手。而且這也意味著對于許多問題,我已經(jīng)實(shí)現(xiàn)了非常強(qiáng)大的管道,可以在下次遇到類似問題時(shí)加快進(jìn)度。

我也參加NIPS、CVPR等會(huì)議,大會(huì)上展示的結(jié)果是對我們現(xiàn)在可以做什么、不可以做什么的風(fēng)向指引。

問:幾年前(比如4-5年前),非ML領(lǐng)域的Ph.D(如物理、機(jī)械工程等)在求職市場上可能有很大優(yōu)勢,但現(xiàn)在情況好像不一樣了,如果一個(gè)ML工程/開發(fā)崗?fù)瑫r(shí)有兩個(gè)人來應(yīng)聘,一個(gè)是非ML方向的Ph.D,一個(gè)是ML方向的碩士,IT/ML行業(yè)似乎都更喜歡后者。你本人是物理學(xué)的Ph.D,之后轉(zhuǎn)行到了機(jī)器學(xué)習(xí),也許在這個(gè)問題上有更深刻的認(rèn)識(shí)。

所以你對非ML方向的Ph.D轉(zhuǎn)行機(jī)器學(xué)習(xí)這件事怎么看?他的學(xué)位有助于求職嗎?和ML方向的碩士相比,這些Ph.D在求職中會(huì)有哪些優(yōu)勢?

這是個(gè)難題,我并不知道具體答案,但我會(huì)盡力說出自己的想法。

物理學(xué)是一門偉大的專業(yè)。即便我現(xiàn)在可以回到過去,在物理和CS之間重新做出選擇,我還是會(huì)在明知自己會(huì)轉(zhuǎn)行CS的情況下繼續(xù)選擇讀物理。

當(dāng)然,這么做的主要原因是我對物理學(xué)和自然科學(xué)很感興趣。機(jī)器學(xué)習(xí)能告訴你我們身邊這個(gè)浩瀚無垠、豐富多彩、趣味無窮的宇宙是怎么運(yùn)轉(zhuǎn)的嗎?顯然不行,但物理可以!而且它能做的不止于此!我從物理學(xué)轉(zhuǎn)行機(jī)器學(xué)習(xí)的一個(gè)理由是門檻不高,因?yàn)槲锢碜鳛橐婚T專業(yè),它教授的不只是量子力學(xué)、相對論、量子場論和其他高度專業(yè)化的知識(shí),它也涉及數(shù)學(xué)、統(tǒng)計(jì)學(xué)和編程技能。這些知識(shí)是我輕松轉(zhuǎn)到其他領(lǐng)域的重要橋梁。

物理能教會(huì)你以有條理的方式在嚴(yán)謹(jǐn)?shù)睦碚摵蛯?shí)驗(yàn)之間進(jìn)行操作,這也應(yīng)該是機(jī)器學(xué)習(xí)從業(yè)者的基本素養(yǎng)。如果一個(gè)人上不了大學(xué),他是幾乎不可能以自學(xué)的方式學(xué)會(huì)物理和高等數(shù)學(xué)的。這也使我堅(jiān)信,深度學(xué)習(xí)的下一個(gè)重大突破將是機(jī)器學(xué)習(xí)與高等數(shù)學(xué)、物理、化學(xué)及其他前沿領(lǐng)域高度融合后的產(chǎn)物。畢竟現(xiàn)在計(jì)算機(jī)視覺任務(wù)要用到的數(shù)學(xué)只是大一水平。

以上這些都說明,數(shù)學(xué)并不是入門機(jī)器學(xué)習(xí)的門檻,從業(yè)者的過分“偏科”也正是數(shù)學(xué)、物理、化學(xué)和其他STEM學(xué)科的知識(shí)幾乎無法被用于解決業(yè)務(wù)問題的原因,是這些專業(yè)的畢業(yè)生感到自己被背叛了的原因。他們都具備很多專業(yè)知識(shí),甚至有博士學(xué)位,他們在學(xué)術(shù)界度過了很多年,但是都得不到一份有意義的高薪工作。

另一方面,現(xiàn)在編程技能在任何地方都必不可少,這也是當(dāng)一個(gè)精通數(shù)學(xué)的人和一個(gè)會(huì)寫代碼的人同時(shí)求職時(shí),雇主更喜歡選第二個(gè)人的原因。

但我相信情況會(huì)發(fā)生變化。不是現(xiàn)在,而在未來的某個(gè)時(shí)間點(diǎn)。重要的是大家需要先認(rèn)清一個(gè)現(xiàn)實(shí),就是你在大學(xué)里讀的論文、上的課和你在工作中會(huì)用到技能可能不會(huì)直接相關(guān)。但這不會(huì)是一個(gè)大問題。通常情況下,你需要先了解工業(yè)界數(shù)據(jù)科學(xué)家/軟件開發(fā)者的工作內(nèi)容,如果實(shí)在沒法在大學(xué)進(jìn)修,你可以自學(xué)。很多從業(yè)者其實(shí)都是在工作后才學(xué)到那么多東西的。

就我個(gè)人經(jīng)歷而言,當(dāng)我在研究數(shù)據(jù)科學(xué)的同時(shí)準(zhǔn)備理論物理學(xué)論文時(shí),找工作確實(shí)給了我不小的壓力。我沒有數(shù)據(jù)科學(xué)家這個(gè)崗位所必需的知識(shí),也不懂硅谷的工作流程,更不了解企業(yè)對我的期望。就是這樣一個(gè)一無所知的我,堅(jiān)持不停把自己的簡歷一次次投遞給不同的公司,經(jīng)歷了一輪又一輪的面試失敗,并從每一次失敗中學(xué)習(xí)經(jīng)驗(yàn),直至通過面試。

我記得有一次被問到論文寫了什么,當(dāng)時(shí)我用到了量子蒙特卡洛方法,于是試圖向面試官解釋它是什么、為什么要用它。聽完我的敘述,面試官看著我問道:“這種技術(shù)能怎么幫助我們提高客戶參與度呢?”

所以對于那些非CS專業(yè)人士來說,最有希望的方法是去旁聽計(jì)算機(jī)系的數(shù)據(jù)科學(xué)課程,并在空閑時(shí)間自學(xué)數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)。幸運(yùn)的是,現(xiàn)在有很多這方面的優(yōu)秀資源。比如你可以在自己專業(yè)內(nèi)找一個(gè)想在研究里采用機(jī)器學(xué)習(xí)方法的教授,或是去科技公司申請ML相關(guān)的實(shí)習(xí)崗,獲得實(shí)習(xí)機(jī)會(huì)比直接拿到全職offer容易多了,也更容易轉(zhuǎn)正。

一般來說,你不應(yīng)該高估專業(yè)、大學(xué)對自己就業(yè)的影響。當(dāng)一家公司雇用你時(shí),他們的設(shè)想就是付給你錢讓你幫他們解決所面臨的問題。你的學(xué)位和專業(yè)只是評(píng)估你個(gè)人能力的一個(gè)指標(biāo)。當(dāng)然,如果HR沒能從你的簡歷里看到想要的東西,你就很容易被篩掉,你可能建立的人脈網(wǎng)絡(luò)——對求職很重要——也會(huì)出現(xiàn)斷裂。但是,這不應(yīng)該影響你選擇什么專業(yè)。

也許我還是太天真了,但是一個(gè)人之所以會(huì)選擇這個(gè)專業(yè),不是因?yàn)樗懈咝骄蜆I(yè)前景,而是因?yàn)槟銓@個(gè)領(lǐng)域充滿激情。

問:你覺得數(shù)據(jù)科學(xué)/機(jī)器學(xué)習(xí)領(lǐng)域最有趣的問題在哪一方面?我已經(jīng)完成了近半碩士學(xué)習(xí),但卻發(fā)現(xiàn)自己還沒想好要深入哪一個(gè)子領(lǐng)域。我之前和人聊過這個(gè)問題,他斷言未來最有前景的會(huì)是算法開發(fā)和scaling(剛好和數(shù)據(jù)科學(xué)/機(jī)器學(xué)習(xí)這種調(diào)用庫的不同)。你對此有什么看法?或者你有什么關(guān)于靈活就業(yè)的建議?

我想說數(shù)據(jù)科學(xué)/機(jī)器學(xué)習(xí)領(lǐng)域中最有趣的問題遠(yuǎn)不是今天的主流問題。主流問題研究現(xiàn)在已經(jīng)人滿為患了——把機(jī)器學(xué)習(xí)用于信用評(píng)分、推薦系統(tǒng)、零售和其他任務(wù)——我們已經(jīng)受夠了把數(shù)據(jù)映射到資金。試想一下,如果你能把機(jī)器學(xué)習(xí)用于數(shù)學(xué)、物理學(xué)、生物學(xué)、化學(xué)、歷史、考古學(xué)、地質(zhì)學(xué)或任何其他人沒有嘗試過的領(lǐng)域,那么你可能就會(huì)發(fā)現(xiàn)自己的那一頭Purple Cow(Yahoo前營銷總監(jiān)Seth Godin提出的概念)。

關(guān)于職業(yè)選擇,和生物學(xué)、物理學(xué)不同,你在數(shù)據(jù)科學(xué)/機(jī)器學(xué)習(xí)領(lǐng)域?qū)W到的技能允許你輕松從一個(gè)領(lǐng)域轉(zhuǎn)移到另一個(gè)領(lǐng)域。當(dāng)然,開發(fā)銀行/對沖基金的交易算法和開發(fā)自動(dòng)駕駛汽車的算法不一樣,但它們的差別也不是很大,只要基礎(chǔ)過硬,你就能很快掌握必需技巧。

問:30歲非數(shù)學(xué)/CS背景的人搞機(jī)器學(xué)習(xí)是不是太晚了?還是剛好能趕上末班車?如果能趕上,你覺得最低要求是什么?

當(dāng)然為時(shí)不晚。機(jī)器學(xué)習(xí)里有近90%的技術(shù)只要求大一的數(shù)學(xué)知識(shí),所以你不需要多精通數(shù)學(xué)。數(shù)據(jù)科學(xué)中使用最廣泛的語言是Python和R,它們都是高級(jí)語言,可以輕松上手。

我建議你可以適當(dāng)上一些在線課程,并開始研究Kaggle競賽。雖然很多概念聽上去很陌生,但只要你有足夠的恒心和決心,一切都會(huì)水到渠成。

和年齡相關(guān)的兩個(gè)典例:

Kaggle Grandmaster Evgeny Patekha:四十歲才開始數(shù)據(jù)科學(xué)生涯

Kaggle Grandmaster Alexander Larko:五十五歲才開始參加Kaggle競賽

問:你覺得技術(shù)領(lǐng)域的正規(guī)基礎(chǔ)教育對于在數(shù)據(jù)科學(xué)和Kaggle競賽里取得成功很重要嗎?你有沒有遇到過反例?

有用是肯定有用的,但也有很多人雖然沒怎么接受過基礎(chǔ)教育,在競賽里仍然取得了好成績。一個(gè)典型的例子是Mikel Bober-Irizar,他是Kaggle Grandmaster,但還在念高中。

另一個(gè)值得關(guān)注的點(diǎn)是,你在Kaggle上學(xué)到的技能只是你在工業(yè)界、學(xué)術(shù)界工作時(shí)所需技能的一小部分。對于那些沒有涉及的知識(shí),基礎(chǔ)教育可以為你提供。

總而言之,即便你高中肄業(yè),你也可以橫行Kaggle。

問:在不租用云服務(wù)器的情況下,我能用家里的電腦訓(xùn)練出高分競賽模型嗎?

我從不在競賽里用云服務(wù),但我家里確實(shí)有兩臺(tái)性能相對較好的電腦。其中一臺(tái)裝了4塊GPU,另一臺(tái)裝了2塊。雖然沒有好的硬件條件也能在Kaggle上取得好成績,但缺乏算力會(huì)限制你檢驗(yàn)想法的次數(shù)。檢驗(yàn)的想法越多,最終成績可能會(huì)越好。所以如果你得用每周7天、每天24小時(shí)訓(xùn)練模型,我還是建議你投資一下硬件。

同時(shí),擁有一臺(tái)功能強(qiáng)大的機(jī)器是不夠的,你也需要會(huì)編寫可以充分利用它的代碼。

我從Keras換到Pytorch的原因之一是PyTorch中的DataLoader在當(dāng)時(shí)更好用

由于imgaug(圖像增強(qiáng)Python庫)太慢了,我們寫了albumentations,把CPU利用率提到了100%,同時(shí)GPU還有富余空間

為了加快硬盤上jpeg圖像的I/O,我沒有用PIL、skimage和OpenCV,而是用了libjpeg-turbo和PyVips

問:你對數(shù)據(jù)科學(xué)新手參加Kaggle有什么建議嗎?你覺得哪種競賽更適合他們?

參加Kaggle的入門教程有很多,但據(jù)我所知,其中最有效的應(yīng)該遵循以下流程:

觀看一些涵蓋python編程和機(jī)器學(xué)習(xí)基礎(chǔ)知識(shí)的在線課程。

在Kaggle上挑選一個(gè)競賽,如果你能寫一個(gè)端到端的管道進(jìn)行數(shù)據(jù)映射,那再好不過。但這對新手來說可能有點(diǎn)難,所以你也可以照搬別人共享的kernel。

在PC上運(yùn)行模型,生成提交,并在Kaggle排行榜上找到自己的排名。在進(jìn)行這些步驟時(shí),你可能會(huì)第一次感受到操作系統(tǒng)、驅(qū)動(dòng)程序、庫版本、I/O問題給你造成的困擾,你得盡早開始習(xí)慣它。如果這時(shí)你還不了解kernel是什么,沒關(guān)系。

調(diào)參(盲目也行),重新訓(xùn)練模型并提交預(yù)測結(jié)果。不要擔(dān)心,你的競爭者們都在對模型進(jìn)行反復(fù)優(yōu)化,期望得到更好的結(jié)果。

接著就是學(xué)會(huì)有技巧地調(diào)參,在這個(gè)階段,你就要開始掌握機(jī)器學(xué)習(xí)的工作原理和基礎(chǔ)知識(shí),把研究添加進(jìn)實(shí)驗(yàn)中。學(xué)習(xí)的方向有很多,其中第一種是上mlcourse.ai、CS231n這樣的在線免費(fèi)課程,閱讀書籍,學(xué)習(xí)高等數(shù)學(xué)、統(tǒng)計(jì)學(xué),學(xué)會(huì)如何編寫更好的代碼。第二種是盡快掌握和你想要解決的問題相關(guān)的術(shù)語,專注于它們,更高的Kaggle排名就是你最好的動(dòng)力。但是切記不要在研究與實(shí)驗(yàn)之間做出選擇——它們必須同步進(jìn)行。機(jī)器學(xué)習(xí)是一門應(yīng)用學(xué)科,不要把它當(dāng)成純粹的課本知識(shí):沒有實(shí)踐的理論是愚蠢的,沒有理論的實(shí)踐是盲目的。

比賽結(jié)束后,盡管你付出了很多努力,但最終結(jié)果可能并不好。不要?dú)怵H,這是意料之中的。你應(yīng)該多看看論壇,閱讀獲獎(jiǎng)?wù)叻窒淼慕鉀Q方案,嘗試著讓自己有所提到。等下次再遇到相似問題時(shí),你的起點(diǎn)會(huì)更高。

在其它競賽中重復(fù)上述過程,你就可以獲得高分,更重要的是,你積累到了任務(wù)、競賽經(jīng)驗(yàn)和大量代碼和管道。

問:你對Kaggle有些競賽發(fā)生數(shù)據(jù)泄漏有何看法?你覺得利用這個(gè)漏洞合乎道德嗎?

我得承認(rèn),組織比賽是一件非常困難的事,所以當(dāng)泄漏被發(fā)現(xiàn)時(shí),我不會(huì)苛責(zé)組織者。而且對于參賽者利用數(shù)據(jù)泄露這種行為,我覺得可以接受。雖然數(shù)據(jù)泄露會(huì)有損競賽的公平性,但它對我個(gè)人的影響只是我不能把這個(gè)競賽中學(xué)到的東西放到類似問題中。我認(rèn)為Kaggle的管理人員需要?jiǎng)?chuàng)建一個(gè)可能會(huì)發(fā)生數(shù)據(jù)泄漏的競賽清單,并在競賽開始前認(rèn)真檢查數(shù)據(jù),防止同樣的問題一次又一次地發(fā)生,我相信他們正在努力解決這個(gè)問題。

問:作為數(shù)據(jù)科學(xué)工程師,你覺得參加Kaggle競賽有多大用處?

這很難說。參加Kaggle競賽能在一些關(guān)鍵但非常狹窄的領(lǐng)域提升你的技術(shù)水平。它往往考量多種技術(shù)的組合使用,所以對一些崗位可能是非常有益的。但它不是萬金油,就我現(xiàn)在從事的自動(dòng)駕駛汽車領(lǐng)域而言,我從Kaggle上學(xué)到的東西只能作為從其他渠道學(xué)到的技能的一種有力補(bǔ)充。

同樣的,也許你的競賽技術(shù)水平扎實(shí),但那還遠(yuǎn)遠(yuǎn)不夠。很多東西你需要在行業(yè)內(nèi)實(shí)踐過才會(huì)懂。

成為Kaggle Master并不是必要的,這個(gè)頭銜也沒法證明你會(huì)在工作中表現(xiàn)出色。但與此同時(shí),我相信如果一個(gè)人是Kaggle Master,他應(yīng)該能通過HR篩選,得到一個(gè)面試機(jī)會(huì)。

問:如果一個(gè)人沒有數(shù)學(xué)/CS或其他涉及高等數(shù)學(xué)學(xué)科的教育背景,他在Kaggle競賽中的上限是多少(以及更廣泛的數(shù)據(jù)科學(xué)領(lǐng)域)?激情和欲望能讓一個(gè)人走多遠(yuǎn)?

如果你目標(biāo)明確而且有很強(qiáng)的學(xué)習(xí)意識(shí),那無論是Kaggle競賽還是數(shù)據(jù)科學(xué)領(lǐng)域,你一定會(huì)到達(dá)頂尖水平。最艱難的一步始終是第一步,今天,現(xiàn)在,馬上去做!不要說明天,因?yàn)槊魅諒?fù)明日,那意味著永遠(yuǎn)不會(huì)行動(dòng)。

我看了所有問題,沒有人問我該怎么找到一個(gè)可以幫助自己取得更高排名的人,但我認(rèn)為這一點(diǎn)很重要。解決這個(gè)問題最常見的方法是找一些同樣對這個(gè)競賽感興趣的朋友/同事,大家一起討論、開會(huì)、分享問題甚至組成團(tuán)隊(duì)。然后有些人要忙這個(gè),有些人得忙那個(gè),雖然團(tuán)隊(duì)成績也許還挺好,但它肯定也就止步于此了。

我有一種更有效、更好的辦法:

編寫自己的管道,或是直接復(fù)制粘貼論壇上共享的管道

讓管道以適當(dāng)?shù)母袷桨演斎霐?shù)據(jù)映射到提交的文件中,并生成交叉驗(yàn)證得分

驗(yàn)證交叉驗(yàn)證帶來的得分變化是否和排行榜上的排名變化一致

進(jìn)行探索性數(shù)據(jù)分析,閱讀論壇帖子、論文、書籍和以前類似競賽的解決方案,所有這些工作都要獨(dú)立完成

在某個(gè)時(shí)間點(diǎn),比如競賽結(jié)束前的2-4周,這時(shí)你會(huì)被卡住。你嘗試了所有可以想到的辦法,但始終提高不了排行榜名次。你需要一個(gè)新的想法來源

這時(shí)你可以在自己的“分段”找一些比較活躍的參賽者,和他們交流

首先,哪怕只是上漲了一點(diǎn)點(diǎn)預(yù)測平均得分,那都可能帶來名次上的顯著提升;其次,你和別人用的方法可能不一樣,分享一些已經(jīng)嘗試的、未曾嘗試的方法很有幫助;第三,因?yàn)楦偁幾畛跏轻槍γ總€(gè)人單獨(dú)進(jìn)行的,所有人都看了數(shù)據(jù)、編寫了管道,所有人都把競賽置于其他活動(dòng)之上,此時(shí)大家的競爭意識(shí)更強(qiáng),也更可能刷新排行榜。

但更重要的是,人們往往會(huì)高估他們在競賽上的付出,低估他們在擁有穩(wěn)定的管道前會(huì)出現(xiàn)的問題數(shù)。排行榜就是一個(gè)篩選同伴的過濾器,能讓你和你的潛在隊(duì)友處于同一位置。

在一些競賽中,特定領(lǐng)域的知識(shí)也對良好結(jié)果有很大作用,比如有時(shí)如果團(tuán)隊(duì)里有一個(gè)不太懂?dāng)?shù)據(jù)科學(xué),但是能看懂醫(yī)學(xué)成像的人,他也能發(fā)揮很大作用。但這種情況相當(dāng)罕見。

在這里,我想感謝所有我有幸結(jié)識(shí)并成為隊(duì)友的人們,你們在競賽中讓我領(lǐng)悟頗多:

Artem Sanakoeu,Alexander Buslaev,Sergey Mushinskiy, Evgeny Nizhibitsky,Konstantin Lopuhin,Alexey Noskov,Artur Kuzin,Ruslan Baikulov,Pavel Nesterov,Arseny Kravchenko,Eugene Babakhin,Dmitry Pranchuk,Artur Fattakhov,Ilya Kibardin,Liam Damewood,Alexey Shvets,Anton Dobrenkii ,Selim Seferbekov,Alexandr Kalinin,Alexander Rakhlin。

如果你還有其他問題,歡迎在原文下留言評(píng)論(需翻墻)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:Kaggle大師訪談:我的ML競賽之旅

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    傳統(tǒng)機(jī)器學(xué)習(xí)方法和應(yīng)用指導(dǎo)

    在上一篇文章中,我們介紹了機(jī)器學(xué)習(xí)的關(guān)鍵概念術(shù)語。在本文中,我們會(huì)介紹傳統(tǒng)機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí)和多種算法特征,供各位老師選擇。 01 傳統(tǒng)機(jī)器
    的頭像 發(fā)表于 12-30 09:16 ?338次閱讀
    傳統(tǒng)<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>方法和應(yīng)用指導(dǎo)

    如何選擇云原生機(jī)器學(xué)習(xí)平臺(tái)

    當(dāng)今,云原生機(jī)器學(xué)習(xí)平臺(tái)因其彈性擴(kuò)展、高效部署、低成本運(yùn)營等優(yōu)勢,逐漸成為企業(yè)構(gòu)建和部署機(jī)器學(xué)習(xí)應(yīng)用的首選。然而,市場上的云原生機(jī)器
    的頭像 發(fā)表于 12-25 11:54 ?143次閱讀

    什么是機(jī)器學(xué)習(xí)?通過機(jī)器學(xué)習(xí)方法能解決哪些問題?

    來源:Master編程樹“機(jī)器學(xué)習(xí)”最初的研究動(dòng)機(jī)是讓計(jì)算機(jī)系統(tǒng)具有人的學(xué)習(xí)能力以便實(shí)現(xiàn)人工智能。因?yàn)闆]有學(xué)習(xí)能力的系統(tǒng)很難被認(rèn)為是具有智能的。目前被廣泛采用的
    的頭像 發(fā)表于 11-16 01:07 ?483次閱讀
    什么是<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>?通過<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>方法能解決哪些問題?

    NPU與機(jī)器學(xué)習(xí)算法的關(guān)系

    在人工智能領(lǐng)域,機(jī)器學(xué)習(xí)算法是實(shí)現(xiàn)智能系統(tǒng)的核心。隨著數(shù)據(jù)量的激增和算法復(fù)雜度的提升,對計(jì)算資源的需求也在不斷增長。NPU作為一種專門為深度學(xué)習(xí)機(jī)器
    的頭像 發(fā)表于 11-15 09:19 ?569次閱讀

    電子設(shè)計(jì)競賽準(zhǔn)備經(jīng)歷分享

    在我大學(xué)生涯中,參加電子設(shè)計(jì)競賽無疑是一段難忘且充滿挑戰(zhàn)的經(jīng)歷。從最初的迷茫與不安,到最終的收獲與成長,這段旅程讓我深刻體會(huì)到了團(tuán)隊(duì)合作的力量,以及不斷學(xué)習(xí)與探索的重要性。以下是我個(gè)人參加電子設(shè)計(jì)競賽的準(zhǔn)備經(jīng)歷,希望能為即將參賽
    的頭像 發(fā)表于 11-06 10:49 ?291次閱讀
    電子設(shè)計(jì)<b class='flag-5'>競賽</b>準(zhǔn)備經(jīng)歷分享

    具身智能與機(jī)器學(xué)習(xí)的關(guān)系

    具身智能(Embodied Intelligence)和機(jī)器學(xué)習(xí)(Machine Learning)是人工智能領(lǐng)域的兩個(gè)重要概念,它們之間存在著密切的關(guān)系。 1. 具身智能的定義 具身智能是指智能體
    的頭像 發(fā)表于 10-27 10:33 ?474次閱讀

    人工智能、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)存在什么區(qū)別

    人工智能指的是在某種程度上顯示出類似人類智能的設(shè)備。AI有很多技術(shù),但其中一個(gè)很大的子集是機(jī)器學(xué)習(xí)——讓算法從數(shù)據(jù)中學(xué)習(xí)
    發(fā)表于 10-24 17:22 ?2519次閱讀
    人工智能、<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>和深度<b class='flag-5'>學(xué)習(xí)</b>存在什么區(qū)別

    入門?畢設(shè)?競賽?項(xiàng)目練手?STM32/嵌入式/物聯(lián)網(wǎng)學(xué)習(xí),有這幾款開發(fā)板就夠了!

    、項(xiàng)目練手、創(chuàng)新競賽、技能認(rèn)證等。01STM32入門+項(xiàng)目進(jìn)階學(xué)習(xí)適用場合高校教學(xué)、學(xué)生畢設(shè)、個(gè)人學(xué)習(xí)、項(xiàng)目練手、創(chuàng)新競賽、技術(shù)認(rèn)證可學(xué)習(xí)
    的頭像 發(fā)表于 10-10 16:31 ?382次閱讀
    入門?畢設(shè)?<b class='flag-5'>競賽</b>?項(xiàng)目練手?STM32/嵌入式/物聯(lián)網(wǎng)<b class='flag-5'>學(xué)習(xí)</b>,有這幾款開發(fā)板就夠了!

    AMD贊助多支FIRST機(jī)器競賽團(tuán)隊(duì)

    AMD 在 2024 賽季贊助了多支 FIRST 機(jī)器競賽團(tuán)隊(duì)。FIRST 機(jī)器競賽旨在教導(dǎo)高中生如何構(gòu)建能夠執(zhí)行特定任務(wù)的機(jī)器人,同時(shí)
    的頭像 發(fā)表于 09-18 09:45 ?486次閱讀

    【「時(shí)間序列與機(jī)器學(xué)習(xí)」閱讀體驗(yàn)】+ 簡單建議

    這本書以其系統(tǒng)性的框架和深入淺出的講解,為讀者繪制了一幅時(shí)間序列分析與機(jī)器學(xué)習(xí)融合應(yīng)用的宏偉藍(lán)圖。作者不僅扎實(shí)地構(gòu)建了時(shí)間序列分析的基礎(chǔ)知識(shí),更巧妙地展示了機(jī)器學(xué)習(xí)如何在這一領(lǐng)域發(fā)揮巨
    發(fā)表于 08-12 11:21

    機(jī)器學(xué)習(xí)算法原理詳解

    機(jī)器學(xué)習(xí)作為人工智能的一個(gè)重要分支,其目標(biāo)是通過讓計(jì)算機(jī)自動(dòng)從數(shù)據(jù)中學(xué)習(xí)并改進(jìn)其性能,而無需進(jìn)行明確的編程。本文將深入解讀幾種常見的機(jī)器學(xué)習(xí)
    的頭像 發(fā)表于 07-02 11:25 ?1282次閱讀

    深度學(xué)習(xí)與傳統(tǒng)機(jī)器學(xué)習(xí)的對比

    在人工智能的浪潮中,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)無疑是兩大核心驅(qū)動(dòng)力。它們各自以其獨(dú)特的方式推動(dòng)著技術(shù)的進(jìn)步,為眾多領(lǐng)域帶來了革命性的變化。然而,盡管它們都屬于機(jī)器
    的頭像 發(fā)表于 07-01 11:40 ?1509次閱讀

    機(jī)器學(xué)習(xí)的經(jīng)典算法與應(yīng)用

    關(guān)于數(shù)據(jù)機(jī)器學(xué)習(xí)就是喂入算法和數(shù)據(jù),讓算法從數(shù)據(jù)中尋找一種相應(yīng)的關(guān)系。Iris鳶尾花數(shù)據(jù)集是一個(gè)經(jīng)典數(shù)據(jù)集,在統(tǒng)計(jì)學(xué)習(xí)機(jī)器學(xué)習(xí)領(lǐng)域都經(jīng)常被
    的頭像 發(fā)表于 06-27 08:27 ?1706次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的經(jīng)典算法與應(yīng)用

    請問PSoC? Creator IDE可以支持IMAGIMOB機(jī)器學(xué)習(xí)嗎?

    我的項(xiàng)目使用 POSC62 MCU 進(jìn)行開發(fā),由于 UDB 模塊是需求的重要組成部分,所以我選擇了PSoC? Creator IDE 來進(jìn)行項(xiàng)目開發(fā)。 但現(xiàn)在,由于需要擴(kuò)展,我不得不使用機(jī)器學(xué)習(xí)模塊
    發(fā)表于 05-20 08:06

    機(jī)器學(xué)習(xí)8大調(diào)參技巧

    今天給大家一篇關(guān)于機(jī)器學(xué)習(xí)調(diào)參技巧的文章。超參數(shù)調(diào)優(yōu)是機(jī)器學(xué)習(xí)例程中的基本步驟之一。該方法也稱為超參數(shù)優(yōu)化,需要搜索超參數(shù)的最佳配置以實(shí)現(xiàn)最佳性能。
    的頭像 發(fā)表于 03-23 08:26 ?671次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>8大調(diào)參技巧

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品