研一學(xué)機(jī)器學(xué)習(xí)和深度學(xué)習(xí),為什么感覺越學(xué)越不會(huì),怎么解決呢?
鏈接:https://www.zhihu.com/question/371622741 轉(zhuǎn)自:深度學(xué)習(xí)與計(jì)算機(jī)視覺 聲明:僅做學(xué)術(shù)分享,侵刪


https://www.zhihu.com/question/371622741/answer/1666044043
沖。可以擼吳恩達(dá)了,擼完一知半解。沖。刷點(diǎn)李宏毅吧,就記住了寶可夢(mèng)。沖,刷吳恩達(dá)最新視頻,還是頂不住。
好吧還是踏踏實(shí)實(shí)看書吧。概率論,線代書,看了一遍,有信心了。刷PRML,第一章高維高斯我就懵逼了。換統(tǒng)計(jì)學(xué)習(xí)方法,前幾章還行,甚至能做做作業(yè)。邏輯回歸開始噩夢(mèng)就來了,多分類直接殺我。SVM看了半天,到核技巧又殺我。EM徹底涼了,監(jiān)督學(xué)習(xí)就看到這。什么馬爾科夫蒙特卡洛,這都是什么神仙。開始看無監(jiān)督,掙扎了好久奇異值和主成分,也就到此為止了。
熵不知道,要補(bǔ)信息論,看了點(diǎn)皮毛先頂著。蒙特卡洛,馬爾科夫不知道,好像得補(bǔ)隨機(jī)過程,開頭就上測(cè)度論,測(cè)度是個(gè)什么鬼,我今天想了半天σ空間,還是一知半解,有點(diǎn)頂不動(dòng)。統(tǒng)計(jì)學(xué)還得補(bǔ),再高級(jí)一點(diǎn)的概率論也得補(bǔ)。聽說凸優(yōu)化也得補(bǔ)。也不知道得猴年馬月。
Python我也不會(huì)啊,刷了20節(jié)小甲魚,先湊乎頂著。直接上kaggle,刷完了Python和ml入門的題,但感覺還是,危。再等等吧。
今天開始刷國科大的機(jī)器學(xué)習(xí),條件期望殺我,看來隨機(jī)過程邁不過去,得搞一波。聽說隨機(jī)過程有測(cè)度論或者實(shí)變函數(shù)的基礎(chǔ)會(huì)比較好,我又查了查聽說實(shí)變函數(shù)有數(shù)學(xué)分析的基礎(chǔ)會(huì)比較好,啥也不說了,我今天正式開始學(xué)數(shù)學(xué)分析了。肝一下AISL,再踏實(shí)補(bǔ)一下概率論和統(tǒng)計(jì)學(xué)。
萌萌式噘嘴,今天是2021年1月7號(hào),是我搞機(jī)器學(xué)習(xí)的大概第三個(gè)月,留個(gè)坑,看看以后會(huì)怎么樣。
mmp我一個(gè)本科土木狗,碩士建筑技術(shù),夢(mèng)想工地蓋高樓,咋就成了現(xiàn)在這個(gè)樣子。真是萬物ml嘛??
不太甘心當(dāng)調(diào)參俠,數(shù)學(xué)基礎(chǔ)不牢固真的地動(dòng)山搖,效率低就低點(diǎn)吧。好歹二十五年頭一次主動(dòng)覺得學(xué)習(xí)很酷。補(bǔ)個(gè)五年不信頂不動(dòng)。
https://www.zhihu.com/question/371622741/answer/1269330116
https://www.zhihu.com/question/371622741/answer/1043269559
本人就讀于一所中上的211學(xué)校,還有1個(gè)月就畢業(yè)了。研一時(shí)候我和樓主一樣,一直在學(xué)習(xí),自己也會(huì)找一些開源的項(xiàng)目,也參加過一些比賽,個(gè)別比賽成績(jī)也說得過去。但是學(xué)校位置比較偏,導(dǎo)師資源不好,實(shí)驗(yàn)室不讓出去實(shí)習(xí)等因素,我處于單打獨(dú)斗階段。找工作之前我已經(jīng)能熟練推出各種主流機(jī)器學(xué)習(xí)公式,用Numpy寫出大部分模型,在力扣等網(wǎng)站上刷了500+的題目。
剛?cè)肟拥臅r(shí)候,網(wǎng)上的各種行業(yè)前景的評(píng)價(jià)蒙蔽了我的雙眼,我滿懷自信的參加了2019年的秋招,結(jié)果以失敗告終,ML、DL基礎(chǔ)知識(shí)、手撕代碼都沒什么問題。參加招聘的所有公司中,只有騰訊告訴了我的不足之處,沒有實(shí)習(xí)、沒有論文。(很多大佬這時(shí)會(huì)說了,沒有論文還想找算法工程師的職位,我只能告訴你們,實(shí)驗(yàn)室只有自己研究這個(gè)方向時(shí),需要踩的坑多到無法想象)。華為的招聘我走的最遠(yuǎn),但是終面被刷了,因?yàn)榉强瓢啵瑳]辦法這是事實(shí)。最后的最后,我去一家通信公司做軟開去了。這也算比較好的結(jié)果吧。
簡(jiǎn)單總結(jié)一些招聘時(shí)候我都會(huì)什么了吧,ML基本模型的公式推導(dǎo)+numpy實(shí)現(xiàn),DL的基礎(chǔ)知識(shí),CV領(lǐng)域自己手寫過SSD、Faster R-CNN、YOLO、retinanet這幾種基本目標(biāo)檢測(cè)算法的全部代碼。改進(jìn)了Faster R-CNN,但是沒來得及出文章。參加了幾次比賽,成績(jī)一般,最好成績(jī)是1000個(gè)隊(duì)伍比賽的前20名。數(shù)據(jù)結(jié)構(gòu)方面,力扣里的中等題基本思路都有,大部分能寫出來,畢竟刷了500多個(gè)算法題。
我只想說如果是非985碩士,沒法發(fā)論文,沒法去實(shí)習(xí),還是老老實(shí)實(shí)做些軟開的項(xiàng)目吧,這些可能更有用。當(dāng)然,如果你是大佬,就當(dāng)我在放屁好了。
學(xué)這方面的知識(shí)還是別看書了,每天認(rèn)認(rèn)真真學(xué)會(huì)一種模型,從公式到代碼,每個(gè)細(xì)節(jié)理清,你就可以說你會(huì)這個(gè)模型了。書上理論講的很好,但是我認(rèn)為找一些項(xiàng)目更能幫助你理解這些。如果是數(shù)學(xué)知識(shí)不會(huì)的話,就需要好好補(bǔ)習(xí)一下了,其實(shí)里面的數(shù)學(xué)知識(shí)不算難。
https://www.zhihu.com/question/371622741/answer/1021067702
研一下開始準(zhǔn)備學(xué)習(xí)機(jī)器學(xué)習(xí),先是看了西瓜書,但是感覺西瓜書可能數(shù)學(xué)性不太強(qiáng),翻了一遍大概對(duì)機(jī)器學(xué)習(xí)進(jìn)行入門。然后看了李航《統(tǒng)計(jì)學(xué)習(xí)方法》,這本書非常非常推薦。對(duì)統(tǒng)計(jì)學(xué)習(xí)方法進(jìn)行比較深入的講解,跟著這本書把lr、svm、gbdt等很多方法推了一邊,中間用到的概率論,線性代數(shù)等數(shù)學(xué)知識(shí)也去重新看了一下。多看博客,很多大佬們寫的博客非常有用。
上面這些都是理論,在你看完書,會(huì)推公式并且理解算法之后,可以自己打一些比賽,比如kaggle或者天池,從入門級(jí)打起,泰坦尼克?剛開始最好別用sklearn這種封裝好的庫,盡量自己實(shí)現(xiàn)一下lr、svm這些基本的模型。(當(dāng)然得有個(gè)比較好的python基礎(chǔ))。打比賽名詞也不要求高,因?yàn)楸荣惱嫌妥觽兌加泄潭ǖ膖rick,對(duì)新手而言比賽就是用來入門的,進(jìn)入機(jī)器學(xué)習(xí)這個(gè)領(lǐng)域。
下面推薦去實(shí)習(xí),因?yàn)槲覍W(xué)校地理位置優(yōu)勢(shì)+導(dǎo)師人比較好,所以比較早的去某廠實(shí)習(xí)。個(gè)人感覺實(shí)習(xí)對(duì)能力增長(zhǎng)更快,無所謂是工程or理論。第一份實(shí)習(xí)還是以打雜為主,幫忙寫寫hadoop腳本,寫寫數(shù)據(jù)分析腳本等,偶爾跑一點(diǎn)xgboost,玄學(xué)調(diào)參。第二份實(shí)習(xí)開始用tf寫深度學(xué)習(xí)模型,也是個(gè)比較基礎(chǔ)的活。第三份實(shí)習(xí)開始接觸創(chuàng)新型的東西,在一些算法基礎(chǔ)上做了點(diǎn)創(chuàng)新。要是沒法實(shí)習(xí),就得打一點(diǎn)名詞比較好的比賽,或者發(fā)paper。(實(shí)習(xí)來看面試官們對(duì)比賽不太感冒,比較感興趣paper)
很多師弟問我要不要入坑機(jī)器學(xué)習(xí),我都持勸退態(tài)度。第一算法方向工資已經(jīng)和開發(fā)差不多了,沒有啥優(yōu)勢(shì)。第二算法人實(shí)在是太多了,而且個(gè)人理解門檻比開發(fā)低一點(diǎn)。第三算法方向積累可能沒有開發(fā)高,實(shí)習(xí)期間很多正式員工干幾年都從事開發(fā)去了,而且算法還要寫論文這個(gè)很頭疼。
要是入坑了機(jī)器學(xué)習(xí),建議首先還是定一個(gè)方向,比如cv、nlp、推薦等,當(dāng)然大佬們?nèi)慷紩?huì)的就忽略把。。。每個(gè)領(lǐng)域都有很多頂會(huì),讀paper并且復(fù)現(xiàn)是很重要的能力,然后每個(gè)方向深究下去都有很多東西值得學(xué)習(xí)。
個(gè)人認(rèn)為對(duì)算法工程師的要求可能大部分業(yè)務(wù)部門停留在會(huì)用,用好模型這個(gè)階段。更關(guān)心面試者能不能理解業(yè)務(wù)背景,選一個(gè)好的簡(jiǎn)單的模型。而魔改模型然后發(fā)paper可能是達(dá)摩院這種大佬們做的事把。
https://www.zhihu.com/question/371622741/answer/1111017469
https://www.zhihu.com/question/371622741/answer/1524876086
一開始跟了cs231n課程,也看了李航的書、西瓜書什么的,我記得我一開始從頭啃西瓜書的時(shí)候,我?guī)熜侄己荏@訝,因?yàn)檫@本書他們從來沒有從頭到尾看過一遍。所以這些書看完我也沒留下什么印象,cs231n和課程的筆記還是挺有用的,算是打基礎(chǔ)了,講的真的很好。還看了幾篇綜述類的論文,然后在老師的幫助下選了方向,去知乎或者博客看一些中文的介紹,包括進(jìn)展之類的,大概花了兩三個(gè)月。
然后開始看論文,一開始一周一篇,后來慢慢一周兩篇,一天一篇,一天好幾篇,在后面對(duì)于自己領(lǐng)域的論文看看摘要、introduction和實(shí)驗(yàn)部分就差不多理解了,好一點(diǎn)的論文再看看方法部分,很快就能過一篇,我們課題組每周都有組會(huì),輪著講論文,所以中間接觸到很多方向的論文,也有幾篇論文是自己挖透了做ppt講給大家聽,后面還需要給大家答疑的,所以對(duì)于自己講過的論文都是看了好多遍,這其中才開始真正用到工具書,在遇到一些不懂的東西的時(shí)候,帶著問題去查閱工具書才是最有效的。大概花了不到半年,這樣研一上學(xué)期就結(jié)束了。因?yàn)橛姓n,所以進(jìn)度比較緩慢。
研一下學(xué)期開始一邊看論文,一邊復(fù)現(xiàn)代碼,一開始配環(huán)境真的是要炸了,而且我第一個(gè)配的環(huán)境超級(jí)復(fù)雜,可能當(dāng)時(shí)設(shè)備的系統(tǒng)版本不對(duì),大概裝了快一個(gè)月都沒有裝好,反反復(fù)復(fù)各種問題,每天下了課就去實(shí)驗(yàn)室配環(huán)境,有時(shí)候一個(gè)問題要解決一個(gè)周,好不容易通了又跳出來一個(gè)問題,于是很悲催的,到最后還是失敗了,所以換了一篇代碼,大概花了兩天,配好了。。。也不知道我一開始為什么這么執(zhí)著。。。配完環(huán)境以后開始看代碼,第一個(gè)復(fù)現(xiàn)的代碼是caffe的,很抽象,看了大概一個(gè)月,大概搞清了來龍去脈,包括很多底層文件也看了一些,當(dāng)然組會(huì)一直在繼續(xù),這中間突然我冒出來一個(gè)小想法,于是開始想改代碼,又找了一個(gè)pytorch的代碼配環(huán)境然后改,第一個(gè)小想法很水很水,大概一周左右就改好了,而且效果特別好,只是創(chuàng)新性很低,一開始實(shí)驗(yàn)室的老師是不太支持我的這個(gè)想法的,他覺得可行但是不適合作為創(chuàng)新點(diǎn),但是因?yàn)橄胱屛蚁葘懫撐臐M足畢業(yè)條件,可以先寫寫投個(gè)簡(jiǎn)單的。
這個(gè)時(shí)候大概研一下學(xué)期還沒到暑假吧,暑假之前我把論文初稿寫出來了,我的導(dǎo)師當(dāng)時(shí)在國外,他不太懂我的這個(gè)方向,看見效果覺得不錯(cuò),就讓我好好寫打算投個(gè)好點(diǎn)的,我很慌啊 ,我也深知自己的創(chuàng)新點(diǎn)很水,雖然結(jié)果很好。于是又想了一些東西加進(jìn)去,雖然效果沒提高很多,百分之零點(diǎn)幾的貢獻(xiàn),但是總算湊出來一篇論文了,大概暑假之前寫出來初稿了。研一結(jié)束。
研一的暑假,課題組的老師帶著我和另一個(gè)同門做了個(gè)比賽,不得不說,這個(gè)比賽是我學(xué)業(yè)的一個(gè)轉(zhuǎn)折點(diǎn),因?yàn)閯偤檬俏已芯康姆较颍哉伊藗€(gè)tensorflow的代碼當(dāng)作baseline來做比賽,至此為止,已經(jīng)對(duì)caffe、pytorch、tensorflow三個(gè)框架都熟悉了。大概花了一個(gè)月,每天在學(xué)校做比賽,因?yàn)閾Q了比賽數(shù)據(jù)集,所以對(duì)整個(gè)代碼重新讀了一遍,做了很多修改,最后總算跑通了,跟老師匯報(bào)之后又改進(jìn)了一些,順利進(jìn)入決賽,八月份去廣州參加了決賽,最終得了個(gè)二等獎(jiǎng),對(duì)我來說已經(jīng)是很好的結(jié)果了,老師也很開心,決賽期間一有時(shí)間就帶我們吃大餐,潮汕火鍋、早茶什么的,還帶我們夜游珠江,給我們拍照。前兩天和老師吃飯還聊起,這個(gè)比賽,我們學(xué)校每年都參加,迄今為止,只有我們得了獎(jiǎng)。因?yàn)槭墙逃康模瑖壹?jí)的獎(jiǎng),所以學(xué)校還是挺認(rèn)可的,我記得還發(fā)了獎(jiǎng)金,雖然難度比不上阿里天池之類的比賽,但是學(xué)校認(rèn)啊。
比賽做完已經(jīng)八月二十幾了,這才開始我的暑假,回家舒舒服服的待了一周。研一結(jié)束
研二開始很長(zhǎng)一段時(shí)間沉浸在比賽得獎(jiǎng)的喜悅之中,除了日常看論文,就只是找老師幫我改論文了,我們老師改論文相當(dāng)細(xì)致,一個(gè)introduction改了有一個(gè)周,和我一起一句一句的捋,每句話每個(gè)詞都要琢磨半天,幾乎重寫了一遍。當(dāng)然改的這么慢的原因是我的創(chuàng)新點(diǎn)太水了,為了寫的好一點(diǎn),老師真的是絞盡了腦汁,全程皺著眉頭冥思苦想,也是難為老師了。我真的覺得我課題組的老師相當(dāng)奈斯,超有耐心,而且很專業(yè)。改論文加上補(bǔ)實(shí)驗(yàn),再改論文,再再改論文,第一篇論文磨了三四遍的樣子,終于在研二上學(xué)期結(jié)束前投出去了。也就是說我研二上學(xué)期并沒有做很多事情,寒假之前做了個(gè)比賽,但是也沒有太投入,不了了之了。
研二下學(xué)期,調(diào)整心態(tài)重新開始搞論文,當(dāng)時(shí)有了新的想法,花了三個(gè)多月去做,因?yàn)樵O(shè)備等的原因,效果并不好,當(dāng)時(shí)只有一個(gè)1070,所以整個(gè)想法也就泡湯了。然后禍不單行的是這個(gè)時(shí)候第一篇論文被打回了,直接reject,投的是sci三區(qū),雖然我覺得確實(shí)有些配不上,但是導(dǎo)師安慰我道:“沒事,我們改改投個(gè)更好的。”。我。。。我內(nèi)心都崩了,實(shí)驗(yàn)室的老師也勸我要不投個(gè)簡(jiǎn)單的先把畢業(yè)的問題解決了,然后再安心做科研。但是導(dǎo)師堅(jiān)持要投一個(gè)還不錯(cuò)的會(huì)議,于是我們把拒稿時(shí)候的建議整理了一下,有幾個(gè)建議還是挺靠譜的,認(rèn)真改了改之后轉(zhuǎn)投了個(gè)會(huì)議。
另一篇論文在做了這么久的無用功后,開始著急。和老師討論之后換了一種方案,大概在暑假之前完成了改進(jìn)以及部分實(shí)驗(yàn)。改通實(shí)驗(yàn)不久得到了第一篇論文中了的好消息,最終發(fā)表了ccf b類會(huì)議,所以發(fā)論文這種事情就很懸,說不定最后就中了一個(gè)更好的,還真應(yīng)了我導(dǎo)師的話。
隨后花了整個(gè)暑假跑實(shí)驗(yàn)加改論文,基本上把第二篇論文弄出來了。研二至此結(jié)束,真是大起大落的。
研三開學(xué)的時(shí)候,我的導(dǎo)師就從國外回來了,因?yàn)槲沂鞘紫蟮茏樱岳蠋煂?duì)我的論文特別上心,實(shí)驗(yàn)室的老師帶我改完之后又找了一個(gè)博士大牛帶我一起改,隨后又找了我導(dǎo)師國外的導(dǎo)師給改了一遍,才投出去,投出去的時(shí)候已經(jīng)十二月了,也就是我研三花了半年的時(shí)間補(bǔ)實(shí)驗(yàn)改論文,最后投了個(gè)sci一區(qū),中間也開始找工作。后面就不贅述了,基本上就是畢業(yè)論文的事情,做了幾個(gè)小比賽,整個(gè)研究生的科研巔峰都在研一研二上,加上我平時(shí)壓力小,節(jié)奏慢,成果也不多,原本安排的第三篇論文也被我簡(jiǎn)單指導(dǎo)了一下打算交給師弟師妹了。
趁此機(jī)會(huì)梳理了一下自己的研究生三年,感覺導(dǎo)師真的是相當(dāng)好了,平時(shí)有條理的安排時(shí)間和任務(wù),從來沒有發(fā)過脾氣,實(shí)驗(yàn)室兩個(gè)老師加上我的導(dǎo)師一共三個(gè)老師,他們平時(shí)關(guān)系也很好,從來沒有一個(gè)老師壓迫過學(xué)生,但是任務(wù)也都會(huì)按照計(jì)劃來督促,也很支持學(xué)生的選擇,想好好發(fā)論文就會(huì)認(rèn)真指導(dǎo),想找工作也會(huì)支持快點(diǎn)滿足畢業(yè)條件然后放出去實(shí)習(xí)。還有我一直以為我的導(dǎo)師平時(shí)沒有什么事情呢,后來才知道他很忙啊,天天晚上加班的,寫項(xiàng)目書寫方案什么的,從來沒有讓我?guī)退蛇^活,就讓我專心搞學(xué)術(shù),我甚至研一的時(shí)候碰見一個(gè)同學(xué)去幫我導(dǎo)師報(bào)賬,也就是說他有啥活都找別人的學(xué)生去跑腿。
研究生期間有個(gè)好導(dǎo)師太重要了,我室友的導(dǎo)師就是逼著他們發(fā)論文,最后還不許他們找工作不許出去實(shí)習(xí)。
言歸正傳,學(xué)好這個(gè)專業(yè),讀論文看書是基礎(chǔ),不能當(dāng)作主要的任務(wù),重點(diǎn)是跑代碼,做比賽是一個(gè)快速提升的好辦法,另外可以看看別的相關(guān)方向的最新進(jìn)展,因?yàn)槲覀兘M會(huì)的時(shí)候會(huì)聽很多其他方向的論文進(jìn)展,所以對(duì)自己方向的改進(jìn)挺有利的,雖然是最好的方式是先發(fā)現(xiàn)問題再找對(duì)策,因此產(chǎn)生創(chuàng)新點(diǎn),但是一開始的時(shí)候沒有想法的話就可以嘗試先改進(jìn)再想原理,雖然不是一個(gè)值得提倡的方式,但是因?yàn)闂l件限制,也只能先這樣了,后來我看到cvpr發(fā)了一篇和我中間放棄的想法差不多的一篇論文,但是人家的實(shí)驗(yàn)動(dòng)不動(dòng)64張卡,一百多張卡的,我們實(shí)驗(yàn)室現(xiàn)在雖然條件已經(jīng)很好了,但也只是十幾塊p100而已。還有就是想法不論大小,大膽去改,一開始看代碼總是不敢改,尤其是很大的改進(jìn),就怕自己改壞了,后來備份之后直接大膽去改了,改起來其實(shí)很順利。
往期精彩:
Swin-UNet:基于純 Transformer 結(jié)構(gòu)的語義分割網(wǎng)絡(luò)
Swin Transformer:基于Shifted Windows的層次化視覺Transformer設(shè)計(jì)
TransUNet:基于 Transformer 和 CNN 的混合編碼網(wǎng)絡(luò)
ViT:視覺Transformer backbone網(wǎng)絡(luò)ViT論文與代碼詳解
【原創(chuàng)首發(fā)】機(jī)器學(xué)習(xí)公式推導(dǎo)與代碼實(shí)現(xiàn)30講.pdf
【原創(chuàng)首發(fā)】深度學(xué)習(xí)語義分割理論與實(shí)戰(zhàn)指南.pdf
求個(gè)在看
