當前位置:
首頁 > 最新 > 一周入門,一年自通,機器學習沒那麼難

一周入門,一年自通,機器學習沒那麼難

科技時代,我們更加懷念溫暖邂逅的時光

全文共2559字,預計閱讀時長3分鐘

機器學習是人工智慧的重要內容,在各種技術應用文章中被提及最多。但是隔著人工智慧的面紗,要理解機器學習,學習機器學習知識,總讓人覺得難以著手。

其實,對機器學習的研究早就開始,也經歷過幾十年的試錯,直到最近幾年,這方面的研究才真正開始向前推進。就像站在巨人的肩上,我們學習機器學習可以少走些彎路,直接從機器學習步入正軌的地方開始學習。

道理我們都懂,但具體怎麼做才好?說起來容易,做起來哪有那麼簡單?有沒有比較好的示範?

考慮到廣大同胞們的困惑和需求,今天我們要和你分享Per Harald Borgen的故事,從他的零基礎自學機器學習經歷,也許你會受到啟發。

Per Harald Borgen來自挪威,從事著計算機軟體方面的工作。2014年,他對機器學習產生了興趣,2015年,他開始了入門,然而,在5天的基礎學習中,他發現入門比想像的容易。在之後的一年,邊工作邊學習,他開發出了自己的機器學習演算法,並派上了用場。

入門比我想像的容易

在入門之前,Per Harald Borgen已經通過閱讀、視頻課程、理論課程,對機器學習有了基本的概念,但他仍然不能將知識轉換為代碼,這是他想要改變和做到的。雖然當時他只是一個業餘編碼員,但仍然想要嘗試。

在 Hacker News 上諮詢之後,他得出的結論是 Python 的 Scikit Learn 庫是最適合入門的。這個庫提供了豐富的演算法,將實際的機器學習問題減少到幾行代碼。

在一周5天的時間裡,他的學習路線是這樣的:

星期一:學習一些實例,逐步了解 Scikit 學習。

Per Harald Borgen最後他選擇了一個「使用機器學習投資股票」的教程。過程中,他發現,獲取和清理數據比機器學習更耗時。因此,編寫腳本抓取文件或網路中的數據的能力是一個機器學習「極客」的必備技能。

星期二:嘗試用機器學習解決實際問題。

「給定一個人的教育水平,年齡和收入信息,計算機能不能預測其性別?」Per Harald Borgen對這個問題產生了興趣。觀察和清理銀行提供的數據集,使用 Scikit Learn map 找到一個適合的演算法。雖然最後預測的成功率只有 63%,不過比拋硬幣准多了,而且能解決實際問題,這讓他備受鼓舞。

星期三:從頭開始,學寫演算法。

在玩轉各種 Scikit Learn 模塊後,Per Harald Borgen覺得自己其實不明白後台發生了什麼。好在coursera 課程詳細介紹了幾種演算法的工作原理,描述了最底層最基礎的概念。他就用Python從頭編碼了一個線性回歸演算法。追溯源頭、了解後台細節,Per Harald Borgen覺得是一種高效的學習技巧。

星期四:研究Kaggle的入門教程

Kaggle 是一個機器學習的競賽平台,你可以在其中提交公司或組織發布的問題的解決方案。Per Harald Borgen研究了 Kaggle 的入門教程,還做了一點點自然語言處理。他建議在對機器學習有一些理論和實踐經驗後再嘗試 Kaggle,否則可能沒什麼收穫,反而覺得沮喪。他大概也嘗到了沮喪的滋味吧。

星期五:繼續Kaggle教程的學習。

有什麼比一邊學習,一邊實踐,一邊交流,更能鍛煉和鞏固人的呢?用一周時間讓自己完全沉浸在一個新的項目當中,這是充實有效和愉快的。

哈哈,我掛了幾門AI課

Per Harald Borgen學習機器學習的路並不總是順順利利,比如成功掛掉了Coursera 機器學習課程。

原因不是課程的錯,只是對一個初學者來說,課程內容太難,很難跟上。再加上用的是一門新的編程語言Octave,同樣十分具有挑戰性,自己也最終放棄了。

適合自己的才是最好的,事後,Per Harald Borgen總結出了經驗。要麼是用機器學習圖書館來進行編碼任務,而不是從頭創建演算法,又或者至少是用自己了解的編程語言。

