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