毫無疑問,機器學習/人工智能的子領域在過去幾年越來越受歡迎。目前大數據在科技行業已經炙手可熱,而基于大量數據來進行預測或者得出建議的機器學習無疑是非常強大的。一些最常見的機器學習例子,比如Netflix的算法可以根據你以前看過的電影來進行電影推薦,而Amazon的算法則可以根據你以前買過的書來推薦書籍。
所以如果你想了解更多有關機器學習的內容,那么你該如何入門?對于我來說,我的入門課程是我在哥本哈根出國留學時參加的人工智能課。當時我的講師是丹麥技術大學(Technical University of Denmark)的應用數學和計算機科學的全職教授,他的研究方向是邏輯與人工智能,側重于使用邏輯學來對人性化的規劃、推理和解決問題進行建模。這個課程包括對理論/核心概念的討論和自己動手解決問題。我們使用的教材是AI經典之一:Peter Norvig的Artificial Intelligence—A Modern Approach(中文譯本:《人工智能:一種現代的方法》),這本書主要講了智能體、搜索解決問題、對抗搜索、概率論、多智能體系統、社會AI和AI的哲學/倫理/未來等等。在課程結束時,我們三個人的團隊實現了一個簡單的編程項目,也就是基于搜索的智能體解決虛擬環境中的運輸任務問題。
在那門課程上我已經學到了很多知識,并決定繼續學習相關的課題。在過去的幾個星期里,我在舊金山參加了多次相關的技術講座,涉及到深度學習、神經網絡和數據結構,并且參加了一個有很多該領域的知名專家學者參加的機器學習會議。最重要的是,我在6月初參加了Udacity上的Intro to Machine Learning(機器學習入門)在線課程,前幾天才完成。在這篇文章中,我想分享一下我從課程中學到的一些最常用的機器學習算法。
機器學習算法可以分為三大類:監督學習、無監督學習和強化學習。監督學習可用于一個特定的數據集(訓練集)具有某一屬性(標簽),但是其他數據沒有標簽或者需要預測標簽的情況。無監督學習可用于給定的沒有標簽的數據集(數據不是預分配好的),目的就是要找出數據間的潛在關系。強化學習位于這兩者之間,每次預測都有一定形式的反饋,但是沒有精確的標簽或者錯誤信息。因為這是一個介紹課程,我沒有學習過強化學習的相關內容,但是我希望以下10個關于監督學習和無監督學習的算法足以讓你感興趣。
監督學習
1.決策樹(Decision Trees)
決策樹是一個決策支持工具,它使用樹形圖或者決策模型以及可能性序列,包括偶然事件的結果、資源成本和效用。下圖是其基本原理:
從業務決策的角度來看,決策樹是人們必須了解的最少的是/否問題,這樣才能評估大多數時候做出正確決策的概率。作為一種方法,它允許你以結構化和系統化的方式來解決問題,從而得出合乎邏輯的結論。
2.樸素貝葉斯分類(Naive Bayesian classification)
樸素貝葉斯分類器是一類簡單的概率分類器,它基于貝葉斯定理和特征間的強大的(樸素的)獨立假設。圖中是貝葉斯公式,其中P(A|B)是后驗概率,P(B|A)是似然,P(A)是類先驗概率,P(B)是預測先驗概率。
一些應用例子:
判斷垃圾郵件
對新聞的類別進行分類,比如科技、政治、運動
判斷文本表達的感情是積極的還是消極的
人臉識別
3.最小二乘法(Ordinary Least Squares Regression)
如果你懂統計學的話,你可能以前聽說過線性回歸。最小二乘法是一種計算線性回歸的方法。你可以將線性回歸看做通過一組點來擬合一條直線。實現這個有很多種方法,“最小二乘法”就像這樣:你可以畫一條直線,然后對于每一個數據點,計算每個點到直線的垂直距離,然后把它們加起來,那么最后得到的擬合直線就是距離和盡可能小的直線。
線性指的是你用來擬合數據的模型,而最小二乘法指的是你最小化的誤差度量。
4.邏輯回歸(Logistic Regression)
邏輯回歸是一個強大的統計學方法,它可以用一個或多個解釋變量來表示一個二項式結果。它通過使用邏輯函數來估計概率,從而衡量類別依賴變量和一個或多個獨立變量之間的關系,后者服從累計邏輯分布。
總的來說,邏輯回歸可以用于以下幾個真實應用場景:
信用評分
計算營銷活動的成功率
預測某個產品的收入
特定的某一天是否會發生地震
5.支持向量機(Support Vector Machine,SVM)
SVM是二進制分類算法。給定N維坐標下兩種類型的點,SVM生成(N-1)維的超平面來將這些點分成兩組。假設你在平面上有兩種類型的可以線性分離的點,SVM將找到一條直線,將這些點分成兩種類型,并且這條直線盡可能遠離所有這些點。
從規模上看,使用SVM(經過適當的修改)解決的一些最大的問題包括顯示廣告、人類剪切位點識別(human splice site recognition)、基于圖像的性別檢測,大規模圖像分類……
6.集成方法(Ensemble methods)
集成方法是學習算法,它通過構建一組分類器,然后通過它們的預測結果進行加權投票來對新的數據點進行分類。原始的集成方法是貝葉斯平均,但是最近的算法包括糾錯輸出編碼、Bagging和Boosting。
那么集成方法如何工作?并且為什么它們要優于單個模型?
它們平均了單個模型的偏差:如果你將民主黨的民意調查和共和黨的民意調查在一起平均化,那么你將得到一個均衡的結果,不偏向任何一方。
它們減少了方差:一組模型的總體意見比其中任何一個模型的單一意見更加統一。在金融領域,這就是所謂的多元化,有許多股票的組合比一個單獨的股票的不確定性更少,這也為什么你的模型在數據多的情況下會更好的原因。
它們不太可能過擬合:如果你有單個的模型沒有過擬合,那么把這些模型的預測簡單結合起來(平均、加權平均、邏輯回歸),那么最后得到的模型也不會過擬合。
無監督學習
7.聚類算法(Clustering Algorithms)
聚類是將一系列對象分組的任務,目標是使相同組(集群)中的對象之間比其他組的對象更相似。
每一種聚類算法都不相同,下面是一些例子:
基于質心的算法
基于連接的算法
基于密度的算法
概率
降維
神經網絡/深度學習
8.主成分分析(Principal Component Analysis,PCA)
PCA是一個統計學過程,它通過使用正交變換將一組可能存在相關性的變量的觀測值轉換為一組線性不相關的變量的值,轉換后的變量就是所謂的主分量。
PCA的一些應用包括壓縮、簡化數據便于學習、可視化等。請注意,領域知識在選擇是否繼續使用PCA時非常重要。 數據嘈雜的情況(PCA的所有成分具有很高的方差)并不適用。
9.奇異值分解(Singular Value Decomposition,SVD)
在線性代數中,SVD是復雜矩陣的因式分解。對于給定的m * n矩陣M,存在分解使得M=UΣV,其中U和V是酉矩陣,Σ是對角矩陣。
實際上,PCA是SVD的一個簡單應用。在計算機視覺中,第一個人臉識別算法使用PCA和SVD來將面部表示為“特征面”的線性組合,進行降維,然后通過簡單的方法將面部匹配到身份,雖然現代方法更復雜,但很多方面仍然依賴于類似的技術。
10.獨立成分分析(Independent Component Analysis,ICA)
ICA是一種統計技術,主要用于揭示隨機變量、測量值或信號集中的隱藏因素。ICA對觀測到的多變量數據定義了一個生成模型,這通常是作為樣本的一個大的數據庫。在模型中,假設數據變量由一些未知的潛在變量線性混合,混合方式也是未知的。潛在變量被假定為非高斯分布并且相互獨立,它們被稱為觀測數據的獨立分量。
ICA與PCA有關,但是當這些經典方法完全失效時,它是一種更強大的技術,能夠找出源的潛在因素。 其應用包括數字圖像、文檔數據庫、經濟指標和心理測量。
現在運用你對這些算法的理解去創造機器學習應用,為世界各地的人們帶來更好的體驗吧。
-
人工智能
+關注
關注
1787文章
46041瀏覽量
234876 -
機器學習
+關注
關注
66文章
8306瀏覽量
131834
發布評論請先 登錄
相關推薦
評論