Re: [請益] 非本科(無程式基礎),想走機械學習

作者: narwhalgary (獨角鯨葛瑞)   2016-05-13 15:01:46
我想就原po的問題做一些分享,不能說絕對正確,
至少是我轉進資工三年來的心得,
原po的問題是,一個沒有程式和資工基礎的人,是否有辦法轉進機器學習的領域?
這個問題其實很大很難回答,首先,機器學習這個詞現在是很廣泛的,
凡是有用到一些類似的演算法,不管再電腦視覺、人工智慧、自然語言處理等等,
其實都可以歸到機器學習的範疇,問題是,你到底對哪個有興趣?
接下來的討論就學術的領域回答,因為我不知道工業領域的可能性:
(1)我可能對很多都有興趣,反正以後再轉就好啦
Ans:錯。
一旦你進了實驗室,你大半的實驗方向其實就決定了,舉例來說,
我進了電腦視覺的實驗室,你就不能去做自然語言的東西啦,除非你轉實驗室。
所以你必須先清楚自己到底對哪種有興趣才是最重要的。
(2)可是我又還沒有進實驗室,我哪知道?
Ans:錯。
你當然可以進實驗室再找方向,但是這真的很冒險,尤其是你事先離職進入一個
未知的領域,我建議你先看一些top conference,看一些paper讓你有些感覺,
你真的對某一方面有很濃厚的興趣,你再去深入考慮要不要進去這領域。
舉例:電腦視覺有CVPR,ECCV,ICCV,人工智慧有AAAI等等(我只看電腦視覺的)。
(3)好吧,那假設我想走電腦視覺這樣算決定題目了嗎?
Ans:還是不行。
光是電腦視覺裡面還有好幾個子項目,classification,recoginition,image matching
很多東西可以跟類似的演算法結合,但是差異真的很大,你必須了解每個子項目
的優勢和缺點,你才有可能做的好,不然你會痛苦很久,通常了解一個子項目,
我會建議你花一年的時間實作一些open source的程式,假設今年是2016,
你最好把2015的每種最好的方法至少有辦法做出兩三種來,不然你無法比較。
(4)可是我只是想踏入這個領域,有必要要求這麼高嗎?
Ans:有。
一旦你踏入了某某資工系,或某某學術機構,你想做類似ML的研究,除非你是一開始
就想走創業這條路,不然你大概就是學術研究優先,如果你要學術研究,
你的目標就是打敗現今最強的方法,才有可能發paper(有用的paper),
如果你只是想要隨便發一篇碩士論文,隨便畢業一下去上班,那我不建議你這樣走。
但是當然,沒有開始了解就沒有結果,沒有接觸也沒有感觸,所以這也只是建議而已。
(5)好吧,所以你還是沒回答我轉進去是不是可行的?
Ans:可以的。
因為我是物理系的,博士班才轉進去,我同實驗室的各種電機系、半導體和寫網頁的,
其實和ML沒半點關係,大家即使進去了,其實也會卡住很久,卡住幾個月或幾年這
是看你的努力程度和資質,並不是說有程式背景就會一帆風順,重要的還是你的動機,
足不足夠讓你撐到你發達的那天(發paper的那天)。
(6)那我需要先學好什麼程式嗎?
Ans:yes and no.
你不應該預設你自己該學什麼程式,因為你會需要學很多種(掩面),特別是不同領域
習慣使用的程式也差很多,我舉個例子來說,你應該有聽過深度學習(deep learning),
你知道光是深度學習的套件大概就有六七種之多,你知道光是電腦視覺之中,每種子項目
所使用的套件就有嚴重的不同,簡單來說,一旦以前的人用了某種套件,你最好能夠
跟他比較,那你就最好學會這種套件,而學會一種,都要花上很多很多的時間,
所以回過頭來,我還是先建議你先決定你到底真正對哪種領域的哪個子項目有興趣,
才是最重要的。
可能有些人會跟你說,『只要你精通某種程式,你就可以寫出天下所有演算法。』
理想上來說是這樣沒錯,但是實際上我認為是浪費時間,因為學術研究上,
你會發現很多人的演算法,你是極為難以複製的,簡單來說,你最好使用他提供的
程式,不然你重新做出來的東西效能可能沒有人家report的十分之一,而這不是因為他的
方法錯了,是因為你程式做錯了(當然也有可能是因為他paper說謊,不過通常是
寫錯了),如果你是對ML本身有興趣而不是程式優化,你不該太執著於自己把某種方法
做出來,因為通常是做不到的(而通常有人會誤解這是自己程式基礎不夠)。
(7)那我到底應該先會什麼?
Ans:Google。
這點我真的完全沒有在開玩笑,基本上你只要有一台電腦,可以google,可以拿到那些
paper,你就可以開始做研究了。因為我剛剛提到的每一點,都可以從搜尋開始,
你可以搜尋那些大領域、子項目、paper、最新的code,你通通拿的到,只是可能你不
知道其實現在的網路如此強大,還有你可能沒有一些一起研究的同學之類的。你可能
不知道一些專有名詞如何去搜尋,可能你也不知道要先去找引用citation最多的paper,
有些東西的確需要老師,有些也許需要學校,但是你最需要的其實是google,
舉例來說,你想知道什麼是PCA,你可以去翻課本,去上數學課,你也可以去google找
到一篇中國人寫的blog然後用一個小時弄懂順便把他的code拿來實作一下,(為什麼
是中國人是因為他們寫blog分享研究的風氣很盛行,你甚至不太需要懂英文)。
(8)我什麼時候才知道我具備這些能力了?
Ans:Related work。
你看paper的related work的時候,你已經知道作者會講某些方法,而這些方法
你都大概知道做什麼了,而且你知道彼此的優劣,你就具備了研究的能力了。
(9)那我該怎麼開始?
Ans:開始看paper。
只有開始看,你才有機會去碰到我剛剛說的每一項問題,你才知道原來自己是做不出
來某些paper上面根本沒有提過,但是他們放出來的code裡面卻有的細節,
你才知道某些paper是bull shit,某些是瑰寶,你的心裡應該要記得某些打動你
心的paper,如果你對某些work有深深的敬畏,你就知道你其實適合做研究了,
至於是不是ML,是哪種ML,我覺得還是先看paper之後你才知道。
(10)那考試呢?
Ans:蒐集資料。
基本上台大博士班的考試,期中或是資格考,還是一個蒐集資料的過程,簡單來說
就是考古題,我和我同學都認為蒐集完這個資料能讓我考試準備的過程越短越好,
為什麼?因為我們想要做研究,考試是浪費時間但是又不得不考。你可能會問,
申請碩士或博士的考試呢?我認為最好的方法就是不考試,所以你應該先去找個
老師,用研究助理的方法直接進去研究(我們很多同學都無背景),然後申請學校
的時候最好有老師的推薦信,這樣口試委員基本上就讓你過了(真的),如果
你可能沒辦法這樣,那你可能會需要筆試,就硬著頭皮去做吧,但是你要知道,
真正重要的開始是你開始看paper研究,開始真正的去想、思考、實作,
而不是說你辭職想考資工系叫做開始。

