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