自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

機器學(xué)習(xí)科研的十年

新聞 機器學(xué)習(xí)
十年前,MSRA的夏天,剛開始嘗試機器學(xué)習(xí)研究的我面對科研巨大的不確定性,感到最多的是困惑和迷茫。

 [[271167]]

十年前,MSRA的夏天,剛開始嘗試機器學(xué)習(xí)研究的我面對科研巨大的不確定性,感到最多的是困惑和迷茫。十年之后,即將跨出下一步的時候,未來依然是如此不確定,但是期待又更多了一些。這其中的變化也帶著這十年經(jīng)歷的影子。

起始: 科研是什么

我從大三開始進入交大APEX實驗室,有幸隨著戴文淵學(xué)長做機器學(xué)習(xí),當(dāng)時的我覺得“機器學(xué)習(xí)”這個名字十分高大上然后選擇了這個方向,但是做了一年之后依然摸不著頭腦,心中十分向往可以做科研,獨立寫論文的生活,卻總是不知道如何下手。文淵在我進實驗室的一年后去了百度。當(dāng)時還沒有得到學(xué)長真?zhèn)鞯奈?,開始了我科研的第一階段,從大四到碩士的第二年,期間一直自己摸索,不斷地問自己 “科研是什么”。

和課程作業(yè)不同,學(xué)術(shù)研究沒有具體的問題,具體的方法,具體的答案。文淵的離開讓我一下子不知道該怎么做,當(dāng)時的我的想法很簡單,快點尋找一個具體的方向,完成一篇論文。因為ACM班的機會暑假在MSRA的短暫實習(xí),雖然學(xué)會了很多東西,但并沒有給我答案。MSRA回來之后,在實驗室薛老師的建議下,我選擇了一個現(xiàn)在看來正確而又錯誤的方向 -- 深度學(xué)習(xí)。那是AlexNet出現(xiàn)之前兩年,深度學(xué)習(xí)的主流熱點是非監(jiān)督學(xué)習(xí)和限制玻爾茲曼機。沒有導(dǎo)師的指導(dǎo),沒有工具,當(dāng)時我靠著實驗室的兩塊顯卡和自己寫的CUDA代碼開始了死磕深度學(xué)習(xí)的兩年半。實驗室的學(xué)長問我,你準(zhǔn)備要干啥,我說:“我要用卷積RBM去提升ImageNet的分類效率。” 這一個回答開啟了圖書館和實驗室的無數(shù)個日日夜夜,為了給實驗室的老機器多帶一塊高功率的顯卡,我們打開了一臺機器的機箱,在外面多塞了一個外接電源。我的生活就持續(xù)在調(diào)參的循環(huán)中:可視化權(quán)重的圖片, 看上去那么有點像人臉,但是精度卻總是提不上來,再來一遍。從一開始hack顯卡代碼的興奮,到一年之后的焦慮,再到時不時在樹下踱步想如何加旋轉(zhuǎn)不變的模型的嘗試,在這個方向上,我花費了本科四年級到碩士一年半的所有時間,直到最后還是一無所獲?,F(xiàn)在看來,當(dāng)時的我犯了一個非常明顯的錯誤 -- 常見的科學(xué)研究要么是問題驅(qū)動,比如“如何解決ImageNet分類問題”;要么是方法驅(qū)動,如 “RBM可以用來干什么”。當(dāng)時的我同時鎖死了要解決的問題和用來解決問題的方案,成功的可能性自然不高。如果我在多看一看當(dāng)時整個領(lǐng)域的各種思路,比如Lecun在很早的時候就已經(jīng)做end to end,或許結(jié)局會不那么一樣吧。

