機器學習需要讀博嗎?
現在研一在讀,電子科大信號處理方向。但是從本科大四起對機器學習有關注,感興趣。現在有修機器學習的課程,關於入門的話題已在知乎上看過答案。想問的是,第一,畢竟不是本專業,自己學習的話可能比不上科班出來(?),在考慮是否有必要讀博。第二個就是在想自己是否適合讀博,當然也搜過相關問題,但還是想問,特別是在看過一個答案說 機器學習真心是給聰明人玩的。這句有點讓我引發思考,是否腦子夠用?比如現在用書PRML,看英文版稍微有點慢,但多看下還是可以理解。但覺得自己對機器學習還是很感興趣的,覺得有意思(可能沒開始看論文,不知水深淺吧)。第三,如果讀博,畢竟不是本專業,怎麼參與到論文發表,科研之中,想提高自己申請博士的競爭力。暫時就這些,希望各位前輩指條路讓我思考一下。謝謝!
我是你的學長,電子科大信號處理方向,現在博二,研究計算機視覺與深度學習。
我們的專業跟機器學習不算完全契合,但也是很接近的。但是據我觀察,我們專業很多人缺乏機器學習的兩大必備技能:數學和編程。
數學方面,我們本科學到的除了數學基礎課之外,專業方面有用的就只有信號與處理和模式識別,其中模式識別還是選修課。專業課中用到得更多的是微分積分,對概率、最優化、演算法等科目普遍要弱一些,而這些是機器學習中最重要的數學基礎。編程能力上就更差了,我們學的腳本語言是matlab,搞機器學習的人用matlab的已經很少了(我本人也還在使用matlab,感覺有點積重難返)。C++也沒有學,只有C語言課程。很多人甚至從來沒有接觸過linux。不知道題主是不是這樣的,但這些都是我們要補上來的。現在還是研一上吧,研一要做的事就是把上邊我說的基礎補好,研一有幾門數學課很不錯,矩陣、最優化、數值分析、圖論、模式識別(自動化程洪教授的)都是必選的。至於我們專業那一堆信號相關的課程,一個也不要選。
現在還需要把linux和python裝起來,開始學著在linux下編程。不過這方面我也做得不好,我的電腦中至今沒有安裝linux,你可以看看知乎上其他人的建議。
研一下的時候課程壓力就小很多了,這時可以開始看看論文,挑選自己感興趣的方向嘗試著復現一下,看看能否提出改進策略。
至於讀博,你先把上邊幾步做好,如果能在研一下至研二上做出成績能夠發表論文,那可以繼續深造。如果做不到,建議放棄,現在機器學習崗位也很多,去工作的話一樣是要看論文研究演算法的。
我走過很多彎路,做事往往事倍功半。以上是我的經驗之談,視野可能不是很開闊,題主有選擇性地看看就好。給一個答案,讀不讀博並不重要,得堅持。我本科是計算機的,但是沒有研究過機器學習和數據挖掘。然後直博,研究機器學習和數據挖掘。
最近得出的一個結論是,多看多練習。首先,得去看書,個人推薦凸優化,prml,統計學習引導,數據挖掘,模式分類,資訊理論,數值分析,矩陣計算,線性代數導論。這幾本書我都有,但是沒有一本是完全看完的,有幾本的看的多一點。數學這種東西,邊看邊忘,溫故知新。
然後個人建議最好用linux/python/c++(Java).之所以建議python大家都懂,python社區很活躍,很多python的庫被大神們優化的很好,甚至numpy有專門的英特爾優化版。至於,c++/java,我認為碼農只掌握一門語言是不夠的。linux看喜好吧,linux下面用pip install之類的命令比較方便。
其次關於演算法實現。實現自己的演算法,一定要用現成的演算法庫,這樣做的原因是將關注點放到具體的(數據挖掘)問題上來。筆者開始很天真,自己的演算法中所有的子演算法都是自己用c++實現,運行效果和運行時間不是一般的差。後來改過幾次,稍微有提升。但是,這真的不如直接調用現成的演算法庫來的好。
最後,(1)要去挖掘和分析真實的數據。一個最快的方法就是參加各種比賽.(2)實現一些基本簡單的數據挖掘演算法(例如kmeans)(3)還可以做一些簡單的數據挖掘應用,去web爬點數據做個推薦和預測什麼的。
讀博比較累,又要寫代碼調BUG(我到現在一共已經寫了幾十萬行代碼了,我上次統計了一下,還是局部的統計,一共30多萬行。正常我不休息的日子如果我寫代碼每天寫300行代碼是起碼的),又要看理論的東西(數學最起碼的東西還是要回的),還要寫論文做實驗,還要幫老闆做項目。像我除了偶爾水水知乎以外基本上就沒有太多的空閑時間了。反正比作其他的要累(至少我是這麼覺得的)。
至於出來好不好找工作,這個要看個人的。不能一棒子打死。關鍵看你代碼寫得怎麼樣,論文發的怎麼樣,你老闆是誰,對吧。
然後用什麼語言,我推薦C/C++或者python。matlab當然不是不可以,但是如果你不打算就把自己丟在高校或者所謂的『研究機構"的話寫我說的這些語言總歸是沒錯的。我本科。
不過有的課確實是博士才開的,比如凸優化,我同學就是博士才上這門課。
然而學什麼都看自己,又沒人攔你,不是非要有那個文憑學位才能做那些事。我帶過一個本科的實習生,機器學習搞得溜溜的,做事機智,基礎又紮實。當時極想留住他,可惜保送去北大了想找工作就別讀,想深入研究就讀。讀博之後去公司困難,但是有的去的話肯定待遇比研究生好。
想做深當然要讀博啊,最好是美帝的博,最好能跟著大師。你去跟世界上研究機器學習最狠最前沿的一群人一起,那是不是事半功倍?
學習機器學習確實需要門檻,但也沒有到只有讀博才能在這方面取得成果的地步。
我們幾個同事沒有一個是博士,都是在工作中研究機器學習的問題。目前取得了一些小成果,和大家分享一下。
我們的機器學習HAI主要是用來預測足球比賽結果,經過不斷改進,截至目前(2015-10-17)已經做到了連續命中11場賽果,命中率不斷提高,機器學習的效果正在逐漸展現出來。
題主多次提到不是本專業不是本專業,我就有必要說說了。專業這個東西是別人給你畫的圈子,只要自己不備限制住就沒有問題。就說我吧,本科是水產養殖專業,研究生是天文圖像處理,現在工作了做機器學習,不敢說多麼厲害,在同事之間也還湊合。
我在一家日資研發中心。
所以,不要把專業說的那麼重要……你自己的想法才重要~打算把bengio的deep learning 翻譯一遍。我今年大三
主頁:http://meank.github.io
取決於你的目標,如果是想做份和機器學習有關的工作,那就不需要。如果你想從事機器學習的研究,那就需要。
讀博需要好奇心和毅力。如果你還在懷疑是不是要讀博,那就還是不要讀了。讀個碩士賺錢吧。
ps。有人說讀了博士去公司會很難。其實這個和你的學校、導師以及讀博士期間還寫不寫代碼有關。國內很多爛學校爛導師的不讀也罷,如果可以去好學校、好導師那裡,畢業後不論去公司還是去學校都是很搶手的。我的感受,本科的高數、概率統計、線代是基礎的基礎了;矩陣論,凸優化,圖論是必備。流形啥的最好接觸到。比較麻煩的,是這些知識族在機器學習里是高度交叉的,學術訓練不到位,很容易卡殼。如果是覆蓋以上的博士,當然就是首席數據科學家了。
能出國讀博就出國讀,不能就工作。不過碩士階段才開始準備出國的話貌似很難,而且影響專業上的精力。
我是天津大學的,學電子與通信工程,專業方嚮應該和你一樣吧,如果只學本專業的話,畢業找不到好工作,甚至沒啥工作可找。雖然說專業這個東西是別人給你畫的圈子,但是你還得畢業啊,信號的課你該修還得修,這些與機器學習有關的課雖然上不了多少,但無關的課上了很多,咱也不是智商超群的人,真正的牛逼人也不會來發帖問這個了,每天上那些無關的課已經很費精力了,還能有多少精力投入到一個自己未知的領域當中呢。說了這麼多,無非是想表達跨行的難度與自身存在的劣勢,咱唯一的優勢就是一顆決心了吧,基礎的差距真不是一兩年能補回來的。Ps:認識一個西工大的女研究生,本科學機械,整天畫CAD,研究生跟了導師是自動化的,做計算機視覺方面的,現在方向是深度學習,幸虧他們畢業不用發SCI。。。再PS,跟她接觸了一段時間,我發現她對CV和ML領域了解得非常少,這種差距怎麼補
搞好學術還是要讀的,首選清華,其次浙大、南大(周志華老師很牛)、中科院計算所也都很強。 北大、哈工、上交等學校也很好。
學長我是今年電子科大的研一新生…從自動化調劑到了機電……但是同樣對那邊的模式識別和機器學習感興趣,跟你有同樣的疑問。不知道學長現在學的怎麼樣了……
簡而言之,這取決於你的職業規劃。。。如果你想成為ml領域的researcher,那麼phd is the minimum requirement;如果你只是想用ml的技術解決一些具體問題,就沒有必要了。
推薦閱讀:
※如何評價芝加哥大學社會思想委員會的培養模式?
※讀計算機的博士未來出路在哪裡?
※想從事經濟學研究,但是目前想先讀數學碩士再讀經濟博士可行嗎?
※從事科研的男博士 ?
※你對科研菜鳥有什麼發自肺腑的建議?