毫無疑問,作為人工智能的子領域—機器學習在過去的幾年中越來越受歡迎。由于大數(shù)據(jù)是目前科技行業(yè)最熱門的趨勢,基于大量的數(shù)據(jù)機器學習在提前預測和做出建議方面有巨大的潛力。一些有關機器學習常見的例子有:Netflix基于你以前看過的電影再給你做出影片的推薦,或者亞馬遜根據(jù)你以前買過的書籍再給你進行圖書推薦。
如果想了解更多有關機器學習的知識,要從哪里開始呢?作者第一次入門是在哥本哈根海外交流時選了一門有關人工智能的課程。這門課程的講師是丹麥科技大學(Technical University of Denmark)的應用數(shù)學以及計算機科學全職教授,他的研究領域主要是邏輯學和人工智能方面,主要研究內容是使用邏輯來對計算機類人行為(比如計劃、推理以及問題解決等)進行建模。這門課包括理論、核心概念探討以及親自動手解決問題。作者所使用的教材是人工智能(AI)領域的經典教材之一:Peter Norvig's Artificial Intelligence?—?A Modern Approach(人工智能—現(xiàn)代方法),在其中我們學習的幾個主題包括:智能agents、通過搜索解決問題、社會化AI、AI的哲學/社會學/未來。在課程的結尾,作者使用簡單的基于搜索的agents來解決虛擬環(huán)境中的傳輸問題。
作者表示通過這門課程學到了相當多的知識,也決定繼續(xù)學習這個特殊的課題。在接下來的幾個星期,作者在舊金山參加了很多關于機器學習、神經網(wǎng)絡、數(shù)據(jù)架構的科技講座,特別是一個有很多業(yè)內知名學者參加的機器學習會議。最重要的是,作者在Udacity中選修了一門“機器學習入門”的在線課程,最近已經完成學習。在本文中,作者將在課程中學習到的機器學習算法分享給大家。
機器學習算法可以分為三個大類:監(jiān)督學習、無監(jiān)督學習、強化學習。其中:
監(jiān)督學習對于有標簽的特定數(shù)據(jù)集(訓練集)是非常有效的,但是它需要對于其他的距離進行預測。
無監(jiān)督學習對于在給定未標記的數(shù)據(jù)集(目標沒有提前指定)上發(fā)現(xiàn)潛在關系是非常有用的。
強化學習介于這兩者之間—它針對每次預測步驟(或行動)會有某種形式的反饋,但是沒有明確的標記或者錯誤信息。本文主要介紹有關監(jiān)督學習和無監(jiān)督學習的10種算法。
1.決策樹(Decision Trees):
決策樹是一個決策支持工具,它使用樹形圖或決策模型以及序列可能性。包括各種偶然事件的后果、資源成本、功效。下圖展示的是它的大概原理:
從業(yè)務決策的角度來看,大部分情況下決策樹是評估作出正確的決定的概率最不需要問是/否問題的辦法。它能讓你以一個結構化的和系統(tǒng)化的方式來處理這個問題,然后得出一個合乎邏輯的結論。
2.樸素貝葉斯分類(Naive Bayesian classification):
樸素貝葉斯分類是一種十分簡單的分類算法,叫它樸素貝葉斯分類是因為這種方法的思想真的很樸素,樸素貝葉斯的思想基礎是這樣的:對于給出的待分類項,求解在此項出現(xiàn)的條件下各個類別出現(xiàn)的概率,哪個最大,就認為此待分類項屬于哪個類別。
它的現(xiàn)實使用例子有:
將一封電子郵件標記(或者不標記)為垃圾郵件
將一篇新的文章歸類到科技、政治或者運動
檢查一段文本表達的是積極情緒還是消極情緒
臉部識別軟件
3.最小二乘法(Ordinary Least Squares Regression):
如果你懂統(tǒng)計學的話,你可能以前聽說過線性回歸。最小二乘法是一種計算線性回歸的方法。你可以把線性回歸當做在一系列的點中畫一條合適的直線的任務。有很多種方法可以實現(xiàn)這個,“最小二乘法”是這樣做的?—你畫一條線,然后為每個數(shù)據(jù)點測量點與線之間的垂直距離,并將這些全部相加,最終得到的擬合線將在這個相加的總距離上盡可能最小。
4.邏輯回歸(Logistic Regression):
邏輯回歸是一種強大的統(tǒng)計方法,它能建模出一個二項結果與一個(或多個)解釋變量。它通過估算使用邏輯運算的概率,測量分類依賴變量和一個(或多個)獨立的變量之間的關系,這是累積的邏輯分布情況。
總的來說,邏輯回歸可以用于以下幾個真實應用場景:
信用評分
測量營銷活動的成功率
預測某一產品的收入
特定某一天是否會發(fā)生地震
5.支持向量機(Support Vector Machine):
SVM(Support Vector Machine)是二元分類算法。給定一組2種類型的N維的地方點,SVM(Support Vector Machine)產生一個(N - 1)維超平面到這些點分成2組。假設你有2種類型的點,且它們是線性可分的。 SVM(Support Vector Machine)將找到一條直線將這些點分成2種類型,并且這條直線會盡可能地遠離所有的點。
在規(guī)模方面,目前最大的使用支持向量機SVM(Support Vector Machine)(在適當修改的情況下)的問題是顯示廣告,人類剪接位點識別,基于圖像的性別檢測,大規(guī)模的圖像分類等。
6.組合方法(Ensemble methods):
組合方法是學習算法,它構建一系列分類,然后通過采取加權投票預測的方式來對新的數(shù)據(jù)點進行分類。原始的集成方法是貝葉斯平均法,但最近的算法包括對其糾錯輸出編碼、套袋、加速等。
那么組合方法如何運行的呢?為什么說它們比其他的模型要優(yōu)秀?因為:
它們將偏差平均了:如果你將民主黨派的民意調查和共和黨的民意調查發(fā)在一起平均化,那么你將得到一個均衡的結果,且不偏向任何一方。
它們減少了差異:一堆模型的總結意見沒有一個模型的單一意見那么嘈雜。在金融領域,這就是所謂的多元化?—?有許多股票組合比一個單獨的股票的不確定性更少,這也為什么你的模型在數(shù)據(jù)多的情況下會更好的原因。
它們不太可能過度擬合:如果你有沒有過度擬合的獨立模型,你通過一個簡單的方式(平均,加權平均,邏輯回歸)對每個獨立模型的預測進行結合,這樣的話不太可能會出現(xiàn)過度擬合的情況。
7.聚類算法(Clustering Algorithms):
聚類是一種聚集對象的任務,例如:相比其他不同的組在同一組(集群)的對象彼此更為相似。
每個聚類算法都是不同的,比如說有以下幾種:
基于質心的算法
基于連接的算法
基于密度的算法
可能性
維度縮減
神經網(wǎng)絡/深度學習
8.主成分分析(Principal Component Analysis,PCA):
通過正交變換將一組可能存在相關性的變量轉換為一組線性不相關的變量,轉換后的這組變量叫主成分。
一些主成分分析PCA程序的應用包括壓縮、簡化數(shù)據(jù)、可視化。注意,對于選擇是否使用主成分分析領域知識是非常重要的。當數(shù)據(jù)是嘈雜的時候(所有的組件的主成分分析有相當高的方差),它是不適合的。
9. 奇異值分解(Singular Value Decomposition):
在線性代數(shù)中,SVD是一個非常復雜矩陣的因數(shù)分解。對于一個給定的m×n矩陣M,存在一個分解,M = UΣV,其中u和v是單一矩陣,Σ是對角矩陣。
主成分分析PCA其是奇異值分解SVD的簡單應用。在計算機視覺領域,第一人臉識別算法,運用主成分分析PCA其是奇異值分解SVD來代表面孔作為一個線性組合的“特征臉”,并對其做降維,然后通過簡單的方法匹配合適的身份;雖然現(xiàn)代方法更復雜,但是許多人仍然依靠類似的技術。
10.獨立成分分析(Independent Component Analysis):
獨立成分分析(Independent Component Analysis,ICA)是一種揭示構筑隨機變量、技術測量、信號等隱藏因素的統(tǒng)計技術。ICA定義了所觀察到的多變量數(shù)據(jù)生成模型,這通常是給定為一個大型數(shù)據(jù)庫的樣本。在該模型中,數(shù)據(jù)變量被假定為一些未知潛變量的線性混合,同時混合系統(tǒng)也仍然未知。潛變量被假定是非高斯和相互獨立的,它們被稱為所觀察到的數(shù)據(jù)的獨立分量。
ICA與PCA是相關的,但它更強大。在這些經典的方法完全失敗的時候,ICA能夠找到源頭的潛在因素。它的應用包括數(shù)字圖像、文檔數(shù)據(jù)庫、經濟指標和心理測試。
通過以上介紹,相信大部分人對于機器學習的算法都有一定的了解。如果對這方面感興趣的話,可以接著運用你理解的算法去創(chuàng)造機器學習應用,為世界各地的人們創(chuàng)造更好的生活條件。
PS : 本文由雷鋒網(wǎng)(搜索“雷鋒網(wǎng)”公眾號關注)獨家編譯,未經許可拒絕轉載!
聯(lián)系客服