天天看點

【圖解機器學習】人人都能懂的算法原理

--------點選螢幕右側或者螢幕底部“+訂閱”,關注我,随時分享機器智能最新行業動态及技術幹貨----------

【圖解機器學習】人人都能懂的算法原理

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

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

AI 的範疇

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

你可能會認為:

  • 人工智能是個完整的知識領域,類似于生物學或者是化學;
  • 機器學習是人工智能中非常重要的一部分,但并不是唯一一個部分;
  • 神經網絡是機器學習的一種,現在非常受歡迎,但依然有其他優秀的算法;
【圖解機器學習】人人都能懂的算法原理

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

【圖解機器學習】人人都能懂的算法原理

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

機器學習路線圖

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

【圖解機器學習】人人都能懂的算法原理

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

  • 經典機器學習;
  • 強化學習;
  • 神經網絡和深度學習;
  • 內建方法;
【圖解機器學習】人人都能懂的算法原理

經典機器學習

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

【圖解機器學習】人人都能懂的算法原理

監督學習

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

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

【圖解機器學習】人人都能懂的算法原理

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

【圖解機器學習】人人都能懂的算法原理

監督學習——回歸

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

【圖解機器學習】人人都能懂的算法原理

無監督學習

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

無監督學習——聚類

聚類是一種沒有預先定義類的分類。比如當你不記得你所有的顔色時,把襪子按顔色分類一樣。聚類算法試圖通過某些特征進而找到相似的對象并将它們合并到一個聚類中。

【圖解機器學習】人人都能懂的算法原理

無監督學習——降維

「将特定的特征組合成更進階的特性」

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

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

【圖解機器學習】人人都能懂的算法原理

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

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

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

【圖解機器學習】人人都能懂的算法原理

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

內建方法

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

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

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

【圖解機器學習】人人都能懂的算法原理

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

【圖解機器學習】人人都能懂的算法原理

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

【圖解機器學習】人人都能懂的算法原理

這就相當于不同的弱分類器,專注于部分資料,達到「分而治之」的效果。如下所示,Boosting 就是以串行組合不同模型的範式。大名鼎鼎的 XGBoost、LightGBM 這些庫或算法,都采用的 Boosting 方法。

【圖解機器學習】人人都能懂的算法原理

原文連結:

https://ai.51cto.com/art/202005/616905.htm

文章轉自51cto,本文一切觀點和《機器智能技術》圈子無關

繼續閱讀