毫無疑問,作為人工智慧的子領域—機器學習在過去的幾年中越來越受歡迎。由於大數據是目前科技行業最熱門的趨勢,基於大量的數據機器學習在提前預測和做出建議方面有巨大的潛力。一些有關機器學習常見的例子有:Netflix基於你以前看過的電影再給你做出影片的推薦,或者亞馬遜根據你以前買過的書籍再給你進行圖書推薦。
如果想了解更多有關機器學習的知識,要從哪裡開始呢?作者第一次入門是在哥本哈根海外交流時選了一門有關人工智慧的課程。這門課程的講師是丹麥科技大學(Technical University of Denmark)的應用數學以及計算機科學全職教授,他的研究領域主要是邏輯學和人工智慧方面,主要研究內容是使用邏輯來對計算機類人行為(比如計劃、推理以及問題解決等)進行建模。這門課包括理論、核心概念探討以及親自動手解決問題。作者所使用的教材是人工智慧(AI)領域的經典教材之一:Peter Norvig's Artificial Intelligence — A Modern Approach(人工智慧—現代方法),在其中我們學習的幾個主題包括:智能agents、通過搜索解決問題、社會化AI、AI的哲學/社會學/未來。在課程的結尾,作者使用簡單的基於搜索的agents來解決虛擬環境中的傳輸問題。
作者表示通過這門課程學到了相當多的知識,也決定繼續學習這個特殊的課題。在接下來的幾個星期,作者在舊金山參加了很多關於機器學習、神經網絡、數據架構的科技講座,特別是一個有很多業內知名學者參加的機器學習會議。最重要的是,作者在Udacity中選修了一門「機器學習入門」的在線課程,最近已經完成學習。在本文中,作者將在課程中學習到的機器學習算法分享給大家。
機器學習算法可以分為三個大類:監督學習、無監督學習、強化學習。其中:
監督學習對於有標籤的特定數據集(訓練集)是非常有效的,但是它需要對於其他的距離進行預測。
無監督學習對於在給定未標記的數據集(目標沒有提前指定)上發現潛在關係是非常有用的。
強化學習介於這兩者之間—它針對每次預測步驟(或行動)會有某種形式的反饋,但是沒有明確的標記或者錯誤信息。本文主要介紹有關監督學習和無監督學習的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能夠找到源頭的潛在因素。它的應用包括數字圖像、文檔資料庫、經濟指標和心理測試。
通過以上介紹,相信大部分人對於機器學習的算法都有一定的了解。如果對這方面感興趣的話,可以接著運用你理解的算法去創造機器學習應用,為世界各地的人們創造更好的生活條件。
PS : 本文由雷鋒網(公眾號:雷鋒網)獨家編譯,未經許可拒絕轉載!
via LAB41
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。