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

2021-08-31 07:42:11 字數 1189 閱讀 2863

參考知乎回答整理:

主要參考:/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範數。到這一步我們就可以說我們最終的優化函式是: 

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

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

參考知乎回答整理 主要參考 answer 209358209 基本概念 損失函式 計算的是乙個樣本的誤差 代價函式 是整個訓練集上所有樣本誤差的平均 目標函式 代價函式 正則化項 實際應用 上面三個圖的曲線函式依次為f1 x f2 x f3 x 我們想用這三個函式分別來擬合真實值y。我們給定x,這三...

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

參考知乎回答整理 主要參考 answer 209358209 基本概念 損失函式 計算的是乙個樣本的誤差 代價函式 是整個訓練集上所有樣本誤差的平均 目標函式 代價函式 正則化項 實際應用 損失函式和代價函式是同乙個東西,目標函式是乙個與他們相關但更廣的概念,舉例說明 上面三個圖的曲線函式依次為f1...

中gather函式 深入理解Python中的協程

協程 是單執行緒下的併發,又稱微執行緒。英文名是coroutine。它和執行緒一樣可以排程,但是不同的是執行緒的啟動和排程需要通過作業系統來處理。協程是一種比執行緒更加輕量級的存在,最重要的是,協程不被作業系統核心管理,協程是完全由程式控制的。執行效率極高,協程的切換完全由程式控制,不像執行緒切換需...