機器學習應該瞭解的十大算法

毫無疑問,近些年機器學習和人工智能領域受到了越來越多的關注。隨着大數據成爲當下工業界最火爆的技術趨勢,機器學習也藉助大數據在預測和推薦方面取得了驚人的成績。比較有名的機器學習案例包括Netflix根據用戶歷史瀏覽行爲給用戶推薦電影,亞馬遜基於用戶的歷史購買行爲來推薦圖書。

那麼,如果你想要學習機器學習的算法,該如何入門呢?就我而言,我的入門課程是在哥本哈根留學時選修的人工智能課程。老師是丹麥科技大學應用數學和計算機專業的全職教授,他的研究方向是邏輯學和人工智能,主要是用邏輯學的方法來建模。課程包括了理論/核心概念的探討和動手實踐兩個部分。我們使用的教材是人工智能的經典書籍之一:Peter Norvig教授的《人工智能——一種現代方法》,課程涉及到了智能代理、基於搜索的求解、對抗搜索、概率論、多代理系統、社交化人工智能,以及人工智能的倫理和未來等話題。在課程的後期,我們三個人還組隊做了編程項目,實現了基於搜索的簡單算法來解決虛擬環境下的交通運輸任務。

我從課程中學到了非常多的知識,並且打算在這個專題裏繼續深入學習。在過去幾周內,我參與了舊金山地區的多場深度學習、神經網絡和數據架構的演講 —— 還有一場衆多知名教授雲集的機器學習會議。最重要的是,我在六月初註冊了Udacity的《機器學習導論》在線課程,並且在幾天前學完了課程內容。在本文中,我想分享幾個我從課程中學到的常用機器學習算法。

機器學習算法通常可以被分爲三大類 —— 監督式學習,非監督式學習和強化學習。監督式學習主要用於一部分數據集(訓練數據)有某些可以獲取的熟悉(標籤),但剩餘的樣本缺失並且需要預測的場景。非監督式學習主要用於從未標註數據集中挖掘相互之間的隱含關係。強化學習介於兩者之間 —— 每一步預測或者行爲都或多或少有一些反饋信息,但是卻沒有準確的標籤或者錯誤提示。由於這是入門級的課程,並沒有提及強化學習,但我希望監督式學習和非監督式學習的十個算法足夠吊起你的胃口了。

監督式學習

1.決策樹:

決策樹是一種決策支持工具,它使用樹狀圖或者樹狀模型來表示決策過程以及後續得到的結果,包括概率事件結果等。請觀察下圖來理解決策樹的結構。

圖片描述

從商業決策的角度來看,決策樹就是通過儘可能少的是非判斷問題來預測決策正確的概率。這種方法可以幫你用一種結構性的、系統性的方法來得出合理的結論。

2.樸素貝葉斯分類器:

樸素貝葉斯分類器是一類基於貝葉斯理論的簡單的概率分類器,它假設特徵之前是相互獨立的。下圖所示的就是公式 —— P(A|B)表示後驗概率,P(B|A)是似然值,P(A)是類別的先驗概率,P(B)代表預測器的先驗概率。

圖片描述
現實場景中的一些例子包括:

  • 檢測垃圾電子郵件
  • 將新聞分爲科技、政治、體育等類別
  • 判斷一段文字表達積極的情緒還是消極的情緒
  • 用於人臉檢測軟件

3.最小平方迴歸:

如果你學過統計課程,也許聽說過線性迴歸的概念。最小平方迴歸是求線性迴歸的一種方法。你可以把線性迴歸想成是用一條直線擬合若干個點。擬合的方法有許多種,“最小平方”的策略相當於你畫一條直線,然後計算每個點到直線的垂直距離,最後把各個距離求和;最佳擬合的直線就是距離和最小的那一條。

圖片描述
線性指的是用於擬合數據的模型,而最小平方指的是待優化的損失函數。

4.邏輯迴歸:

邏輯迴歸模型是一種強大的統計建模方式,它用一個或多個解釋性變量對二值輸出結果建模。它用邏輯斯蒂函數估計概率值,以此衡量分類依賴變量和一個或多個獨立的變量之間的關係,這屬於累積的邏輯斯蒂分佈。

