人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?
導讀:這是一篇保證你“看得下去”的文章。讓你真正搞懂機器學習學什么?怎樣學?
作者:莫凡
來源:華章計算機(ID:hzbook_jsj)
00?有關機器學習的三個問題和機器學習“知識棧”的三個層
你對機器學習的直觀感受是什么?
也許許多人的回答兩個字,科幻。東西是好東西,不過離自己還很遙遠。
真是這樣嗎?
掏出手機,美顏美圖用的是機器學習;
走出小區,無人化測量體溫用的是機器學習;
走進高鐵站趕回奮斗的城市,刷臉進站用的是機器學習。
機器學習已經向我們生活的方方面面滲透,也許很快就有那么一天,機器學習就要和水電煤一樣,成為我們生活中再離不了的第四種資源。
你說,上面這段話就跟心靈雞湯一樣,把人說得心里直癢癢,可真的想來品一口時才發現沒給勺子。
那好,下面想要分享的正是如何開始學習機器學習。我的方式有點不同,開始之前,你首先需要做的是問自己三個問題:
第一個問題,我為什么要學?
第二個問題,我需要學什么?
第三個問題,我該怎樣去學?
為什么要先問三個問題?這是因為,機器學習背后有一套龐大的知識體系,內容繁多,而且和網絡協議棧一樣,也是分了層的,姑且就稱之為機器學習的“知識棧”吧。這座知識棧共分成三個層。
知識棧的底層是數學,可以管它叫“數學基礎層”,它在機器學習中作用正如其名,是支撐上層功能運轉的基石。
中間這層的算法,就叫“算法原理層”吧。機器學習的微觀層面是算法,不是一種算法,而是很多種算法,而且現在還在不斷迭代更新。
最上面的這層是應用層,不妨叫“分域應用層”。為什么叫分域呢?因為機器學習是一套實踐之學,是用于解決實際問題的,而現實世界中的問題千千萬萬,不同領域問題各不相同,因此,機器學習要逐一解決這些各不相同的領域問題,也就延伸出了與之適應的分域應用。
當然,知識棧只是描繪了機器學習知識體系的大致結構,知識棧的每一層,還可以繼續劃分更多更細的子領域。機器學習的知識體系枝葉繁茂,而人的時間和精力則相對十分有限,正因如此,只有明確了第一個問題,才能回答第二個問題,才能最終決定第三個問題,也就是大家一開始最為關心的問題,機器學習應該怎么上手。
不過,這三個問題不好回答。
要回答這幾個問題,你首先得對機器學習的三層知識棧有所了解,而你現在最大的問題,不正是對機器學習還缺乏比較全面的了解嗎?
正如你第一次走進一座很大很大的游樂園,哪怕你已經聽說了大家對這座游樂園評價都很高,你也不會馬上就清楚自己首先應該去哪里游玩,甚至游樂園里都有些什么設施,要朝哪個方向走過去,你都很可能并不清楚。這應該是絕大多數第一次來玩的游客都面臨的問題。
那么,有經驗的游樂園會怎么解決這個問題呢?它會在大門入口處設置一塊大地圖,名叫游玩導覽圖,園區里有哪些游樂設施,又分布在哪個方向,甚至還會畫上設施的樣子,讓你一目了然。這是個好辦法。
那么,接下來我會按照機器學習知識棧的三層結構,對機器學習的知識體系梳理出要點和聯系。我也知道,市面上名叫機器學習的各類書籍魚龍混雜,我會同時給出推薦的閱讀書目供大家參考。
01?數學基礎層
機器學習的知識棧是自底向上構建的。那么,我們先從知識棧的最底層,也就是數學基礎層說起。
一提到數學,我和大家的反應一樣,苦不堪言。數學很重要,大家都知道,可以說沒有數學,就沒有計算機科學。可是,數學實在太難學了,這么多年都沒學明白,而且剛一畢業,數學就全還給了老師。現在告訴我學機器學習,先得學習數學,難道我還得重修九年義務教育?
這確實是許多人對機器學習望而卻步的主要原因之一。不過,我要告訴大家一個好消息:機器學習里要學的數學,遠比你想象的要少,要簡單。
現代數學是一套不斷膨脹的公理體系,哪怕是職業的數學家可能也說不清楚數學全貌。不過好在,如果將數學繪制成一張世界地圖,那機器學習所要學習的數學知識,只不過是上面的一座小島嶼,主要涉及線性代數和概率統計兩個方面。
先說線性代數。機器學習需要用到許多運算,而線性代數正是機器學習里的四則運算,可謂是構成了機器學習的骨架。不過,線性代數作為一條主要的數學分支,內容也很不少,好在機器學習只是使用其中的向量和矩陣運算,在這個部分,我推薦《矩陣分析》:
這是一本經典的好書,寫得很好,不過不用讀完,建議仔細讀懂什么是向量空間、什么是矩陣、矩陣的基本運算法則,以及正定矩陣和奇異值分解的相關章節,那么機器學習的“四則運算”我們就掌握清楚了。
接下來是概率統計。如果我們說線性代數是機器學習的“骨”,那概率統計應該就算是機器學習的“魂”了。這是因為有一派主流觀點認為,機器學習就是個換了個皮的統計學,說機器學習的本質就是“擬合曲線”。
這里不做爭論,不過機器學習大量使用概率統計的概念,確實是不爭的事實。在這個部分,我推薦《概率論基礎教程》:
這本書的作者是Ross,Ross是統計學界的名家,出的教材都是經典。建議重點閱讀《概率論基礎教程》中關于概率、條件概率、貝葉斯概率公式、期望等概念相關介紹,以及了解各種概率分布,如什么是正態分布等。
機器學習數學方面的書現在越出越多,讀書的跟不上出書的,所以我推薦讀經典,而上述的兩本書都是數學領域的經典教材,讀過一定有收獲。
02?算法原理層
底層就這兩樣,接著該說算法原理層。
這是機器學習的核心層。機器學習大熱,講機器學習算法的書也一哄而上,多不勝數,不過,現在市面上的這類書,內容大致可以分為兩類,一類是往下靠,也就是往數學基礎層靠,翻開活脫脫就是一本數學教材;另一類是往上靠,也就是往分域應用層上靠,走另一個極端,寫成了一本教編程的書。
雖然說機器學習畢竟是一門實踐科學, 除了學各種數學公式,最終還要寫成代碼運行才能真正解決問題,不過如果只懂調用算法API而不去了解內在原理,用得再多也只是手熟的調包俠。
有沒有一本書,能兼顧數學和應用這上下兩層,同時從初學者的角度出發,使用比較通俗直白的語言來撰寫?我找了很久,可惜沒找到,所以我自己寫了一本,書名叫《機器學習算法的數學解析與Python實現》:
這本書我最開始其實想叫《睡前機器學習》,對,就是我現在公眾號的名字。我深深地清楚,經過一天拼盡全力的工作有多累,晚上回家還要克服刷視頻的沖動,放下手機轉為去讀一本又有數學又有算法的艱澀的專業書有多難。
所以,在華章公司老師的鼓勵下,我嘗試用一種新的方法介紹機器學習,學習算法,本該是一次充滿樂趣的探索之旅。
我認為數學教材之所以難讀,是因為數學太多抽象的概念,而讓人更難堅持的是數學概念之間嵌套引用,要清楚明白一個數學概念,往往需要額外再學一大串數學概念,而其中往往又包含有嵌套引用,不知道哪里才是頭,所以很容易給人一團亂麻、無從下手的感覺。
在《機器學習算法的數學解析與Python實現》這本書中,我嘗試改變這一現狀,只對反復使用、必須了解的數學概念用最直白最“講人話”的語言進行介紹,同時摒棄背后一大串錯綜復雜的概念,改為結合直觀形象的例子進行說明。
我希望在確保本書容易閱讀的同時,又能比較完整地呈現一幅機器學習的全景圖,成為連接機器學習知識棧最上層和最下層的“粘合劑”,讓每一個第一次接觸機器學習的初學者,都能像看了游樂園導覽圖一樣,做到心里有數。這也正是我寫作本書的初衷。對本書有任何問題,都可以到我的微信公眾號“睡前機器學習”留言互動。
03?分域應用層
最后,我們介紹知識棧的最上層,也就是分域應用層。前面我們已經說過,機器學習是一門實踐科學,最終需要編寫代碼才能運行。在這個方面,目前主流的做法是使用Python高級編程語言,調用Scikit-Learn庫來實現。
Scikit-Learn是當前最為知名的Python機器學習算法庫,提供了幾乎所有的主流算法。在這方面,我推薦《機器學習實戰:基于Scikit-Learn和TensorFlow》:
這本書基本是業內公認介紹Scikit-Learn最為清楚的書,同時還介紹了另一款知名的深度學習框架TensorFlow。
和軟件開發項目有生命周期一樣,機器學習的項目也有生命周期,大致可以分為收集數據、清洗數據、分析數據、選擇模型、訓練模型和輸出預測。也許很多初學者認為最費時間的是選擇模型和訓練模型。
其實,最花時間的反而是對數據的清洗和分析,往往是在生命周期中占了最大一部分。業界通常選擇使用一款名叫Pandas的Python庫完成這項工作,這方面的書推薦《利用Python進行數據分析(原書第2版)》:
這本書非常好,作者就是Pandas的作者本人,權威性無可挑剔。而且內容非常詳實,由淺入深每一步都寫得十分清楚,覆蓋又全,特別適合新手閱讀。
上面提到數據處理占據了機器學習生命周期的最大一部分,而另一大部分是調參,也就是為模型選擇最合適的參數。調參是機器學習算法在應用方面的重點也是難點,很需要經驗。
因此,現在業界的一大發展前沿,就是自動調參,在這方面我推薦《深入理解AutoML和AutoDL 》,對這部分發展做了全面清楚的介紹:
04?深度學習
說完機器學習,說另一大熱門深度學習。目前深度學習有兩套最熱門的框架,一套是前面《機器學習實戰》這本書介紹的Tensorflow,另一套叫Pytorch。
Tensorflow是Google出品,牌子老用戶多,但普遍認為語法槽點很多,而由Facebook出品的Pytorch,因為“更有Python味”現在風頭大熱,頗有取而代替TensorFlow之勢。這方面我推薦《Python深度學習:基于PyTorch》:
Pytorch的書不少,不過由于Pytorch發展很快,早期0.X版本的很多語法已經不再適用,而這本書使用1.X版本的Pytorch,不會出現這一問題,而且結合了時下熱門的深度學習應用場景,具有很好的實踐參考作用。深度學習是借著圖像處理聲名鵲起的,這方面我推薦《深度學習與圖像識別:原理與實踐》:
這本書對深度學習在圖像識別方面的應用作了比較全面的介紹,不但介紹了熱門模型,還逐一介紹了目前學術界在圖像處理方面的熱門研究方向,如GAN、圖像識別和分割等。比較有意思的是,本書還介紹了KNN算法,算是對圖像處理算法作了一個比較全面的回顧了。
05?無人駕駛
最后,我想介紹一個經常上新聞、科幻感最強、同時也是了解的人最少、最有神秘感的機器學習分域應用:無人駕駛。這幾年關于無人駕駛的討論不少,但更熱衷討論的話題是無人駕駛衍生的社會問題和倫理問題,譬如電車難題,而對技術本身的討論反而少的讓人意外。
我想,這也許是因為機器學習是交叉學科,而無人駕駛更是交叉學科的交叉學科,涉及機器人學、車輛工程等等復雜學科,領域性太強,一般人難窺究竟。這方面我推薦《無人駕駛:原理和實踐》:
無人駕駛涉及的學科方向比較雜,而這本書把ROS、點云匹配、圖像識別、傳感器等構成無人駕駛的幾個重要方面都涵蓋在內,相當于給無人駕駛做了一次全景式展示。
本文系《機器學習算法的數學解析與Python實現》作者莫凡2月16日的直播內容整理,直播錄像可識別下方二維碼觀看。
有話要說????
Q:?你的學習進行到了哪一層?
歡迎留言與大家分享
猜你想看????
什么是大數據「實時流計算」?深度解析它的4大應用及4個特點
什么是機器學習?有哪些分類?怎樣上手開發?終于有人講明白了
世界上第一位程序員,竟然是詩人拜倫的女兒?
美國又禁華為?7本書,助力網絡安全產業國產化、自主可控
更多精彩????
在公眾號對話框輸入以下關鍵詞
查看更多優質內容!
PPT?|?讀書?|?書單?|?硬核?|?干貨?
大數據?|?揭秘?|?Python?|?可視化
AI?|?人工智能?|?5G?|?中臺
機器學習?|?深度學習?|?神經網絡
合伙人?|?1024?|?大神?|?數學
據統計,99%的大咖都完成了這個神操作
????
總結
以上是生活随笔為你收集整理的人人可懂的机器学习入门要点和阅读路径:学什么?怎样学?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么Flink会成为下一代大数据处理框
- 下一篇: 从上云到云原生,如何用新技术应对突发事件