參考 機器學習中的目標函數、損失函數、代價函數有什麼區別?機器學習
如何找出幸福感最強的人?什麼人幸福感最強,是既有錢(擬合較好,不是最有錢)又活得輕鬆(模型複雜度低,簡簡單單生活)的中層階級。函數
首先給出結論:損失函數和代價函數是同一個東西,目標函數是一個與他們相關但更廣的概念,對於目標函數來講在有約束條件下的最小化就是損失函數(loss function)。學習
舉個例子解釋一下:(圖片來自 Andrew Ng Machine Learning 公開課視頻)優化
上面三個圖的函數依次爲 ,
,
。咱們是想用這三個函數分別來擬合 Price,Price 的真實值記爲
。spa
咱們給定 ,這三個函數都會輸出一個
, 這個輸出的
與真實值
多是相同的,也多是不一樣的,爲了表示咱們擬合的好壞,咱們就用一個函數來度量擬合的程度,好比:視頻
,這個函數就稱爲損失函數 (loss function),或者叫代價函數 (cost function)。損失函數越小,就表明模型擬合的越好。blog
那是否是咱們的目標就只是讓 loss function 越小越好呢?還不是。圖片
這個時候還有一個概念叫風險函數 (risk function)。風險函數是損失函數的指望,這是因爲咱們輸入輸出的 遵循一個聯合分佈,可是這個聯合分佈是未知的,因此沒法計算。可是咱們是有歷史數據的,就是咱們的訓練集,
關於訓練集的平均損失稱做經驗風險 (empirical risk),即
,因此咱們的目標就是最小化
,稱爲經驗風險最小化。get
到這裏完了嗎?尚未。it
若是到這一步就完了的話,那咱們看上面的圖,那確定是最右面的 的經驗風險函數最小了,由於它對歷史的數據擬合的最好嘛。可是咱們從圖上來看
確定不是最好的,由於它過分學習歷史數據,致使它在真正預測時效果會很很差,這種狀況稱爲過擬合 (over-fitting)。
爲何會形成這種結果?大白話說就是它的函數太複雜了,都有四次方了,這就引出了下面的概念,咱們不只要讓經驗風險最小化,還要讓結構風險最小化。這個時候就定義了一個函數 ,這個函數專門用來度量模型的複雜度,在機器學習中也叫正則化 (regularization)。經常使用的有
,
範數。
到這一步咱們就能夠說咱們最終的優化函數是: ,即最優化經驗風險和結構風險,而這個函數就被稱爲目標函數。
說白了,經驗風險就是擬合的好很差,結構風險就是模型複雜不復雜
結合上面的例子來分析:最左面的 結構風險最小(模型結構最簡單),可是經驗風險最大(對歷史數據擬合的最差);最右面的
經驗風險最小(對歷史數據擬合的最好),可是結構風險最大(模型結構最複雜); 而
達到了兩者的良好平衡,最適合用來預測未知數據集。