谷歌大佬詳談:關於機器學習,你需要知道的十個基礎演算法

谷歌大佬詳談:關於機器學習,你需要知道的十個基礎演算法

毫無疑問,作為人工智慧的子領域—

機器學習

在過去的幾年中越來越受歡迎。由於大資料是目前科技行業最熱門的趨勢,基於大量的資料機器學習在提前預測和做出建議方面有巨大的潛力。一些有關機器學習常見的例子有:Netflix基於你以前看過的電影再給你做出影片的推薦。

機器學習演算法可以分為三個大類:

監督學習、無監督學習、強化學習

。其中:

監督學習:

對於有標籤的特定資料集(訓練集)是非常有效的,但是它需要對於其他的距離進行預測。

無監督學習:

對於在給定未標記的資料集(目標沒有提前指定)上發現潛在關係是非常有用的。

強化學習:

介於這兩者之間—它針對每次預測步驟(或行動)會有某種形式的反饋,但是沒有明確的標記或者錯誤資訊。本文主要介紹有關監督學習和無監督學習的10種演算法。

監督學習

1.決策樹(Decision Trees)

決策樹是一個決策支援工具,它使用樹形圖或決策模型以及序列可能性。包括各種偶然事件的後果、資源成本、功效。下圖展示的是它的大概原理:

谷歌大佬詳談:關於機器學習,你需要知道的十個基礎演算法

從業務決策的角度來看,大部分情況下決策樹是評估作出正確的決定的機率最不需要問是/否問題的辦法。它能讓你以一個結構化的和系統化的方式來處理這個問題,然後得出一個合乎邏輯的結論。

2.樸素貝葉斯分類(Naive Bayesian classification):

樸素貝葉斯分類是一種十分簡單的分類演算法,叫它樸素貝葉斯分類是因為這種方法的思想真的很樸素,樸素貝葉斯的思想基礎是這樣的:對於給出的待分類項,求解在此項出現的條件下各個類別出現的機率,哪個最大,就認為此待分類項屬於哪個類別。

谷歌大佬詳談:關於機器學習,你需要知道的十個基礎演算法

它的現實使用例子有:

將一封電子郵件標記(或者不標記)為垃圾郵件

將一篇新的文章歸類到科技、政治或者運動

檢查一段文字表達的是積極情緒還是消極情緒

臉部識別軟體

3.最小二乘法(Ordinary Least Squares Regression):

如果你懂統計學的話,你可能以前聽說過線性迴歸。最小二乘法是一種計算線性迴歸的方法。你可以把線性迴歸當做在一系列的點中畫一條合適的直線的任務。有很多種方法可以實現這個,“最小二乘法”是這樣做的 —你畫一條線,然後為每個資料點測量點與線之間的垂直距離,並將這些全部相加,最終得到的擬合線將在這個相加的總距離上儘可能最小。

谷歌大佬詳談:關於機器學習,你需要知道的十個基礎演算法

4.邏輯迴歸(Logistic Regression):

邏輯迴歸是一種強大的統計方法,它能建模出一個二項結果與一個(或多個)解釋變數。它透過估算使用邏輯運算的機率,測量分類依賴變數和一個(或多個)獨立的變數之間的關係,這是累積的邏輯分佈情況。

谷歌大佬詳談:關於機器學習,你需要知道的十個基礎演算法

總的來說,邏輯迴歸可以用於以下幾個真實應用場景:

信用評分

測量營銷活動的成功率

預測某一產品的收入

特定某一天是否會發生地震

5.支援向量機(Support Vector Machine):

SVM(Support Vector Machine)是二元分類演算法。給定一組2種類型的N維的地方點,SVM(Support Vector Machine)產生一個(N - 1)維超平面到這些點分成2組。假設你有2種類型的點,且它們是線性可分的。 SVM(Support Vector Machine)將找到一條直線將這些點分成2種類型,並且這條直線會盡可能地遠離所有的點。

在規模方面,目前最大的使用支援向量機SVM(Support Vector Machine)(在適當修改的情況下)的問題是顯示廣告,人類剪接位點識別,基於影象的性別檢測,大規模的影象分類等。