當(dāng)然沒有如果,賭上了兩年半的時間的我留下的只是何時能夠發(fā)表論文的緊張心情。焦慮的我開始打算換一個方向,因為RBM當(dāng)時有一個比較經(jīng)典的文章應(yīng)用在了推薦系統(tǒng)上,我開始接觸推薦系統(tǒng)和kddcup。比較幸運的是,這一次我并沒有把RBM作為唯一的一個方法,而是更加廣泛地去看了推薦系統(tǒng)中的矩陣分解類的算法,并且在實驗室搭建了一個比較泛用的矩陣分解系統(tǒng)。推薦系統(tǒng)方向的耕耘逐漸有了收獲,我們在兩年KDDCup11中獲得了不錯的成績。KDD12在北京,放棄了一個過年的時間,我完成了第一篇關(guān)于基于特征的分布式矩陣分解論文,并且非常興奮地投到了KDD。四月底的時候,我們收到了KDD的提前拒搞通知 -- 論文連第一輪評審都沒有過。收到拒搞通知時候的我的心情無比沮喪,因為這是第一篇自己大部分獨立推動完成的文章。轉(zhuǎn)折在五月,KDDCup12 封榜,我們拿到了第一個track的冠軍,我依然還記得拿到KDDCup12冠軍的那一個瞬間,我在狀態(tài)里面中二地打了excalibur,仿佛碩士期間的所有陰霾一掃而盡。那時候的我依然還不完全知道科研是什么,但是隱隱之中覺得似乎可以繼續(xù)試試。

第零年: 可以做什么

我對于科研看法的第一個轉(zhuǎn)折,在于我碩士臨近畢業(yè)的時候。李航老師來到我們實驗室給了關(guān)于機器學(xué)習(xí)和信息檢索的報告,并且和我們座談。在報告的過程中,我異常興奮,甚至?xí)r不時地想要跳起來,因為發(fā)現(xiàn)我似乎已經(jīng)知道如何可以解決這么多有趣問題的方法,但是之前卻從來沒有想過自己可以做這些問題。聯(lián)系了李航老師之后,在同一年的夏天,我有幸到香港跟隨李航和楊強老師實習(xí)。實驗室的不少學(xué)長們曾經(jīng)去香港和楊強老師工作,他們回來之后都仿佛開了光似地在科研上面突飛猛進。去香港之后,我開始明白其中的原因 -- 研究視野。經(jīng)過幾年的磨練,那時候的我或許已經(jīng)知道如何去解決一個已有的問題,但是卻缺乏其他一些必要的技能 -- 如何選擇一個新穎的研究問題,如何在結(jié)果不盡人意的時候轉(zhuǎn)變方向?qū)ふ倚碌耐黄泣c,如何知道整個領(lǐng)域的問題之間的關(guān)系等等。“你香港回來以后升級了嘛。” -- 來自某大俠的評論。這也許是對于我三個月香港實習(xí)的最好概括的吧。香港實習(xí)結(jié)束的時候我收獲了第一篇正式的一作會議論文(在當(dāng)年的ICML)。因為KDDCup的緣故,我認(rèn)識了我現(xiàn)在博士導(dǎo)師Carlos的postdoc Danny,Danny把我推薦給了Carlos(UW)和Alex(CMU)。我在申請的時候幸運地拿到了UW和CMU的offer。在CMU visit的時候我見到了傳說中的大神學(xué)長李沐,他和我感嘆,現(xiàn)在正是大數(shù)據(jù)大火的時候,但是等到我們畢業(yè)的時候,不知道時代會是如何,不過又反過來說總可以去做更重要的東西?,F(xiàn)在想起這段對話依然依然唏噓不已。我最后選擇了UW開始了我六年的博士生活。

感謝博士之前在APEX實驗室和香港的經(jīng)歷,在博士開始的時候我似乎已經(jīng)不再擔(dān)心自己可以做什么了。

第一年: 意外可以收獲什么