萬事順利
作者: alongalone (沿著孤單的路)   2016-05-13 15:07:00
首推..!?
作者: storm654321 (P助)   2016-05-13 16:41:00
推分享
作者: LinkCoffin (LinkCoffin)   2016-05-13 17:12:00
作者: neo5277 (I am an agent of chaos)   2016-05-13 17:12:00
看天分
作者: stitchris (史迪奇里斯)   2016-05-13 17:22:00
作者: xaos (wtichen)   2016-05-13 17:26:00
好文 推想當初 大一進資工系都不知道領域會分這麼細到大四了 只知道自己蠻喜歡ai少了很多時間去做相關的專題
作者: narwhalgary (獨角鯨葛瑞)   2016-05-13 17:33:00
有人問可以省很多時間啊(茶
作者: MIKEmike07 (加油!)   2016-05-13 18:30:00
XXX1好文 m
作者: A4P8T6X9 (殘廢的名偵探)   2016-05-13 19:28:00
推好文
作者: htc812 (大帥)   2016-05-13 19:47:00
推,我數學轉資工的心路歷程和你滿像
作者: hsu761001 (忙裡偷閒)   2016-05-13 19:55:00
作者: narwhalgary (獨角鯨葛瑞)   2016-05-13 20:08:00
希望拋磚引玉,大家能分享各自不同的經驗
作者: hei566 (Cheer)   2016-05-13 21:48:00
好文 不過當初真的很難想那麼細
作者: james847286 (金X5)   2016-05-13 22:05:00
推 這篇還蠻中肯的
作者: cocoyan (摳摳厭)   2016-05-13 23:06:00
好文
作者: joeywayi (拉拉拉吃屎啦)   2016-05-14 03:13:00
推推我也是物理系
作者: nitero (nitero)   2016-05-14 09:06:00
好文
作者: yibaby77 (P)   2016-05-14 12:21:00
作者: baseguard (....NN )   2016-05-14 18:08:00
computer vision不一定全跟ML有關
作者: ptt0211 (松城煙雲)   2016-05-15 00:03:00
好文推
作者: jskblack (天空茶)   2016-05-16 23:17:00
Image processing->computer vision-> ML
作者: dophin332 (...)   2016-05-19 16:40:00

Links booklink

Contact Us: admin [ a t ] ucptt.com