對於新手來說,學習一門新的語言,並同時編碼機器學習演算法,實在是太難了。應該從簡單和容易操作的東西開始學,而不是困難和理論性的。

同樣掛掉的還有神經網路課程。

Per Harald Borgen想要複製在機器學習周取得的成功,將經驗用在神經網路,結果失敗了。原因在於,時間和精力容易被分散。

不同於機器學習周,當時自己處在一個訓練營地,周圍都是機器學習的愛好者,每天就專註著學習機器學習。而學習神經網路,卻沒有這樣一個相對封閉的環境和積極的氛圍。

但是,至少也開始著手從事了神經網路的研究,並且也慢慢掌握了要領。終於在幾個月後,成功編寫了自己的第一條網路。(此處應有掌聲……)

一年後,成功為公司開發了個演算法

2015 年聖誕假期,距離一周的入門學習已經過去了10個月,Per Harald Borgen已經積累了一定的實踐經驗和知識儲備,他再一次鼓起勇氣,決定試驗 Kaggle。

他花了相當一段時間來試驗各種演算法,用於測試 Kaggle 的住宅報價轉換,奧托集團產品分類,以及自行車共享需求競賽。通過試驗各種演算法和數據,使結果得到不斷改善,這是他最大的收穫,也學會了要在做機器學習時相信自己的邏輯。

在做了以上所有工作之後,Per Harald Borgen覺得自己已經準備好在實際工作中做一個機器學習項目。

他通過閱讀對企業的描述和簡介訓練出一套演算法,來幫助自己任職的公司Xeneta更好地發現潛在客戶,確定銷售線索。並且實際證明,這替銷售部門的員工節省了大量的時間。

在他的開發日誌里寫著:「走到這一步確實是一個漫長的旅程,但其實也很快。在我開始一周入門的學習時,我完全沒想過自己能在一年的時間內熟練使用機器學習。但是這是100%有可能的。而如果我能做到,你也一定可以。」

讀芯君開扒

我有經驗有方法,你有心嗎?

梳理Per Harald Borgen自學機器學習過程,讀芯君從他身上總結出了幾條經驗:

1. 興趣不能當飯吃,試過才知道。人工智慧一火,帶起了不少人的興趣,但大多數人只停留在興趣和觀望,少了行動力。其實不管好與不好,難於不難,只有自己試了才知道。零基礎怕啥,誰還不是一點點學起來的?

2. 做個實用派,從實際問題出發,自上而下學習。大學裡的專業教育的思路常常是自下而上,先儲備各種理論知識,必要技能,打好基礎,再靠實踐,一步步往上,解決實際應用中的問題。但Per Harald Borgen是從實際出發,找到一個與AI有關,自己感興趣或者就在身邊的問題,尋找解決問題的方法,根據需要學習理論知識和技能。這種自上而下的學習,其實更有趣也更高效。

3. 我的節奏我做主,先易後難,適合自己的最好。雖說網上的優質資源很多,但不見得適合每一個人。選擇時,還要量體裁衣,量力而行。太難了,打擊信心,沒成就感容易放棄。還是從易到難,循序漸進,沒有誰能一口吃成一個胖子,擔心消化不良。

4. 組隊學習,事半功倍。一個人學是孤獨,兩三個人一起組隊學,過程就會順利很多。有難題,可請教;有爭議,可討論;想放棄,沒面子;比一比,勁兒更足。和志同道合者一起,能創造出很好的學習氛圍,效率更高。

5. 這話你可能不愛聽——沒有什麼是堅持解決不了的,如果有,就繼續堅持。

機器學習永遠是沒有那麼簡單,但也沒有我們瞎YY的那樣難,讀芯君有計劃有方法,關鍵是,你有心嗎?

留言 點贊 發個朋友圈

我們一起探討AI落地的最後一公里

作者:六個太陽

參考文獻:

http://dataconomy.com/2016/10/machine-learning-year/

http://www.sohu.com/a/129004140_308467

如需轉載,請後台留言,遵守轉載規範

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

機器學習——神經網路代價函數、反向傳播、梯度檢驗、隨機初始化
機器學習——logistic回歸實踐

TAG:機器學習 |