如果給我在UW的第一年一個主題的話,或許是“意外”。在交大時候因為興趣的關(guān)系一直去蹭系統(tǒng)生物研究員敖平老師的組會探討隨機過程和馬爾可夫鏈。到UW的第一個學(xué)期,我無意看到一篇探討如何用Lagevin過程做采樣的文章,我想這不就是之前組會上探討過的東西么,原來這些方法也可以用到機器學(xué)習(xí)上。我直接借用了原來的交大學(xué)會的知識完成了第一篇高效采樣HMC的文章。我后來并沒有繼續(xù)在這個方向上面耕耘下去,不過另外一位同在組會的學(xué)弟繼續(xù)基于這個方向完成了他的博士論文。

同樣的在這一年,我和導(dǎo)師開始“質(zhì)疑深度學(xué)習(xí)” -- 如果別的的機器學(xué)習(xí)模型,有足夠大的模型容量和數(shù)據(jù),是否可以獲得和深度學(xué)習(xí)一樣的效果呢?當(dāng)時Carlos看好kernel methods,而我因為過去的一些經(jīng)歷決定嘗試Tree Boosting。雖然最后在vision領(lǐng)域依然被卷積網(wǎng)絡(luò)打敗而嘗試挑戰(zhàn)失敗,但是為了挑戰(zhàn)這一假說而實現(xiàn)高效Tree boosting的系統(tǒng)經(jīng)過小伙伴建議開源成為了后來的XGBoost。

在第一年暑假結(jié)束的時候,因為偶然的原因,我開始對quantile sketch算法感興趣。這里主要的問題是如何設(shè)計一個近似的可以合并的數(shù)據(jù)結(jié)構(gòu)用來查找quantile。這個方向有一個經(jīng)典的方案GK-sketch的論文,但是只能夠解決數(shù)據(jù)點沒有權(quán)重的情況。經(jīng)過一兩天的推導(dǎo),我在一次去爬山的路上終于把結(jié)論推廣到了有權(quán)重的情況。有趣的是新的證明比起原來的證明看起來簡單很多。這個結(jié)論沒有單獨發(fā)表,但是后來意想不到地被用到了分布式XGBoost算法中,證明也收錄在了XGboost文章的附錄中。

研究并不是一朝一夕,做想做的事情把它做好,開始的時候興趣使然,而在幾年之后意想不到的地方獲得的收獲,這樣的感覺走非常不錯。

第二年和第三年: 選擇做什么

在新生聚會上,Carlos對我說,你已經(jīng)有論文的發(fā)表經(jīng)歷了,接下來要靜下心來做發(fā)大的,“只做best paper水平的研究”。和很多nice的導(dǎo)師不同,Carlos對于學(xué)生的要求非常嚴(yán)格,說話也是非常直白甚至于“尖刻“。很多的老師不論我們提出什么樣的想法,總會先肯定一番,而Carlos則會非常直接地提出質(zhì)疑。一開始的時候會非常不習(xí)慣,感覺到信心受到了打擊,但是慢慢習(xí)慣之后開始習(xí)慣這樣風(fēng)格。到現(xiàn)在看來,誠實的反饋的確是我收益最大的東西。我進入博士的一年之后,主要在想的問題是做什么樣的問題,可以值得自己深入付出,做扎實有影響力的工作。

在博士的第三年,Carlos在建議我把XGBoost寫成論文,用他的話說:“寫一篇讓讀者可以學(xué)到東西的文章”。和傳統(tǒng)的寫法不同,我們在文章的每一個章節(jié)插入了實驗結(jié)果驗證當(dāng)章節(jié)提出的觀點。而他對于做圖的處理也成為了我現(xiàn)在的習(xí)慣,直接在圖里面插入箭頭注釋,減少讀者的閱讀負(fù)擔(dān)。經(jīng)過幾次打磨論文終于成為了我們想要的模樣。

