"當(dāng)您改變看待事物的方式時(shí),您看待的事物就會(huì)改變。" ―Wayne Dyer
人類發(fā)明了無數(shù)的機(jī)器學(xué)習(xí)(ML)算法。 當(dāng)然,大多數(shù)時(shí)候,只有一小部分用于研究和工業(yè)。 但是,對于人類來說,理解并記住所有這些ML模型的所有細(xì)節(jié)都是有些不知所措的。 某些人可能還會(huì)誤以為所有這些算法都是完全無關(guān)的。 更重要的是,當(dāng)兩者看起來都是有效的算法時(shí),如何選擇使用算法A而不是算法B?
本文旨在為讀者提供不同角度的機(jī)器學(xué)習(xí)算法。 基于這些觀點(diǎn),可以基于共同的理由對算法進(jìn)行比較,并且可以輕松地對其進(jìn)行分析。 本文編寫時(shí)考慮了兩個(gè)主要的ML任務(wù)-回歸和分類。
方法與目標(biāo)
本質(zhì)上,所有機(jī)器學(xué)習(xí)問題都是優(yōu)化問題。 機(jī)器學(xué)習(xí)模型或始終需要優(yōu)化的基本目標(biāo)函數(shù)背后總有一種方法論。 比較算法背后的主要思想可以增強(qiáng)關(guān)于它們的推理。
例如,線性回歸模型的目的是使預(yù)測值和實(shí)際值的平方損失最小化(均方誤差,MSE),而Lasso回歸的目的是通過在MSE上添加額外的正則項(xiàng)來限制MSE,同時(shí)限制學(xué)習(xí)參數(shù)。 防止過度擬合。
參數(shù)化
盡管沒有嚴(yán)格定義參數(shù)模型的定義,但是這種模型分類法已廣泛用于統(tǒng)計(jì)學(xué)習(xí)領(lǐng)域。 簡單地說,參數(shù)模型意味著模型的參數(shù)數(shù)量是固定的,而當(dāng)有更多數(shù)據(jù)可用時(shí),非參數(shù)模型的參數(shù)數(shù)量會(huì)增加[3]。 定義參數(shù)模型的另一種方法是基于其有關(guān)數(shù)據(jù)概率分布形狀的基本假設(shè)。 如果沒有假設(shè),那么它是一個(gè)非參數(shù)模型[4]。
可并行性
并行算法意味著一種算法可以在給定的時(shí)間完成多個(gè)操作。 這可以通過在不同的工作人員之間分配工作負(fù)載來完成,例如在一臺或多臺計(jì)算機(jī)中的處理器。 像梯度提升決策樹(GBDT)這樣的順序算法很難并行化,因?yàn)橄乱粋€(gè)決策樹是根據(jù)前一個(gè)決策樹所犯的錯(cuò)誤建立的。
在線和離線
在線和離線學(xué)習(xí)是指機(jī)器學(xué)習(xí)軟件學(xué)習(xí)更新模型的方式。 在線學(xué)習(xí)意味著可以一次提供一個(gè)訓(xùn)練數(shù)據(jù),以便在有新數(shù)據(jù)時(shí)可以立即更新參數(shù)。 但是,離線學(xué)習(xí)要求訓(xùn)練在新數(shù)據(jù)出現(xiàn)時(shí)重新開始(重新訓(xùn)練整個(gè)模型)以更新參數(shù)。 如果一種算法是在線算法,那將是有效的,因?yàn)樯a(chǎn)中使用的參數(shù)可以實(shí)時(shí)更新以反映新數(shù)據(jù)的影響。
偏差方差權(quán)衡
不同的ML算法將具有不同的偏差方差權(quán)衡。 偏差誤差來自模型偏向特定解決方案或假設(shè)的事實(shí)。 例如,如果線性決策邊界適合非線性數(shù)據(jù),則偏差會(huì)很大。 另一方面,方差度量的是來自模型方差的誤差。 它是模型預(yù)測和期望模型預(yù)測的平均平方差[2]。
Bias-variance tradeoff, extracted from [2].
不同的模型進(jìn)行不同的偏差方差折衷。 例如,樸素貝葉斯由于過于簡單的假設(shè)而被認(rèn)為是高偏差,低方差模型。
樣品復(fù)雜度
樣本復(fù)雜性衡量了訓(xùn)練網(wǎng)絡(luò)以保證有效概括所需的訓(xùn)練示例的數(shù)量。 例如,深度神經(jīng)網(wǎng)絡(luò)具有很高的樣本復(fù)雜度,因?yàn)樾枰罅康挠?xùn)練數(shù)據(jù)來訓(xùn)練它。
空間復(fù)雜度
空間復(fù)雜度衡量一個(gè)算法需要運(yùn)行多少內(nèi)存。 如果ML算法將過多的數(shù)據(jù)加載到機(jī)器的工作存儲(chǔ)器中,則ML程序?qū)o法成功運(yùn)行。
時(shí)間復(fù)雜度
在RAM模型[1]下,算法所需的"時(shí)間"通過算法的基本運(yùn)算來衡量。 盡管用戶和開發(fā)人員可能會(huì)更多地關(guān)注算法訓(xùn)練模型所需的掛鐘時(shí)間,但使用標(biāo)準(zhǔn)最壞情況下的計(jì)算時(shí)間復(fù)雜度來比較模型訓(xùn)練所需的時(shí)間會(huì)更公平。 使用計(jì)算復(fù)雜度的好處是可以忽略諸如運(yùn)行時(shí)使用的計(jì)算機(jī)功能和體系結(jié)構(gòu)以及底層編程語言之類的差異,從而使用戶可以專注于算法基本運(yùn)算的基本差異。
請注意,在訓(xùn)練和測試期間,時(shí)間復(fù)雜度可能會(huì)大不相同。 例如,線性回歸等參數(shù)模型可能需要較長的訓(xùn)練時(shí)間,但在測試期間卻很有效。
參考
[1]計(jì)算的RAM模型
[2]講座12:偏差-偏差權(quán)衡
[3] D. S. Raschka。 "參數(shù)學(xué)習(xí)算法和非參數(shù)學(xué)習(xí)算法之間有什么區(qū)別?"
[4] T. Hoskin,"參量和非參量:使術(shù)語神秘化",Mayo診所,2012年,第1-5頁。
總之,可以基于不同的標(biāo)準(zhǔn)來分析ML算法。 這些標(biāo)準(zhǔn)實(shí)際上可以幫助衡量不同ML模型的有效性和效率。
您能從其他角度比較機(jī)器學(xué)習(xí)算法嗎?
-
算法
+關(guān)注
關(guān)注
23文章
4615瀏覽量
92979 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8422瀏覽量
132714
發(fā)布評論請先 登錄
相關(guān)推薦
評論