谷歌大佬詳談:關於機器學習,你需要知道的十個基礎演算法

6.組合方法(Ensemble methods):

組合方法是學習演算法,它構建一系列分類,然後透過採取加權投票預測的方式來對新的資料點進行分類。原始的整合方法是貝葉斯平均法,但最近的演算法包括對其糾錯輸出編碼、套袋、加速等。

那麼組合方法如何執行的呢?為什麼說它們比其他的模型要優秀?因為:

它們將偏差平均了:如果你將民主黨派的民意調查和共和黨的民意調查發在一起平均化,那麼你將得到一個均衡的結果,且不偏向任何一方。

它們減少了差異:一堆模型的總結意見沒有一個模型的單一意見那麼嘈雜。在金融領域,這就是所謂的多元化 — 有許多股票組合比一個單獨的股票的不確定性更少,這也為什麼你的模型在資料多的情況下會更好的原因。

它們不太可能過度擬合:如果你有沒有過度擬合的獨立模型,你透過一個簡單的方式(平均,加權平均,邏輯迴歸)對每個獨立模型的預測進行結合,這樣的話不太可能會出現過度擬合的情況。

谷歌大佬詳談:關於機器學習,你需要知道的十個基礎演算法

無監督學習

7.聚類演算法(Clustering Algorithms):

聚類是一種聚集物件的任務,例如:相比其他不同的組在同一組(叢集)的物件彼此更為相似。

每個聚類演算法都是不同的,比如說有以下幾種:

基於質心的演算法

基於連線的演算法

基於密度的演算法

可能性

維度縮減

神經網路/深度學習

谷歌大佬詳談:關於機器學習,你需要知道的十個基礎演算法

8.主成分分析(Principal Component Analysis,PCA):

透過正交變換將一組可能存在相關性的變數轉換為一組線性不相關的變數,轉換後的這組變數叫主成分。

一些主成分分析PCA程式的應用包括壓縮、簡化資料、視覺化。注意,對於選擇是否使用主成分分析領域知識是非常重要的。當資料是嘈雜的時候(所有的元件的主成分分析有相當高的方差),它是不適合的。

谷歌大佬詳談:關於機器學習,你需要知道的十個基礎演算法

9. 奇異值分解(Singular Value Decomposition):

線上性代數中,SVD是一個非常複雜矩陣的因數分解。對於一個給定的m×n矩陣M,存在一個分解,M = UΣV,其中u和v是單一矩陣,Σ是對角矩陣。

主成分分析PCA其是奇異值分解SVD的簡單應用。在計算機視覺領域,第一人臉識別演算法,運用主成分分析PCA其是奇異值分解SVD來代表面孔作為一個線性組合的“特徵臉”,並對其做降維,然後透過簡單的方法匹配合適的身份;雖然現代方法更復雜,但是許多人仍然依靠類似的技術。

谷歌大佬詳談:關於機器學習,你需要知道的十個基礎演算法

10.獨立成分分析(Independent Component Analysis):

獨立成分分析(Independent Component Analysis,ICA)是一種揭示構築隨機變數、技術測量、訊號等隱藏因素的統計技術。ICA定義了所觀察到的多變數資料生成模型,這通常是給定為一個大型資料庫的樣本。在該模型中,資料變數被假定為一些未知潛變數的線性混合,同時混合系統也仍然未知。潛變數被假定是非高斯和相互獨立的,它們被稱為所觀察到的資料的獨立分量。

谷歌大佬詳談:關於機器學習,你需要知道的十個基礎演算法

ICA與PCA是相關的,但它更強大。在這些經典的方法完全失敗的時候,ICA能夠找到源頭的潛在因素。它的應用包括數字影象、文件資料庫、經濟指標和心理測試。

透過以上介紹,相信大部分人對於機器學習的演算法都有一定的瞭解。如果對這方面感興趣的話,可以接著運用你理解的演算法去創造機器學習應用,為世界各地的人們創造更好的生活條件。

你在機器學習領域有不同的見解歡迎來探討,而且我們是有一個膨大的人工智慧交流圈的,想一起學習的可以私聊我。