博士前對于深度學(xué)習(xí)遺憾讓我又逐漸把目光轉(zhuǎn)回到深度學(xué)習(xí)。這個時候,我選擇了不再一個人作戰(zhàn),在博士的第二年和第三年,我和興趣使然的小伙伴們合作,一起開始了MXNet的項目。項目從零開始,在短短的一年時間里面做出完整的架構(gòu)。我第一次看到集合了大家的力量齊心協(xié)力可以創(chuàng)造出什么樣的東西。研究的樂趣不光是發(fā)表論文,更多還是可以給別人帶來什么,或者更加大膽地說 -- 如何一起改變世界。

博士第二年暑假,我在小伙伴的介紹下進入Google Brain跟隨Ian Goodfellow實習(xí)。當(dāng)時GAN的論文剛剛發(fā)表,我也有幸在成為Ian的第一個實習(xí)生。實習(xí)的開始,我們討論需要做的問題,Ian和我把可能要做的項目畫在一個風(fēng)險和回報的曲線上,讓我選擇。到最后我選擇了自己提出的一個課題,在這個曲線里面風(fēng)險最高,回報也最高。我一直有一個理想,希望可以構(gòu)建一個終身學(xué)習(xí)的機器學(xué)習(xí)系統(tǒng),并且解決其中可能出現(xiàn)的問題。這個理想過于模糊,但是我們想辦法拿出其中的一個可能小的目標(biāo) -- 知識遷移。如果一個機器學(xué)習(xí)系統(tǒng)要終生學(xué)習(xí),那么在不斷收集數(shù)據(jù)之后必然需要擴充模型的規(guī)模來學(xué)習(xí)更廣或者更深,按照現(xiàn)在的做法我們在模型改變之后只能拋棄原來的模型重新訓(xùn)練,這顯然是不夠高效的。是否有一個方法可以從已經(jīng)訓(xùn)練好的網(wǎng)絡(luò)上面進行知識遷移也就成為了一個重要的問題。我先花了一個半月的時間嘗試了比較顯然的Knowledge distillation的方法一直沒有得到正面的結(jié)果。在最后的一個月,我改變了思路。實習(xí)結(jié)束的前一個星期,我打開Tensorborard上最近一組實驗的結(jié)果:實驗表明新的思路正面的效果。這最后幾步的幸運也讓我的這一個冒險之旅有了一個相對圓滿的結(jié)果。這篇論文最后被發(fā)表在了ICLR上,也是我最喜歡的結(jié)果之一。

博士的第三年,我和小伙伴們開發(fā)了一種可以用低于線性復(fù)雜度就可以訓(xùn)練更深模型的內(nèi)存優(yōu)化算法。當(dāng)時我非常興奮地把這一結(jié)果寫下來然后把稿子后給導(dǎo)師看。他和我說:Hmm,這個結(jié)果如果投到NeurIPS的話或許可以中一篇poster,但是這并不是特別有意思。在我沉默之后他又補充了一句:論文并非越多越好,相反你可能要嘗試優(yōu)化你的論文里面最低質(zhì)量的那一篇。最后我們只是把這篇論文掛在了Arxiv上。Carlos的說法或許比較極端(這篇論文依然影響了不少后面的工作),但也的確是對的,用李沐之前說過的一句話概括,保證每一篇論文的質(zhì)量接近單調(diào)提升,已經(jīng)是一件難以做到但是又值得最求的事情。

選擇做什么眼光和做出好結(jié)果的能力一樣重要,眼界決定了工作影響力的上界,能力決定了到底是否到達那個上界。交大時敖平老師曾經(jīng)和我說過,一個人做一件簡單的事情和困難的事情其實是要花費一樣多的時間。因為即使再簡單的問題也有很多瑣碎的地方。要想拿到一些東西,就必然意味著要放棄一些其他東西,既然如此,為什么不一直選擇跳出舒適區(qū),選一個最讓自己興奮的問題呢。

第四年之后: 堅持做什么

