圖解機器學習:人人都能懂的演算法原理

機器之心發表於2020-04-04

圖解機器學習:人人都能懂的演算法原理

機器學習這個主題已經很普遍了,每個人都在談論它,但很少有人能夠透徹地瞭解它。當前網路上的一些機器學習文章晦澀難懂,理論性太強,或者通篇雲裡霧裡地介紹人工智慧、資料科學的魔力以及未來的工作等。

所以呢,本文作者 vas3k 通過簡潔的語言和清晰明瞭的圖示內容,使得讀者能夠更容易地理解機器學習。拋卻了晦澀難懂的理論介紹,文中側重於機器學習中的實際問題、行之有效的解決方案和通俗易懂的理論。無論你是程式設計師還是管理者,本文都適合你。

AI 的範疇

AI 到底它包含了哪些領域,它與各種技術名詞之間的關係又是什麼樣的?其實我們會有多種判斷方式,AI 範疇的劃分也不會是唯一的,例如最「常見」的認識可能如下圖所示。

你可能會認為:

  • 人工智慧是個完整的知識領域,類似於生物學或者是化學;

  • 機器學習是人工智慧中非常重要的一部分,但並不是唯一一個部分;

  • 神經網路是機器學習的一種,現在非常受歡迎,但依然有其他優秀的演算法;


圖解機器學習:人人都能懂的演算法原理

但是,難道深度學習都是神經網路嗎?明顯並不一定是,例如周志華老師的深度森林,它就是第一個基於不可微構件的深度學習模型。因此,更科學的劃分可能是下圖花書中的這種:

圖解機器學習:人人都能懂的演算法原理

機器學習下面應該是表示學習,即概括了所有使用機器學習挖掘表示本身的方法。相比傳統 ML 需要手動設計資料特徵,這類方法能自己學習好用的資料特徵。整個深度學習也是一種表示學習,通過一層層模型從簡單表示構建複雜表示。

機器學習路線圖


如果你比較懶,那這有一張完整的技術路線圖供你參考。

圖解機器學習:人人都能懂的演算法原理


按照現階段主流分類來看,機器學習主要分為四類:

  • 經典機器學習;

  • 強化學習;

  • 神經網路和深度學習;

  • 整合方法;


圖解機器學習:人人都能懂的演算法原理

經典機器學習


經典機器學習經常被劃分為兩類:監督型學習和非監督型學習。

圖解機器學習:人人都能懂的演算法原理

監督學習


在分類中,模型總是需要一個導師,即對應特徵的標註,這樣的話機器就可以基於這些標註學習進行進一步分類。萬事皆可分類,基於興趣去分類使用者、基於語言和主題分類文章、基於型別而分類音樂以及基於關鍵詞分類電子郵件。

而在垃圾郵件過濾中,樸素貝葉斯演算法得到了極其廣泛的應用。事實上,樸素貝葉斯曾被認為是最優雅、最實用的演算法。

圖解機器學習:人人都能懂的演算法原理


支援向量機 (SVM) 是最流行的經典分類方法。也是被用來對現有的一切事物進行分類: 照片中的植物外觀,檔案等等等。支援向量機背後的思路也很簡單,以下圖為例,它試圖在資料點之間畫出兩條邊距最大的線。

圖解機器學習:人人都能懂的演算法原理

監督學習——迴歸


迴歸基本上是分類,但預測的標的是一個數字而不是類別。例如按里程計算的汽車價格,按時間計算的交通量,按公司增長計算出市場需求量等。當所預測的事物是依賴於時間時,迴歸是非常合適的選擇。

圖解機器學習:人人都能懂的演算法原理


無監督學習

無監督學習是 90 年代才被發明出來的,可以這麼去描述它「根據未知特徵對目標進行分割,而由機器去選擇最佳方式。」

無監督學習——聚類

聚類是一種沒有預先定義類的分類。比如當你不記得你所有的顏色時,把襪子按顏色分類一樣。聚類演算法試圖通過某些特徵從而找到相似的物件並將它們合併到一個聚類中。

圖解機器學習:人人都能懂的演算法原理


無監督學習——降維

「將特定的特徵組合成更高階的特性」


人們在使用抽象的東西總是比使用零碎的特徵更具有方便性。舉個例子,將所有長著三角形的耳朵、長鼻子和大尾巴的狗合併成一個很好的抽象概念——「牧羊犬」。

再比如有關科技的文章中擁有更多科技術語,而政治新聞裡最多的是政客的名字。假如我們要將這些具有特性的單詞以及文章組成一個新的特徵,以保持其潛在關聯度,SVD 便是個不錯的選擇。

圖解機器學習:人人都能懂的演算法原理


無監督學習——關聯規則學習


「在訂單流中分析出特徵模式」


包括分析購物車,自動化營銷策略等。舉個例子,顧客拿著六瓶啤酒走向收銀臺,在其路上是否該放些花生?如果放了,這些顧客多久會來買一次?如果啤酒花生是絕配,那還有其他什麼事物也可進行這樣的搭配呢?

圖解機器學習:人人都能懂的演算法原理

現實生活中,每個大型零售商都有它們自己的專用解決方案,而當中技術水平最高的要數那些「推薦系統」。

整合方法

「團結就是力量」,這句老話很好地表達了機器學習領域中「整合方法」的基本思想。在整合方法中,我們通常會訓練多個「弱模型」,以期待能組合成為一個強大的方法。像各種經典 ML 競賽中,差不多效果最好的那一撥,如梯度提升樹、隨機森林等都屬於整合方法。

一般而言整合方法的「組合方式」主要可以分為三種:Stacking、Bagging、Boosting。

如下圖所示,Stacking 通常考慮的是異質弱學習器,弱學習器可以先並行地訓練,而後通過一個「元模型」將它們組合起來,根據不同弱模型的預測結果輸出一個最終的預測結果。

圖解機器學習:人人都能懂的演算法原理

Bagging 方法通常考慮的是同質弱學習器,相互獨立地並行學習這些弱學習器,並按照某種確定性的平均過程將它們組合起來。假設所有弱學習器都是決策樹模型,那麼這樣做出來的 Bagging 就是隨機森林。

圖解機器學習:人人都能懂的演算法原理

Boosting 方法通常考慮的也是同質弱學習器,只不過它的思想是「分而治之」。它以一種高度自適應的方法順序地學習這些弱學習器,且後續弱模型重點學習上一個弱模型誤分類的資料。

這就相當於不同的弱分類器,專注於部分資料,達到「分而治之」的效果。如下所示,Boosting 就是以序列組合不同模型的正規化。大名鼎鼎的 XGBoost、LightGBM 這些庫或演算法,都採用的 Boosting 方法。

圖解機器學習:人人都能懂的演算法原理

現在,從樸素貝葉斯到 Boosting 方法,經典機器學習的主要分支已經具備了。如果讀者希望有一個更系統與詳細地瞭解,李航老師的《統計學習方法》與周志華老師的《機器學習》是最好的兩本中文教程。

當然,在這篇部落格中,作者還介紹了強化學習與深度學習等等,內容非常適合對人工智慧感興趣且非相關專業的讀者,加上形象的配圖,算得上是篇非常不錯的科普文。如果你對這種簡單易懂的敘述方式感興趣的話,可以去部落格上詳細閱讀。

參考連結:https://vas3k.com/blog/machine_learning/


文為機器之心報導,轉載請聯絡本公眾號獲得授權
✄------------------------------------------------
加入機器之心(全職記者 / 實習生):hr@jiqizhixin.com
投稿或尋求報導:content@jiqizhixin.com
廣告 & 商務合作:bd@jiqizhixin.com

相關文章