參考知乎回答整理:
主要參考:/answer/209358209
基本概念:
損失函式:計算的是乙個樣本的誤差
代價函式:是整個訓練集上所有樣本誤差的平均
目標函式:代價函式 + 正則化項
實際應用:
損失函式和代價函式是同乙個東西,目標函式是乙個與他們相關但更廣的概念,舉例說明:
上面三個圖的曲線函式依次為f1(x),f2(x),f3(x),我們想用這三個函式分別來擬合真實值y。
我們給定x,這三個函式都會輸出乙個f(x),這個輸出的f(x)與真實值y可能是相同的,也可能是不同的,為了表示我們擬合的好壞,我們就用乙個函式來度量擬合的程度。這個函式就稱為損失函式(loss function),或者叫代價函式(cost function)。
l (y
,f(x
))=(
y−f(
x))2
l(y,f(x)) = (y - f(x))^
l(y,f(
x))=
(y−f
(x))
2損失函式越小,就代表模型擬合的越好。那是不是我們的目標就只是讓loss function越小越好呢?還不是。這個時候還有乙個概念叫風險函式(risk function)。風險函式是損失函式的期望,這是由於我們輸入輸出的(x,y)遵循乙個聯合分布,但是這個聯合分布是未知的,所以無法計算。但是我們是有歷史資料的,就是我們的訓練集,f(x)關於訓練集的平均損失稱作經驗風險(empirical risk),所以我們的目標就是最小化經驗風險。
1 n∑
i=1n
l(yi
,f(x
i))\frac\sum_^l(y_, f(x_))
n1i=1
∑nl
(yi
,f(x
i))
到這裡完了嗎?還沒有。
如果到這一步就完了的話,那我們看上面的圖,那肯定是最右面的f3(x)的經驗風險函式最小了,因為它對歷史的資料擬合的最好嘛。但是我們從圖上來看它肯定不是最好的,因為它過度學習歷史資料,導致它在真正**時效果會很不好,這種情況稱為過擬合(over-fitting)。為什麼會造成這種結果?大白話說就是它的函式太複雜了,都有四次方了,這就引出了下面的概念,我們不僅要讓經驗風險最小化,還要讓結構風險最小化。
這個時候就定義了乙個函式j(f
)j(f)
j(f)
,這個函式專門用來度量模型的複雜度,在機器學習中也叫正則化(regularization)。常用的有l1,
l2l1, l2
l1,l
2範數。到這一步我們就可以說我們最終的優化函式是:
m in
1n∑i
=1nl
(yi,
f(xi
))+λ
j(f)
min \frac\sum_^l(y_, f(x_)) + \lambda j(f)
minn1
i=1∑
nl(
yi,
f(xi
))+
λj(f
)即最優化經驗風險和結構風險,而這個函式就被稱為目標函式
深入理解機器學習中的 目標函式,損失函式和代價函式
參考知乎回答整理 主要參考 answer 209358209 基本概念 損失函式 計算的是乙個樣本的誤差 代價函式 是整個訓練集上所有樣本誤差的平均 目標函式 代價函式 正則化項 實際應用 上面三個圖的曲線函式依次為f1 x f2 x f3 x 我們想用這三個函式分別來擬合真實值y。我們給定x,這三...
深入理解機器學習中的 目標函式,損失函式和代價函式
參考知乎回答整理 主要參考 answer 209358209 基本概念 損失函式 計算的是乙個樣本的誤差 代價函式 是整個訓練集上所有樣本誤差的平均 目標函式 代價函式 正則化項 實際應用 上面三個圖的曲線函式依次為f1 x f2 x f3 x 我們想用這三個函式分別來擬合真實值y。我們給定x,這三...
中gather函式 深入理解Python中的協程
協程 是單執行緒下的併發,又稱微執行緒。英文名是coroutine。它和執行緒一樣可以排程,但是不同的是執行緒的啟動和排程需要通過作業系統來處理。協程是一種比執行緒更加輕量級的存在,最重要的是,協程不被作業系統核心管理,協程是完全由程式控制的。執行效率極高,協程的切換完全由程式控制,不像執行緒切換需...