博士第三年,我和小伙伴們參加GTC,結(jié)束后老黃party的角落里,我一個人在發(fā)呆。深度學(xué)習(xí)的框架發(fā)展已經(jīng)鋪開,可接下來應(yīng)該做什么,我一下子感到迷茫。第三年的暑假我沒有去實習(xí),而是決定一個人在學(xué)校嘗試開發(fā)腦海中顯現(xiàn)的抽象概念 -- 深度學(xué)習(xí)中間表示。暑假結(jié)束之后,我完成了第一個版本,可以比較靈活地支持深度學(xué)習(xí)系統(tǒng)里面的計算圖內(nèi)存優(yōu)化。但是總是覺得還缺少著什么 -- 系統(tǒng)的瓶頸依然在更接近底層的算子實現(xiàn)上。暑假之后在去加州的飛機上,我嘗試在紙上畫出為了優(yōu)化矩陣乘法可能的循環(huán)變換,回來之后,我們決定推動一個更加大膽的項目 -- 嘗試用自動編譯生成的方式優(yōu)化機器學(xué)習(xí)的底層代碼。

這個項目早在之前我也有一些想法,但是一直沒有敢去吃這個螃蟹。原因是它的兩個特點:從零開始,橫跨多領(lǐng)域。因為要做底層代碼生成和想要支持新的硬件,我們需要重新重新搞清楚很多在之前被現(xiàn)有的操作系統(tǒng)和驅(qū)動隱藏掉的問題,這就好象是在一個荒島上一無所有重新搭建起一個城堡一樣。而這里面也涉及了系統(tǒng),程序語言,體系結(jié)構(gòu)和機器學(xué)習(xí)等領(lǐng)域。這讓我想起之前在ACM班時候重頭搭建編譯器和MIPS處理器并且連接起來的經(jīng)歷。也是那段經(jīng)歷讓我覺得為了解決問題去吃多個領(lǐng)域的螃蟹是個讓人興奮的事情。那段經(jīng)歷給我留下的第二個印記是理解了合作和傳承的重要性。這門課程設(shè)計有一個傳統(tǒng),每一門課程的老師都由上一屆學(xué)長擔(dān)任。每一屆的同學(xué)都會在之前的基礎(chǔ)上有所改進。我也曾經(jīng)為這門課做過一些微小的貢獻。演化到現(xiàn)在,這門課程已經(jīng)從只做簡單的答辯,到現(xiàn)在已經(jīng)有在線評測的OJ。大家一起的合作塑造了這個課程。推動新的機器學(xué)習(xí)系統(tǒng)和塑造這門課程一行,需要各個團隊的同學(xué)合作,足夠時間的耐心關(guān)注和不斷地改進。

我的合作者們也被“卷入”到了這個項目中。我的體系結(jié)構(gòu)合作者一直想要設(shè)計新的AI硬件,我在雛形完成之后花了大量的時間討論如何協(xié)同設(shè)計新的硬件的問題。我們開始討論怎么管理片上內(nèi)存,怎么可以比較容易地生成指令集,甚至怎么調(diào)度內(nèi)存讀寫和計算并行的問題都暴露出來。有一天,我和合作者說我們需要引入虛擬線程的概念來隱藏內(nèi)存讀寫開銷,然后他很快和我說,這是體系結(jié)構(gòu)里面經(jīng)典的超線程技術(shù),發(fā)明人正是我們的系主任Hank。我們也在不斷地重新發(fā)現(xiàn)經(jīng)典的問題的解決方法在新場景的應(yīng)用,讓我覺得上了一堂最好的體系結(jié)構(gòu)課程。

兩年間的不少關(guān)鍵技術(shù)問題的突破都是在有趣的時候發(fā)生的。我在排隊參觀西雅圖藝術(shù)博物館的infinity mirror展覽的途中把加速器內(nèi)存拷貝支持的第一個方案寫在了一張星巴克的餐巾紙上。到后來是程序語言方向的同學(xué)們也繼續(xù)參與進來。我們爭論最多的是如何如何平衡函數(shù)式語言和經(jīng)典計算圖做讓大家都可以搞懂的中間表達,這一討論還在不斷繼續(xù)。經(jīng)過大家的努力,TVM的第一篇論文在項目開始的兩年之后終于發(fā)表。兩年間參與項目的同學(xué)也從兩個人,到一個團隊,再到一個新的lab和一個社區(qū),這兩年也是我博士期間最充實的兩年。