圖片描述
通常來說,邏輯迴歸模型在現實場景中的應用包括:

  • 信用評分
  • 預測商業活動的成功概率
  • 預測某款產品的收益
  • 預測某一天發生地震的概率

5.支持向量機:

支持向量機是一種二分類算法。在N維空間中給定兩類點,支持向量機生成一個(N-1)維的超平面將這些點分爲兩類。舉個例子,比如在紙上有兩類線性可分的點。支持向量機會尋找一條直線將這兩類點區分開來,並且與這些點的距離都儘可能遠。

圖片描述

利用支持向量機(結合具體應用場景做了改進)解決的大規模問題包括展示廣告、人體結合部位識別、基於圖像的性別檢查、大規模圖像分類等……

6.集成方法:

集成方法是先構建一組分類器,然後用各個分類器帶權重的投票來預測新數據的算法。最初的集成方法是貝葉斯平均,但最新的算法包括誤差糾正輸出編碼和提升算法。

圖片描述

那麼集成模型的原理是什麼,以及它爲什麼比獨立模型的效果好呢?

  • 它們消除了偏置的影響:比如把民主黨的問卷和共和黨的問卷混合,從中得到的將是一個不倫不類的偏中立的信息。
  • 它們能減小預測的方差:多個模型聚合後的預測結果比單一模型的預測結果更穩定。在金融界,這被稱爲是多樣化 —— 多個股票的混合產品波動總是遠小於單個股票的波動。這也解釋了爲何增加訓練數據,模型的效果會變得更好。
  • 它們不容易產生過擬合:如果單個模型不會產生過擬合,那麼將每個模型的預測結果簡單地組合(取均值、加權平均、邏輯迴歸),沒有理由產生過擬合。

非監督學習

7.聚類算法:

聚類算法的任務是將一羣物體聚成多個組,分到同一個組(簇)的物體比其它組的物體更相似。

圖片描述
每種聚類算法都各不相同,這裏列舉了幾種:

  • 基於類心的聚類算法
  • 基於連接的聚類算法
  • 基於密度的聚類算法
  • 概率型算法
  • 降維算法
  • 神經網絡/深度學習

8.主成分分析:

主成分分析屬於統計學的方法,過正交變換將一組可能存在相關性的變量轉換爲一組線性不相關的變量,轉換後的這組變量叫主成分。

圖片描述
主成分分析的一些實際應用包括數據壓縮,簡化數據表示,數據可視化等。值得一提的是需要領域知識來判斷是否適合使用主成分分析算法。如果數據的噪聲太大(即各個成分的方差都很大),就不適合使用主成分分析算法。

9.奇異值分解:

奇異值分解是線性代數中一種重要的矩陣分解,是矩陣分析中正規矩陣酉對角化的推廣。對於給定的m*n矩陣M,可以將其分解爲M = UΣV,其中U和V是m×m階酉矩陣,Σ是半正定m×n階對角矩陣。

圖片描述

主成分分析其實就是一種簡單的奇異值分解算法。在計算機視覺領域中,第一例人臉識別算法使用了主成分分析和奇異值分解將人臉表示爲一組“特徵臉(eigenfaces)”的線性組合,經過降維,然後利用簡單的方法匹配候選人臉。儘管現代的方法更加精細,許多技術還是於此很相似。

10.獨立成分分析:

獨立成分分析是一種利用統計原理進行計算來揭示隨機變量、測量值或者信號背後的隱藏因素的方法。獨立成分分析算法給所觀察到的多變量數據定義了一個生成模型,通常這些變量是大批量的樣本。在該模型中,數據變量被假定爲一些未知的潛變量的線性混合,而且混合系統也未知。潛變量被假定是非高斯和相互獨立的,它們被稱爲所觀察到的數據的獨立分量。

圖片描述

獨立成分分析與主成分分析有關聯,但它是一個更強大的技術。它能夠在這些經典方法失效時仍舊找到數據源的潛在因素。它的應用包括數字圖像、文檔數據庫、經濟指標和心理測量。

現在,請運用你所理解的算法,去創造機器學習應用,改善全世界人們的生活質量吧。

發佈了581 篇原創文章 · 獲贊 707 · 訪問量 202萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章