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

對於目標函數,損失函數和代價函數,重要的是理解。

基本概念:
在機器學習中,對於目標函數、損失函數、代價函數等不同書上有不同的定義。這裏取如下定義
損失函數:計算的是一個樣本的誤差
代價函數:是整個訓練集上所有樣本誤差的平均
目標函數:代價函數 + 正則化項

理解之間的差異
爲了方便理解,現舉例說明:
在這裏插入圖片描述

上面三個圖的曲線函數依次爲f1(x),f2(x),f3(x)f1(x),f2(x),f3(x),圖中的 x 代表樣本數據點,藍線代表用來擬合數據點的函數,這三個函數分別來擬合同一批樣本數據點。我們給定x,這三個函數都會輸出對應的一個f(x)f(x),這個輸出的f(x)f(x)與真實值Y可能是相同的,也可能是不同的,爲了表示我們擬合的好壞,我們就用一個函數來度量擬合的程度。這個函數就稱爲損失函數(loss function),或者叫代價函數(cost function).

L(y,f(x))=(yf(x))2L(y, f(x)) = (y-f(x))^2

一般來說,損失函數越小,就代表模型擬合的越好。但是我們的目標不是讓它越小越好,還要考慮一個概念叫風險函數(risk function)。風險函數是損失函數的期望,這是由於我們輸入輸出的(x,y)遵循一個聯合分佈,但是這個聯合分佈是未知的,所以無法計算。但是我們是有歷史數據的,就是我們的訓練集,f(x)f(x)關於訓練集的平均損失稱作經驗風險(empirical risk),所以我們的目標就是最小化經驗風險。公式表達如下:1Ni=1NL(yi,f(xi))\frac{1}{N}\sum_{i=1}^{N}L(y_i, f(x_i))

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

這個時候就定義了一個函數J(f),這個函數專門用來度量模型的複雜度,在機器學習中也叫正則化(regularization),常用的有L1, L2範數。到這一步我們就可以說我們最終的優化函數是: min1Ni=1NL(yi,f(xi))+λJ(f)min\frac{1}{N}\sum_{i=1}^{N}L(y_i, f(x_i)) + λJ(f)

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

繼續下一篇 利用BP神經網絡逼近函數(Python)
參考資料
https://blog.csdn.net/qq_14845119/article/details/80787753
https://blog.csdn.net/ganzhantoulebi0546/article/details/79617642
https://blog.csdn.net/qq_28448117/article/details/79199835
https://www.jiqizhixin.com/articles/2018-06-21-3
https://blog.csdn.net/zynash2/article/details/80283396
https://blog.csdn.net/zhangjunp3/article/details/80467350
https://www.cnblogs.com/lliuye/p/9549881.html
https://www.zhihu.com/question/52398145

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