因為做了不少“跨界”的工作,我常被問起你到底屬于哪個領(lǐng)域。過去半年一直在各地給報告,報告這樣開頭:算法突破,數(shù)據(jù)的爆發(fā),計算硬件的提升三者支撐了機器學(xué)習(xí)的變革,而整合這三者的,則是機器學(xué)習(xí)系統(tǒng)。這也是為什么我要做機器學(xué)習(xí)系統(tǒng)的原因。曾經(jīng)一個教授問我這樣的問題,如果明天有一樣新的化學(xué)反應(yīng)過程可能帶來機器學(xué)習(xí)的變革,你會怎么做。我答道:“我投入會去學(xué)習(xí)研究這個化學(xué)過程”。雖然我不知道遙遠的未來會需要什么,到底是系統(tǒng),算法,還是化學(xué),從問題出發(fā),用盡所有可能的方法去最好地解決機器學(xué)習(xí)問題,應(yīng)該這就是我想要堅持的研究風(fēng)格吧。

總結(jié)

在寫這篇總結(jié)的時候,心中有不少感嘆。我常想,如果我在焦慮死磕深度學(xué)習(xí)的時候我多開竅一些會發(fā)生什么,如果我并沒有在實習(xí)結(jié)束的時候完成當(dāng)時的實驗,又會是什么。但現(xiàn)在看來,很多困難和無助都是隨機的漲落的一部分,付出足夠多的時間和耐心,隨機過程總會收斂到和付出相對的穩(wěn)態(tài)。

每個人的研究道路都各不相同,我的經(jīng)歷應(yīng)該也是千萬條道路中其中一條罷了。博士的經(jīng)歷就好像是用五年多時間作為籌碼投資給自己,去突破自己做自己原來想不到的事情。中不管坎坷曲折都是無可替代的一部分。

科研從來不是一個人的事情,對于我來說特別是如此。我在交大的時候和一群年輕的同學(xué)一起摸索推薦系統(tǒng)的算法,而在博士期間搭建的每一個系統(tǒng)都包含了很多合作者一起的努力。也正是大家一起的努力才帶來了現(xiàn)在的成果。我個人在這十年間受到了不少老師,同學(xué),家人的鼓勵和幫助,感謝他們他們給予了我這無比珍貴的十年時光。

責(zé)任編輯:張燕妮 來源: 知乎
相關(guān)推薦

2018-11-05 13:00:04

2013-04-15 13:53:27

編程程序員

2019-12-13 16:08:57

戴爾

2017-09-12 14:59:27

機器學(xué)習(xí)TensorFlow軟硬件

2012-07-16 13:18:35

2022-03-28 11:41:21

物聯(lián)網(wǎng)物聯(lián)網(wǎng)市場智能電網(wǎng)

2022-03-18 13:46:20

物聯(lián)網(wǎng)數(shù)據(jù)技術(shù)

2020-11-05 22:59:15

技能工業(yè)革命技術(shù)

2013-01-14 10:04:16

2012-10-17 14:24:07

思科華為

2011-09-15 21:52:53

2016-04-20 11:08:57

代碼歷史新功能

2010-11-17 11:02:49

思科Juniper

2018-11-16 09:29:59

2010-01-05 10:18:10

袁萌Linux

2018-11-15 14:29:15

蘋果iPhone中國

2017-11-23 19:15:00

2012-06-19 09:50:16

2017-11-08 07:14:01

2024-02-05 10:10:06

Vue策略編譯
點贊
收藏

51CTO技術(shù)棧公眾號