|
1 新智元編譯 來源:Medium 譯者:聞菲 【新智元導讀】程序員 Per Harald Borgen 在 Medium 刊文,介紹了他在一年的時間里,從入門到掌握機器學習的歷程。Borgen 表示,即使沒有博士學位和高深的數(shù)學造詣也能掌握機器學習。這一點相信對不少人都挺有吸引力和啟發(fā)。不過,博士學位或許真的并非必須,但要掌握機器學習,學再多的數(shù)學也不會嫌多。下面就來看 Borgen 不脫產(chǎn),從菜鳥變熟手提升業(yè)績的故事。 Borgen 對機器學習的興趣始于 2014 年。跟很多人一樣,他最初是看到 Hacker News 的帖子,單純覺得教計算機學東西很酷。那時候他還只是個業(yè)余的編碼愛好者,連程序員都談不上。 于是,Borgen 開始了他的機器學習之路。首先,到 Uadcity 看監(jiān)督學習的視頻,然后閱讀所有能找到的、跟機器學習有關的讀物。 Borgen 總結(jié)說,“這給了我一點概念上的理解,不過沒有實踐技巧。” 同時,他也十分坦承,Udacity 的 MOOC 他并沒有上完——只要是 MOOC,他幾乎都沒有堅持上完過。這一點,無論怎么說,至少讓篇文章的置信度倍增。 2015 年初,Borgen 為了成為正式的開發(fā)人員,參加了 Founders and Coders(FAC)在倫敦的訓練營。在 FAC,他和同學一起,每周二晚上會看 Coursera 上機器學習課程的視頻。 不用說,大名鼎鼎的吳恩達的機器學習課。Borgen 表示課很贊,學了很多,然而他個人覺得這門課不適合新手。至少他自己,就需要反復看視頻才能掌握里面講的概念——當然,這是 Borgen 的個人感受。不過,Borgen 在 FAC 學的同學也一個個掉隊,最終他自己也掛掉了。 Borgen 總結(jié)說,他當時應該學一門用機器學習庫編代碼的課,而不是從零開始建算法,至少應該用他已經(jīng)知道的編程語言寫算法。 一句話,“對新手來說,一邊學語言一遍寫機器學習算法代碼難度是很高的”。這句話有一定的參考價值。 Borgen 的建議是,可以選擇 Udacity 的《機器學習入門》(Intro to Machine Learning),更容易入門,上來就能實踐,在提升經(jīng)驗值的過程中,學習的趣味性也會增多。 【經(jīng)驗】從簡單的實踐學起,之后再學困難的、偏理論的東西。 Borgen 在 FAC 做的最后一件事情,就是“一周學會機器學習”。他的目標是,一周以后能夠?qū)嵱脵C器學習解決實際問題,而他也成功做到了這一點。 具體的經(jīng)驗 Borgen 寫在了另一篇文章里。有興趣進一步了解,可以訪問:https:///learning-new-stuff/machine-learning-in-a-week-a0da25d59850#.elu1hfaak 簡單說,在一周的時間里,Borgen 做了以下幾件事情:
【經(jīng)驗】騰出一周時間來全身心地沉浸到機器學習里面去,效果驚人。 成功在一周的時間里拿下機器學習給了 Borgen 自信。因此,在他結(jié)束 FAC 回到挪威時,他計劃進行第二次挑戰(zhàn)——一周內(nèi)學會神經(jīng)網(wǎng)絡。 然而,事實是殘酷的。離開 FAC 那種 沉浸式學習環(huán)境后,要一天寫 10 小時的代碼可不容易。 【教訓】找一個合適的環(huán)境做這種事情。 不過,Borgen 到底還是學上了神經(jīng)網(wǎng)絡。去年 7 月份的時候,他寫完了一個網(wǎng)絡的代碼。雖然很粗糙,但完成比完美重要,對吧? 下半年,Borgen 換了一份新工作,這在某種程度上影響了他的機器學習學習進展。這一階段他主要做的是實現(xiàn)神經(jīng)網(wǎng)絡,他把大學時學的線性代數(shù)重新看了一遍。年底時,Borgen 寫了篇總結(jié): 《學習如何編寫神經(jīng)網(wǎng)絡代碼》 也是在這篇文章里,Borgen 記錄了他從零開始寫代碼的過程。這篇文章在 Medium 上點贊的數(shù)量接近 600。 2015 年圣誕節(jié),Borgen 參加了 Kaggle 競賽。當然,實踐的效果是顯著的,他得到了通過算法和數(shù)據(jù)實際迭代實驗的經(jīng)驗,也學會了在做機器學習項目時要相信自己的邏輯,“如果調(diào)參或特征工程從邏輯上看有用,那么一般都會有用”。 2016 年初,Borgen 想將他在去年年底獲得的動力持續(xù)到工作中,便詢問經(jīng)理是否能在上班時學新的東西——經(jīng)理答應了。雖然 Borgen 在文中沒有多寫,實際上,從這個經(jīng)歷中也能學到東西: 勇于提出需求,它們才有機會得到滿足——當然,你的需求需要合理。 于是,Borgen 就在上班時也能學機器學習啦(拿錢做想做的事情?。?。在 2016 年積累了相關經(jīng)驗以后,Borgen 的第一站是 Uadcity 的深度學習課程。然而,事實證明,對于現(xiàn)在的他來說,Udacity 的這門課已經(jīng)太淺。不過,課后的 Ipython Notebook 作業(yè)卻太難。Debug 澆滅了他的大部分興趣。又一次地,一門 MOOC 被他放棄。 但隨后,Borgen 發(fā)現(xiàn)了斯坦福的 CS224D,這門課讓他獲益匪淺。Borgen 總結(jié)斯坦福 CS224D 的好處是:
盡管 Borgen 仍然沒有把這門課上完,但他推薦有興趣的人去學。 另外,Borgen 在學這門課的過程中,為了完成題目,請了一位家教,時薪 40 美元,這位家教幫他發(fā)現(xiàn)了很多問題。因此,他得到了這么一條經(jīng)驗。 【經(jīng)驗】花 50 美元/時的金額聘請機器學習家教,絕對值得。(如果你有機器學習經(jīng)驗,你可以獲得時薪 50 美元的打工機會。) Borgen 在工作中實踐機器學習,他搭建了一個系統(tǒng),節(jié)省了公司銷售部門同事的很多時間。相關代碼:https://github.com/xeneta/LeadQualifier 以上就是 Borgen 在實際工作中一年掌握機器學習的歷程。不管帶不帶感,至少十分真實。Borgen 在文章末尾寫道:“如果我做得到,你也做得到。” 尤其是工作中的程序員,你不想試試嗎? 編譯來源:Machine Learning in a Year(https:///learning-new-stuff/machine-learning-in-a-year-cdb0b0ebd29c#.pj6h7f5xk) |
|
|