1.機器學習的三要素就是:表示,評估和優化。
(1)表示:
將樣本空間映射到一個合適的特征空間,一般地,我們更青睞於這樣的表示是低維度的,是更加稀疏交互的,同時也希望是相互獨立的。【從大量特征挑出好的特征,降維】
讓機器來學習怎樣表示,就是表示學習。
(2)評估:
模型在數據上表現的量化形式,我們選取合適的函數來表示什么樣子的模型是好的,性能度量就是評估。【用來評價模型好壞的函數】
(3)優化:
前兩步都完成后,最后要做的就是優化,就是對評估函數進行求解,找出最合適的解,來確定最終的模型。
2.性能度量
性能度量(performance measure)是關於真實值和預測值的關系。真實值與預測值越接近,或者說真實的分布與預測分布越接近,性能越好。
(1)回歸問題的性能度量:
均方誤差(mean squared error,MSE),均方根誤差(RMSE),平均絕對誤差(MAE),均方對數誤差(MSLE),均方根對數誤差(RMSLE),
絕對誤差(absolute Loss),決定系數(coefficient of determination )以及Huber Loss。
(2)分類問題的性能度量:
准確率,錯誤率,
得到混淆矩陣,進一步得到查准率(precision)、查全率(recall)以及P-R曲線和ROC曲線。
3.損失函數
(1)損失函數、代價函數、目標函數
損失函數(Loss Function):
是定義在單個樣本上的,是指一個樣本的誤差,度量模型一次預測的好壞。
代價函數(Cost Function):
又叫成本函數,經驗風險(empirical risk)【局部】,基於訓練集所有樣本點損失函數的平均最小化。經驗風險是局部最優,是現實的可求的。
僅僅經驗風險最小化是不行的,這樣容易導致過擬合,我們不僅要讓經驗風險最小化,還要考慮模型復雜度,讓結構風險最小化。
目標函數(Object Function):
是指最終需要優化的函數,就是結構風險=經驗風險+正則項(懲罰項)。【按照李航《統計xx》,結構風險=目標函數(多數)】
正則項:定義了一個函數 ,這個函數專門用來度量模型的復雜度,在機器學習中也叫正則化(regularization)。常用的有
,
范數。
目標函數和代價函數區別(通俗):
目標函數是最大化或者最小化,而代價函數/經驗風險是最小化。
(2)期望風險、經驗風險、結構風險
(3)廣義上的損失函數
個人理解:廣義上,或者人們習慣上,人們所說的損失函數其實是“代價函數”。或者提到上述三者中的任一個都叫損失函數。
損失函數用於衡量模型擬合的程度,越小就代表擬合得越好。
(4)損失函數滿足條件
損失函數必須連續
(5)為什么既要有損失函數,也有要性能評估呢?
損失函數(Loss function)也與性能度量類似,真實值與預測值差別越大,Loss越大,我們的優化的目標就是減小Loss。從評估的角度來說,損失函數和性能度量所起到的作用是相同的,那么我們為什么既要有損失函數,也有要性能評估呢?
事實上,常見的均方誤差既可以被當作性能度量,同時也是回歸問題的損失函數。
但在更多的問題中,我們會發現,我們往往會為了減小模型的錯誤率,並不直接優化錯誤率,而是會優化另一個函數,
比如在logistic回歸中,我們會優化對數似然,在SVM中,我們會優化hinge loss,在adaboost中會優化指數損失。
(6)損失函數:學習vs評估
【與(5)應該是同一個問題,評估中的損失函數就是(5)的性能評估,學習中的損失函數就是(5)的損失函數】
統計學習的目的,模型對未知數據都能有很好的預測能力。
當損失函數給定時,基於損失函數的模型的訓練誤差(training error)和模型的測試誤差(test error)就自然成為學習方法評估的標准。
統計學習中采用的損失函數未必是評估時使用的損失函數。兩者一致是比較理想的。
參考:
https://baijiahao.baidu.com/s?id=1611678624768980723&wfr=spider&for=pc