深入理解機器學習中的:目標函數,損失函數和代價函數

參考知乎回答整理:https://www.zhihu.com/question/52398145

主要參考:https://www.zhihu.com/question/52398145/answer/209358209

基本概念:

損失函數:計算的是一個樣本的誤差

代價函數:是整個訓練集上所有樣本誤差的平均

目標函數:代價函數 + 正則化項

實際應用:

損失函數和代價函數是同一個東西,目標函數是一個與他們相關但更廣的概念,舉例說明:

上面三個圖的曲線函數依次爲f1(x),f2(x),f3(x),我們想用這三個函數分別來擬合真實值Y。

我們給定x,這三個函數都會輸出一個f(X),這個輸出的f(X)與真實值Y可能是相同的,也可能是不同的,爲了表示我們擬合的好壞,我們就用一個函數來度量擬合的程度。這個函數就稱爲損失函數(loss function),或者叫代價函數(cost function)。

損失函數越小,就代表模型擬合的越好。那是不是我們的目標就只是讓loss function越小越好呢?還不是。這個時候還有一個概念叫風險函數(risk function)。風險函數是損失函數的期望,這是由於我們輸入輸出的(X,Y)遵循一個聯合分佈,但是這個聯合分佈是未知的,所以無法計算。但是我們是有歷史數據的,就是我們的訓練集,f(X)關於訓練集的平均損失稱作經驗風險(empirical risk),所以我們的目標就是最小化經驗風險。

到這裏完了嗎?還沒有。

如果到這一步就完了的話,那我們看上面的圖,那肯定是最右面的f3(x)的經驗風險函數最小了,因爲它對歷史的數據擬合的最好嘛。但是我們從圖上來看它肯定不是最好的,因爲它過度學習歷史數據,導致它在真正預測時效果會很不好,這種情況稱爲過擬合(over-fitting)。爲什麼會造成這種結果?大白話說就是它的函數太複雜了,都有四次方了,這就引出了下面的概念,我們不僅要讓經驗風險最小化,還要讓結構風險最小化。

這個時候就定義了一個函數J(f),這個函數專門用來度量模型的複雜度,在機器學習中也叫正則化(regularization)。常用的有L1, L2範數。到這一步我們就可以說我們最終的優化函數是: 

即最優化經驗風險和結構風險,而這個函數就被稱爲目標函數

 

轉自:https://blog.csdn.net/qq_28448117/article/details/79199835

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章