數(shù)據(jù)科學(xué)很性感?不,其實(shí)它非常枯燥!
大數(shù)據(jù)文摘出品
來源:medium
編譯:睡不著的iris
很多人把數(shù)據(jù)科學(xué)(或者機(jī)器學(xué)習(xí))工作描繪的令人向往,激勵(lì)自己和別人加入其行列。大家把數(shù)據(jù)科學(xué)想得非常完美,事實(shí)上它容易讓人感到“枯燥”。一旦感到枯燥,你就容易焦慮。如此,導(dǎo)致數(shù)據(jù)科學(xué)工作的離職率非常高。
本文作者將告訴大家自己如何應(yīng)對“數(shù)據(jù)科學(xué)中那些枯燥的工作”。
希望能夠?qū)δ阌兴鶐椭屇銓?shù)據(jù)科學(xué)有一個(gè)正確的認(rèn)識,讓你在決定走上數(shù)據(jù)科學(xué)的征途時(shí),好好享受這場漫長的游戲!
第一課
我的表弟Shawn是個(gè)年輕英俊的小伙,最近他來了加拿大攻讀計(jì)算機(jī)碩士學(xué)位。和很多學(xué)生一樣,Shawn對機(jī)器學(xué)習(xí)充滿熱情。他希望過2年畢業(yè)的時(shí)候,可以成為一名數(shù)據(jù)科學(xué)家,或從事其他與機(jī)器學(xué)習(xí)有關(guān)的工作。
身為Shawn的表哥,我也關(guān)心Shawn是否成功,我決定以自己數(shù)據(jù)科學(xué)生涯的教訓(xùn),給他提供最謹(jǐn)慎的建議。《哈佛商業(yè)評論》雜志將數(shù)據(jù)科學(xué)稱為“21世紀(jì)最性感的工作”,但它和其他職業(yè)一樣會讓人覺得枯燥,甚至使人心力交瘁,你還會屢屢受挫。
即便這些話會讓Shawn感到失望,我還是有義務(wù)把事實(shí)告訴他。希望他對自己選擇的職業(yè)道路有充分的了解。更重要的是,我不希望凌晨3點(diǎn)會接到我媽和叔叔的電話,告訴我作為家庭一員,有義務(wù)花耐心去好好指導(dǎo)晚輩。
Shawn十分聰明、積極進(jìn)取且富有好奇心,他讓我詳細(xì)地給他說說,數(shù)據(jù)科學(xué)到底多枯燥。因此,我寫了這篇帖子。
一些背景說明
首先,為了便于理解本文,我先介紹下自己是怎么進(jìn)入數(shù)據(jù)科學(xué)行業(yè)(具體可以看我的領(lǐng)英)。作為一名數(shù)據(jù)科學(xué)經(jīng)理,我不僅負(fù)責(zé)領(lǐng)導(dǎo)團(tuán)隊(duì)為財(cái)富100企業(yè)部署機(jī)器學(xué)習(xí)系統(tǒng),還要管理客戶關(guān)系,自己也會承擔(dān)一部分的技術(shù)工作。
更重要的概率是:機(jī)器學(xué)習(xí)系統(tǒng)應(yīng)是用于解決特定業(yè)務(wù)領(lǐng)域問題的一整套方案,除去機(jī)器學(xué)習(xí)組件,還要處理其他與人或系統(tǒng)相關(guān)事情。
部署系統(tǒng)意味著解決方案對實(shí)際業(yè)務(wù)運(yùn)營有效。舉例來說,搭建實(shí)驗(yàn)環(huán)境用于訓(xùn)練和驗(yàn)證機(jī)器學(xué)習(xí)模型稱不上是部署,但如果搭建一個(gè)每月郵件發(fā)送產(chǎn)品服務(wù)的推薦引擎可以算是部署。相比較構(gòu)建一個(gè)好的機(jī)器學(xué)習(xí)模型,部署機(jī)器學(xué)習(xí)系統(tǒng)需要攻克更多的難題。若是感興趣,可以點(diǎn)擊此處詳細(xì)了解。
所以,我不會介紹如何在谷歌或其他高科技公司,從一名初級開發(fā)人員成長為技術(shù)經(jīng)理。雖然這些公司在機(jī)器學(xué)習(xí)頗有成就,但他們只能代表“前1%”的公司。因?yàn)槠渌?cái)富100企業(yè)在技術(shù)成熟度、技術(shù)采用的速度以及投資工具和工程人才儲備方面都相對滯后。
AI學(xué)術(shù)讓我們仔細(xì)看看
不少年輕數(shù)據(jù)科學(xué)家花費(fèi)很多時(shí)間思考如何構(gòu)建完美的機(jī)器學(xué)習(xí)模型,或者采用豐富多彩的視化手段向大家展示具有突破性的商業(yè)洞察。當(dāng)然,這些確實(shí)算一部分工作。
然而,隨著數(shù)據(jù)科學(xué)被廣泛使用,企業(yè)更關(guān)注其實(shí)際的應(yīng)用價(jià)值。企業(yè)想要部署越來越多的機(jī)器學(xué)習(xí)系統(tǒng),但他們不關(guān)注系統(tǒng)使用了多少新的模型或者酷炫的儀表板。因此,數(shù)據(jù)科學(xué)家需要處理一堆與機(jī)器學(xué)習(xí)無關(guān)的工作,從此工作就變得枯燥起來。
數(shù)據(jù)科學(xué)有多枯燥?看看我周一到周五做點(diǎn)什么就知道了。接下來,我把日常工作進(jìn)行分類闡述,從期望和現(xiàn)實(shí)兩方面對比說明,并分享我的應(yīng)對策略。
下面列舉的案例都源自過往實(shí)驗(yàn)和團(tuán)隊(duì)項(xiàng)目,我將以“我們”的口吻來敘述。雖然這些案例可能并不詳盡,但也足以論證我的觀點(diǎn)。
設(shè)計(jì)(占5-10%時(shí)間)
在設(shè)計(jì)階段,我們發(fā)揮各自最“高”智慧來解決問題和提出卓越的想法。這些想法可以包括新的模型體系結(jié)構(gòu)、數(shù)據(jù)特性和系統(tǒng)設(shè)計(jì)等。但很快,我們就陷入低谷,受時(shí)間因素或受其他重要事情影響,我們只能采用最簡單(通常也是最無聊)的解決方案。
期望:
我們的想法將被收錄于著名的機(jī)器學(xué)習(xí)雜志,如NIPS、谷歌AI項(xiàng)目(Google AI Research)等,還幻想贏得下一屆諾貝爾獎(jiǎng)。
現(xiàn)實(shí):
部署后一切正常運(yùn)行。不錯(cuò)的白板繪圖會拍照記錄下來,作為參考框架。
應(yīng)對策略:
- 不斷與外行朋友談?wù)撐覀儻偪竦南敕ǎ麄儠终\實(shí)(甚至是粗魯)地勸我打消那些瘋狂、愚蠢的念頭;
- 把看似瘋狂的好想法作為附帶項(xiàng)目;
- 結(jié)果發(fā)現(xiàn),大部分瘋狂的想法不起作用,或者只是比簡單方法稍微好一點(diǎn)點(diǎn)。
所以,遵循簡單原則(KISS,Keep-It-Simple-Stupid),讓我如釋重負(fù)。
編程(占20-70%時(shí)間,取決于你的開發(fā)角色)
此處不必多講,想象你戴上耳機(jī),喝一個(gè)口咖啡,拉伸你的手指,坐在在電腦屏幕前,敲打出一行行漂亮的代碼后,坐等奇跡發(fā)生。
我們的代碼分為5部分(此處用代碼行數(shù)占比說明):數(shù)據(jù)管道(50-70%),系統(tǒng)和集成(10-20%),機(jī)器學(xué)習(xí)模型(5-10%),調(diào)試和演示支持(5-10%)。其他同行基本也是這么認(rèn)為的,這里有一幅大圖可以說明此:
編寫模型的代碼占比(圖),此處有一篇來自谷歌團(tuán)隊(duì)論述機(jī)器學(xué)習(xí)的隱性技術(shù)債的文章。
如你所見,我們大部分時(shí)間在處理與機(jī)器學(xué)習(xí)無關(guān)的事務(wù)。雖然機(jī)器學(xué)習(xí)組件非常重要,流行框架和編程語言(如Keras、XGBoost、Python的sklearn等)已經(jīng)幫助我們減輕了許多繁雜的工作。為了達(dá)到目的,我們不需要很重的代碼庫,工作流已經(jīng)是標(biāo)準(zhǔn)化和相對完善。雖說做底層優(yōu)化不同,但其影響也就1%。
期望:大部分時(shí)間我們在開發(fā)和重塑機(jī)器學(xué)習(xí)組件,其他人關(guān)注剩余部分。
現(xiàn)實(shí):沒人愿意
- 做自己不想做的事情;
- 把所有事都留給自己做;還有
- 花費(fèi)大量不成比例的時(shí)間去優(yōu)化已經(jīng)足夠完善的工作流程。
應(yīng)對策略:
我們依據(jù)各自的專業(yè)特長做設(shè)計(jì)決策,除了完成自己的開發(fā)工作,同時(shí)還會支持其他人。(例如,貢獻(xiàn)想法、親手寫代碼或者做質(zhì)量評估)。我們互相學(xué)習(xí),從而提升團(tuán)隊(duì)水平。更重要的是,如此可以緩解這份“性感工作”所帶來的焦慮。
質(zhì)量評估、調(diào)試和修復(fù)問題(起碼占65%時(shí)間)
在我看來,這所有技術(shù)工作里最沒勁、最痛苦的部分。部署機(jī)器學(xué)習(xí)系統(tǒng)也不例外。
一個(gè)機(jī)器學(xué)習(xí)系統(tǒng)有2類常見的bug:不好的結(jié)果和常見軟件問題。不好的結(jié)果可能是模型得分太低(例如:準(zhǔn)確性和精準(zhǔn)度)或難以解釋的預(yù)測結(jié)果(例如:基于業(yè)務(wù)經(jīng)驗(yàn)的預(yù)測概率呈現(xiàn)偏態(tài)分布)。代碼沒有問題,只是結(jié)果不具有解釋性或者不夠好。常見軟件問題則是諸如代碼無法運(yùn)行,系統(tǒng)配置等。
期望:
我們用更聰明的方法構(gòu)建一個(gè)優(yōu)化的模型就可以解決結(jié)果不佳的問題。這個(gè)過程需要一些智慧,如果想法可以湊效,那還是非常令人欣慰的。
現(xiàn)實(shí):在質(zhì)量評估、調(diào)試和處理缺陷的過程中,我們有近70-90%時(shí)間在處理常見軟件問題。通常,我們構(gòu)建端到端的訓(xùn)練和驗(yàn)證管道后,可以很快得到好結(jié)果。然而,實(shí)際我們更關(guān)注系統(tǒng)問題,模型則次之。
應(yīng)對策略:我用GitHub的issue功能建立了一個(gè)游戲化的“獎(jiǎng)杯板”。每次關(guān)閉問題卡片的時(shí)候,我都非常興奮。看到我們“征服”的問題,我會感到十分驕傲。當(dāng)然,如果我點(diǎn)擊“啟動”一切都能夠奇跡般的正常運(yùn)行,我會更加驕傲。雖然這一幕只在大學(xué)提交編程作業(yè)的時(shí)候出現(xiàn)過。我一生都記得那一刻的感覺。如果現(xiàn)實(shí)生活中再次發(fā)生,那可能是什么東西出錯(cuò)了。
GitHub問題板截圖
救火(占10-50%時(shí)間)
再周全的時(shí)間計(jì)劃,總會發(fā)生一些讓你偏離正軌的意外。不僅是數(shù)據(jù)科學(xué),對于任何交付團(tuán)隊(duì)經(jīng)理來說,這就是一場噩夢。具體來說,意外可以分為3類:
- 外部因素,如范圍變更、上游系統(tǒng)依賴和客戶抱怨;
- 內(nèi)部團(tuán)隊(duì)問題,如惱人的bug需要更多的時(shí)間解決、團(tuán)隊(duì)成員離職但沒有做好交接、人力不足、個(gè)人沖突等;
- 以及自己的無知,包含一切五花八門的“其他”事情。
期望:
從頭到尾巡檢一遍,搞定后,迎接客戶、領(lǐng)導(dǎo)、團(tuán)隊(duì)的擊掌慶祝和擁抱。
現(xiàn)實(shí):
意料之外的事情總是在最不合時(shí)宜的時(shí)候發(fā)生。意外會有一些規(guī)律可循,但沒有解決問題的萬能良方,這讓人太心煩了。
應(yīng)對策略:
- 遇到高技術(shù)問題或跨團(tuán)隊(duì)協(xié)作,最好將時(shí)間周期延長至2到2.5倍,預(yù)留足夠的空間;
- 在團(tuán)隊(duì)內(nèi)部設(shè)立激進(jìn)的里程碑;
- 在心里大罵來平衡情緒,時(shí)兒也口頭說說發(fā)泄;
- 深呼吸、保持微笑、學(xué)會傾聽;
- 和團(tuán)隊(duì)一起探索所有可能的方案,依據(jù)可行性、所需投入、難易程度確定方案優(yōu)先級;
- 都不能起作用,不要再等待了,尋找?guī)椭?
- 繼續(xù)推進(jìn)。以上都不能算是策略,但是在實(shí)踐過程中可以發(fā)揮作用。
總結(jié)
本文都在論述真實(shí)世界中,從事數(shù)據(jù)科學(xué)工作會遇到哪些困難。有志于從事機(jī)器學(xué)習(xí)工作的人需要知道除了構(gòu)建模型,事實(shí)上還有很多其他要做的。與其他工作一樣,你最終都會感到枯燥、受挫。當(dāng)然,這很正常。但更重要的是,你應(yīng)該建立一套自己的應(yīng)對策略,那你就可以長期在這個(gè)賽道上,享受沿途的小成就,奔向最終的勝利。
相關(guān)報(bào)道:https://towardsdatascience.com/data-science-is-boring-1d43473e353e
【本文是51CTO專欄機(jī)構(gòu)大數(shù)據(jù)文摘的原創(chuàng)譯文,微信公眾號“大數(shù)據(jù)文摘( id: BigDataDigest)”】