- 目錄:
- 前言:
- 1、什么是目標函數?
- 2、損失函數
- 3、正則化
- 總結:
目錄:
前言:
今天看到一篇很精簡的文章來說明目標函數、損失函數以及正則項是什么。以下是文章正文。
轉自:https://xiaozhuanlan.com/topic/7504682391
1、什么是目標函數?
定義是:指所關心的目標與相關的因素的函數關系。舉個例子,假如我們想要預測公司樓下手抓餅店明天能賣多少張手抓餅,已知過去10天每天賣多少,以及每天的天氣情況,是否有節假日,和手抓餅店老板和老板娘的感情狀況,這幾項數據都統計好了。對應到目標函數的解釋就是:
- 關心的目標是明天能賣多少手抓餅,未知量。
- 相關因素是每天數量,天氣情況,節假日,老板老板娘感情狀況,已知量。
- 目標函數:按照一定的思路把這些已知條件利用起來,去求解未知量的函數關系式。
2、損失函數
也叫代價函數,是同一個東西。是用來評估模型的預測值f(x)與真實值Y的差距,它是一個非負實值函數。稍等一下,為什么是非負的呢?舉個例子:比如上面說的手抓餅,模型預測第一天是30,真實值是29,差距30-29是1;預測第二天是35,真實值是36,差距35-36是-1;如果把它們直接加起來就是1-1 = 0,難到沒有差距?非常明顯是錯誤的,差距是0人家還以為都預測對了呢,其實都預測錯了,所以不能有負值,可以用絕對值,平方或者一些其它的數學運算。
常用的損失函數有:
- LR邏輯回歸:log對數損失函數 參考:
https://xiaozhuanlan.com/topic/7491865230 - 最小二乘法:平方損失函數 參考:
https://xiaozhuanlan.com/topic/3129560874 - Adaboost:指數損失函數
好的,現在我們再來看一下目標函數通常的定義形式:
Obj(Θ)=L(Θ)+Ω(Θ)
中文翻譯一下是 :
- 目標函數 = 損失函數 + 正則項
目標函數和損失函數我們都理解了,那么正則項是干什么的呢?
3、正則化
回到我們前面舉的那個例子,如果第五天有個人中彩票了然后興奮的來買了1百張手抓餅,比幾天的量都多,很明顯這個情況會影響我們的模型訓練,這個情況就是過擬合。而加入正則項的目的就是使模型避免過擬合。
常用的有L1,L2正則化,很熟悉對不對,前面講過的線性代數中的L1,L2范數有些類似。其實本質是一樣的,在機器學習里叫正則化,線性代數叫范數,統計學里叫懲罰項。
機器學習里:L1使用的是絕對值距離,也叫曼哈頓距離,L2使用的是平方距離,也叫做歐式(Euclidean)距離
線性代數:L1 范數計算的是向量所有元素絕對值的和,L2 范數計算的是通常意義上的向量長度 參考:https://xiaozhuanlan.com/topic/4961780352
總結:
介紹了目標函數,損失函數和正則項的作用,優化損失函數使模型避免欠擬合使損失函數最小化,優化正則項使模型避免過擬合。