機器學習如何入門
作者:Leon
鏈接:https://www.zhihu.com/question/20691338/answer/102249162
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
數 學
很多人翻看任何一本機器學習的書,看到一推的數學公式就開始打退堂鼓了。開始搜索,提問“機器學習需要哪些數學知識?”然後得到的結果可能會是“矩陣分析,概率論,優化設計……”而且還會有大量的人推薦一些例如“All of Statistics”,“Convex Optimation”等等外文教材。至少我當時面對的情況就是這樣的。這種情況很可能後面會朝以下畫風發展。
看到上述推薦的那些經典教材,你像看待聖經一樣看待他們。抱著一種學會了那些課,我再看機器學習的書簡直就會是探囊取物的想法,你下載了巨多相關材料。但是,慢慢你會發現,除了把他們下載了下來,你並沒有任何的進步。你並沒有完完整整的看完一本,你並沒有在機器學習方面卓越超群。
入門階段真的需要這麽多的數學儲備嗎?未必。
入門階段我感覺你只要有普通工科專業大一大二那幾門基礎數學課“線性代數”,“高數”,“概率論與數理統計”就可以讓你入門了。
所以,千萬別被機器學習中的數學所嚇倒而不知道該如何下手。
只要有上述的幾門課的基礎,你完全可以看懂很大一部分機器學習算法。
程序語言
機器學習入門最佳的方法其實就是理論和代碼一起學習。一邊看相應的理論推導,一邊看並且實踐經典代碼。所以,為了更快入門,我推薦你最好能夠懂點MATLAB或者是Python語言。
Matlab和Python說實話做高端的機器學習肯定是不推薦的,但是如果你想的是機器學習快速入門,那這兩門語言絕對是絕佳選擇。
第一步
有了上述基礎後,你可以開始看點機器學習的相關內容了。我看很多人推薦elements of machine learning。我想說,你想讓一個基礎為零的人去看這本書,真的合適嗎???
所以,我推薦的是Machine Learning in action,(這裏面的完成語言為Python)這是英文版本的。當然如果你覺得英文對你是一個完全過不去的坎,(雖然我建議做技術的人都必須至少要看得懂英文)現在有中文版本,叫“機器學習實踐”。
這本書用盡量少的公式把機器學習的基本算法都過了一遍,而且還講得很清楚,更為重要的是他將公式和代碼結合了起來。因此,你的機器學習並沒有那麽的抽象了,你知道算法裏的公式如何的轉化為代碼。
所以,第一步,你可以耐著性子將這本書看完。反正我當時,把書中的代碼自己敲了一次,雖然代碼有的下載,你也可以選擇只是把代碼看懂完事。但我還是建議,自己敲一次,運行運行,這樣你會得到不一樣的體會。
第二步
學習Coursera上面Andrew Ng老師的machine learning的課程。這門課造福了眾多機器學習的入門者,不僅僅是因為課程全面,內容由淺入深。更加重要的是這門課程每次課都有課堂作業,作業不需要你寫出來所有的代碼,但是關鍵代碼要你寫出來,而且還會教你如何調試代碼。
初學者學這門課的時候很可能會買有耐心,又是英文的,又有進度要求,又有作業。沒關系,你可以把視頻下載下來(很多網盤裏都有下載好的視頻),然後慢慢的去啃。作業也是,可能你自己不能一口氣寫出來,沒關系,在自己做了大量嘗試後,去Github上面下載一些別人寫好的代碼看一看,找找自己的問題到底出在了哪裏。
總之,一定要耐著性子過一遍甚至是幾面這個課程。
第三步
這時候你已經對機器學習很多簡單的算法比較清楚了,但是可能還沒有一種大的全局觀。所以,我建議大家可以看看這兩本中文教材。周誌華老師的西瓜書《機器學習》和李航老師的《統計學習方法》,這兩本書都是作者花了大量心思編寫的,也是在中國眾多科技書籍中難得的兩本佳作。
英文書籍,可以推薦《Patten Recognition and Machine Learning》,《Elements of Statistical Learning》(但是這本書難度比較大,如果你有足夠的耐心,可以慢慢啃,多次的啃。相信每次都會有不同的收獲。我自己已經看了好幾次,但是確實每次都沒有完全看完,但是目前我遇到很多問題,我去翻這本書,還是能找到很多答案,尤其是我做稀疏相關的工作,裏面的相關內容講解非常清楚。)
第四步
這時候,機器學習你已經可以說大概入門了。後面的事情,就得根據你的需求來制定相關的學習路線。
比如,做大數據分析的,得去學學spark,Hadoop等計算框架;
另外,圖模型,深度學習……等等內容,都是一些方向。
自然語言處理、圖像識別、語音識別等等也是一些應用方向,更有大量的領域知識需要結合。
在前沿部分和第一到第三步的內容,如果你能按照這幾步走下來,入門是肯定可以的
機器學習如何入門