前段時間,來自SAP(全球第一大商業軟體公司)的梁勁(Jim Liang)公開了自己所寫的一份 520 頁的學習教程(英文版),詳細、明瞭地介紹了機器學習中的相關概念、數學知識和各種經典演算法。編者看到後,也迫不及待的推廣給更多的讀者。完整的 PDF 請從文後作者公開的連結下載。
在介紹中,Jim Liang 寫到:
人工智慧是這兩年風頭正勁的領域,也是未來具有顛覆性可能的新領域。不少人嘗試去學習機器學習相關的知識。然而,一旦越過最初的 overview 階段,很多人就開始打退堂鼓了,然後迅速放棄。
為什麼會這樣?
極 高 的 學 習 曲 線
首當其衝就是數學,涉及統計學、微積分、機率、線性代數等,大家雖然都學過高等數學,但如果你還記得裡面的細節,算你牛。更可能的情況是,多數人都對高等數學忘記了,面對各種演算法裡的大量公式,感到厭惡,甚至恐懼。
其次因為機器學習本身是一個綜合性學科,而且是一個快速發展的學科,知識點散亂,缺乏系統性。
市面上的機器學習/深度學習書籍、文章、教程,遍地開花,但能以清晰的方式表達、循序漸進地講解的教程,其實不多,大量的教程沒有考慮到學習者的基礎,使得初學者感到挫敗和困惑。
圖 解 機 器 學 習
正是對機器學習的過程中的痛苦有切身體會,我希望能做一份教程,以淺顯易懂的方式去講解它,降低大家的學習門檻。我為此花費了數月時間,經常做到深夜,把自己的學習筆記整理成了這份教程。
從結構來看,全部教程包含兩部分:
Part 1 介紹了基本概念,包括:
- 機器學習的流程
-
資料處理
-
建模
-
評估指標(如 MSE、ROC 曲線)
-
模型部署
-
過度擬合
-
正則化等
在第一部分,作者先介紹瞭如今應用普遍的機器學習:從自動駕駛、語音助手到機器人。其中有些思想,也是眾多讀者們瞭解過的,例如:為何機器學習在這個時候會火(大資料、計算力、更好的演算法);機器學習、人工智慧、深度學習三者的關係等。
除了這些基礎概念,這份教程也對機器學習模型的開發流程做了影像化展示(如下圖),即使對此不太瞭解的讀者,也能透過這種流程展示有所學習。
建立機器學習解決方案的步驟
在 Part1 的其他小節,作者以類似的影像展示,對資料、建模、模型部署等內容做了詳細介紹,這裡就不一一列舉,可以從原報告檢視。
在 Part2,作者介紹了 常用的演算法,包括:
- 線性迴歸
-
邏輯迴歸
-
神經網路
-
SVM
-
Knn
-
K-Means
-
決策樹
-
隨機森林
-
AdaBoost
-
樸素貝葉斯
-
梯度下降
-
主成分分析
這部分包含了大量的數學公式,但作者盡力註解了其中的每個公式,從而充分、清晰地表達了眾多數學概念。
例如在「神經網路」部分,作者整理了 59 頁的筆記(從 311 頁到 369 頁)。作者從人腦中的神經元架構說起,介紹了人工神經網路(ANN)、人工神經元工作的原理。這份筆記非常注重影像化的概念解釋,理解起來非常直觀。
例如,下圖中的概念解釋很形象地展現了生物神經元和人工神經元工作方式的相似性。
生物神經元的樹突輸入-軸突輸出模式和人工神經元的輸入輸出模式對比。
過擬合的解釋。
人工神經元的基礎結構。
在涉及到數學公式時,作者會在旁邊有詳細的註解,如下圖所示:
對於並列的可選項(如啟用函式、常用神經網路架構等),也會有全面的列表:
常用的啟用函式。
然後會有每個啟用函式的單獨介紹:
Sigmoid 啟用函式。
用神經網路分類手寫數字的前向傳播示例(softmax 啟用函式)。
對於神經網路中較為複雜的概念(如求導、反向傳播),幾張圖就能解釋清楚:
關於神經網路的完整訓練過程,作者用簡略流程圖+計算細節展開的方式呈現:
反向傳播演算法完整流程。
前向傳播部分的計算細節。
就像前面提到的,這部分除了「神經網路」的介紹,還包括隨機森林、梯度下降等概念的介紹,讀者們可檢視原教程。
總結
看完這份教程之後,小編覺得這是一份包羅永珍的學習筆記,既適合非專業人士瞭解有關機器學習的基礎概念,又適合有專業背景的學生進一步學習。
寫教程是為了自己持續學習,分享教程是為了幫助更多人學習。就像作者所說,「Learning by doing/teaching, 寫這個教程主要是強迫自己持續學習,另外,也想分享給他人,希望能幫助到更多想學習 Machine Learning 的人,降低大家的學習痛苦。
資源獲取:
為了方便大家查閱,我把 PDF 下載下來傳到雲盤上,需要的可以按照以下方式獲取:
- 掃描下方二維碼關注 “程式設計師愛碼士” 公眾號
-
公眾號後臺回覆關鍵詞:520