在從事數(shù)據(jù)科學(xué)工作的時候,經(jīng)常會遇到為具體問題選擇最合適算法的問題。雖然有很多有關(guān)機器學(xué)習算法的文章詳細介紹了相關(guān)的算法,但要做出最合適的選擇依然非常困難。
在這篇文章中,我將對一些基本概念給出簡要的介紹,對不同任務(wù)中使用不同類型的機器學(xué)習算法給出一點建議。在文章的最后,我將對這些算法進行總結(jié)。
首先,你應(yīng)該能區(qū)分以下四種機器學(xué)習任務(wù):
監(jiān)督學(xué)習
無監(jiān)督學(xué)習
半監(jiān)督學(xué)習
強化學(xué)習
監(jiān)督學(xué)習
監(jiān)督學(xué)習是從標記的訓(xùn)練數(shù)據(jù)中推斷出某個功能。通過擬合標注的訓(xùn)練集,找到最優(yōu)的模型參數(shù)來預(yù)測其他對象(測試集)上的未知標簽。如果標簽是一個實數(shù),我們稱之為回歸。如果標簽來自有限數(shù)量的值,這些值是無序的,那么稱之為分類。
無監(jiān)督學(xué)習
在無監(jiān)督學(xué)習中,我們對于物體知道的信息比較少,特別是訓(xùn)練集沒有做過標記。那現(xiàn)在的目標是什么呢?觀察對象之間的相似性,并將它們劃分到不同的群組中。某些對象可能與其他群組中的對象都有很大的區(qū)別,那么我們就認為這些對象是異常的。
半監(jiān)督學(xué)習
半監(jiān)督學(xué)習包括了前面描述的兩個問題:同時使用標記和未標記的數(shù)據(jù)。對于那些無法標注所有數(shù)據(jù)的人來說,這是一個很好的方法。該方法能夠顯著提高準確性,因為在使用訓(xùn)練集中未標記數(shù)據(jù)的同時,還能使用少量帶有標記的數(shù)據(jù)。
強化學(xué)習
強化學(xué)習跟上面提到的方法不太一樣,因為在這里并沒有標記或未標記的數(shù)據(jù)集。強化學(xué)習涉及到軟件代理應(yīng)該如何在某些環(huán)境中采取行動來最大化累積獎勵。
想象一下,你是一個在陌生環(huán)境中的機器人,你可以執(zhí)行一些動作,并從中獲得獎勵。在每執(zhí)行一個動作之后,你的行為會變得越來越復(fù)雜越來越聰明,也就是說 ,你正在訓(xùn)練自己在執(zhí)行每一個動作之后讓自己表現(xiàn)得更為有效。在生物學(xué)中,這被稱為適應(yīng)自然環(huán)境。
常用的機器學(xué)習算法
現(xiàn)在,我們對機器學(xué)習的類型有了一定的了解,下面,我們來看一下最流行的算法及其在現(xiàn)實生活中的應(yīng)用。
線性回歸和線性分類器
這些可能是機器學(xué)習中最簡單的算法了。假設(shè)有對象(矩陣A)的特征x1,... xn和標簽(向量B)。我們的目標是根據(jù)某些損失函數(shù)(例如MSE或MAE)找到最優(yōu)權(quán)重w1,... wn和這些特征的偏差。 在使用MSE的情況下,有一個來自最小二乘法的數(shù)學(xué)公式:
在實踐中,使用梯度下降來進行優(yōu)化則更為容易,計算上更有效率。盡管這個算法很簡單,但是在存在成千上萬個特征的時候,這個方法依然能夠表現(xiàn)良好。更復(fù)雜的算法可能會遇到過擬合特征或者是沒有足夠大的數(shù)據(jù)集的問題,而線性回歸則是一個不錯的選擇。
為了防止過擬合,可使用像lasso和ridge這樣的規(guī)則化技術(shù)。其主要思路是分別把權(quán)重總和以及權(quán)重平方的總和加到損失函數(shù)中。
邏輯回歸
邏輯回歸執(zhí)行的是二元分類,所以輸出的標簽是二元的。給定輸入特征向量x,定義P(y=1|x)為輸出y等于1時的條件概率。系數(shù)w是模型要學(xué)習的權(quán)重。
由于該算法需要計算每個類別的歸屬概率,因此應(yīng)該考慮概率與0或1的差異程度,并像在線性回歸中一樣對所有對象取平均值。這種損失函數(shù)是交叉熵的平均值:
邏輯回歸有什么好處呢?它采用了線性組合的特征,并對其應(yīng)用非線性函數(shù)(sigmoid),所以它是一個非常小的神經(jīng)網(wǎng)絡(luò)實例!
決策樹
另一個比較流行、并且容易理解的算法是決策樹。它的圖形能讓你看到你自己的想法,它的引擎有一個系統(tǒng)的、有記錄的思考過程。
這個算法很簡單。在每個節(jié)點中,我們選擇所有特征和所有可能的分割點之間的最佳分割。選擇每個分割以最大化某些功能。在分類樹中使用交叉熵和基尼指數(shù)。在回歸樹中,最小化該區(qū)域中的點的目標值的預(yù)測變量與分配給它的點之間的平方誤差的總和。
算法會在每個節(jié)點上遞歸地完成這個過程,直到滿足停止條件為止。
K-means
有的時候你并不知道標簽,而目標是根據(jù)對象的特征來分配標簽。這被稱為集聚化任務(wù)。
假設(shè)要把所有的數(shù)據(jù)對象分成k個簇,則需要從數(shù)據(jù)中隨機選擇k個點,并將它們命名為簇的中心。其他對象的簇由最近的簇中心定義。然后,聚類的中心會被轉(zhuǎn)換并重復(fù)該過程直到收斂。
雖然這個技術(shù)非常不錯,但它仍然有一些缺點。首先,我們并不知道簇的數(shù)量。其次,結(jié)果依賴開始時隨機選擇的那個點,算法無法保證我們能夠?qū)崿F(xiàn)功能的全局最小值。
主成分分析(PCA)
昨晚或者最近的幾個小時里你有沒有在準備考試?你無法記住所有的信息,但是想要在可用的時間內(nèi)最大限度地記住信息,例如,首先學(xué)習考試中經(jīng)常出現(xiàn)的定理等等。
主成分分析基于類似的思想。該算法提供了降維的功能。有時,你有很多的特征,并且彼此之間強相關(guān),模型可以很容易地適應(yīng)大量的數(shù)據(jù)。然后,你可以應(yīng)用PCA。
你應(yīng)該計算某些向量上的投影,以使數(shù)據(jù)的方差最大化,并盡可能少地丟失信息。而這些向量是來自數(shù)據(jù)集特征的相關(guān)矩陣的特征向量。
算法的內(nèi)容現(xiàn)在已經(jīng)很清楚了:
計算特征列的相關(guān)矩陣,找出該矩陣的特征向量。
將這些多維向量計算出來,并計算所有特征的投影。
新特征是投影中的坐標,其數(shù)量取決于投影的特征向量的數(shù)量。
神經(jīng)網(wǎng)絡(luò)
在上文講到邏輯回歸的時候,就已經(jīng)提到了神經(jīng)網(wǎng)絡(luò)。在一些具體的任務(wù)中,有很多不同的體系結(jié)構(gòu)都非常有價值。而神經(jīng)網(wǎng)絡(luò)更多的時候是一系列的層或組件,它們之間存在線性連接并遵循非線性。
如果你正在處理圖像,那么卷積深度神經(jīng)網(wǎng)絡(luò)能展現(xiàn)出不錯的結(jié)果。而非線性則通過卷積層和匯聚層表現(xiàn)出來,它能夠捕捉圖像的特征。
要處理文本和序列,最好選擇遞歸神經(jīng)網(wǎng)絡(luò)。 RNN包含了LSTM或GRU模塊,并且能夠數(shù)據(jù)一同使用。也許,最有名的RNN應(yīng)用是機器翻譯吧。
結(jié)論
我希望能向大家解釋最常用的機器學(xué)習算法,并就針對具體問題如何選擇機器學(xué)習算法提供建議。為了能讓你更輕松的掌握這些內(nèi)容,我準備了下面這個總結(jié)。
線性回歸和線性分類器。盡管看起來簡單,但當其他算法在大量特征上遇到過擬合的問題時,它的優(yōu)勢就表現(xiàn)出來了。
Logistic回歸是最簡單的非線性分類器,具有二元分類的參數(shù)和非線性函數(shù)(S形)的線性組合。
決策樹通常與人類的決策過程相似,并且易于解釋。但它們最常用于隨機森林或梯度增強這樣的組合中。
K-means是一個更原始、但又非常容易理解的算法。
PCA是降低信息損失最少的特征空間維度的絕佳選擇。
神經(jīng)網(wǎng)絡(luò)是機器學(xué)習算法的新武器,可以應(yīng)用于許多任務(wù),但其訓(xùn)練的計算復(fù)雜度相當大。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100777 -
機器學(xué)習
+關(guān)注
關(guān)注
66文章
8418瀏覽量
132654
原文標題:機器學(xué)習算法選用指南
文章出處:【微信號:tyutcsplab,微信公眾號:智能感知與物聯(lián)網(wǎng)技術(shù)研究所】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論