轉自:https://blog.csdn.net/liyajuan521/article/details/44565269
在機器學習中,通常會遇到期望風險、經驗風險和結構風險這三個概念,一直不知道這三個概念之間的具體區別和聯系,今天來梳理一下,要區分這三個概念,首先要引入一個損失函數的概念。損失函數是期望風險、經驗風險和結構風險的基礎。
1、損失函數
損失函數是針對單個具體的樣本而言的。表示的是模型預測的值與樣本真實值之間的差距。比如對於某個樣本<Xi,Yi>,其真實的值為Yi,而我們的模型選擇決策函數為f,那么通過模型預測的值為f(Xi);損失函數就是用來表示Yi與f(Xi)之間的差距的,我們用函數L(f(Xi),Yi)來衡量。我們希望的是這個L函數最小化。理想的情況是我們的模型決策函數預測值f(Xi)剛好等於該樣本的真值Yi。常見的損失函數有以下幾種:
2、經驗風險
現在我們已經清楚了,對於具體的某個樣本點,有了衡量其預測值與真實值的差異度的方法了(選取上面任意一個損失函數即可)。 通過損失函數我們只能知道模型決策函數f(X)對於單個樣本點的預測能力(借用損失函數L(Y,f(x)),損失函數越小,說明模型對於該樣本預測越准確。),那么如果想知道模型f(X)對訓練樣本中所有的樣本的預測能力應該怎么辦呢?顯然只需所有的樣本點都求一次損失函數然后進行累加就好了。如下式
這就經驗風險,所謂的經驗風險最小化便是讓這個式子最小化,注意這個式子中累加和的上標N表示的是訓練樣例集中樣本的數目。
3、期望風險
經驗風險是對訓練集中的所有樣本點損失函數的平均最小化。經驗風險越小說明模型f(X)對訓練集的擬合程度越好,但是對於未知的樣本效果怎么樣呢?我們知道未知的樣本數據(<X,Y>)的數量是不容易確定的,所以就沒有辦法用所有樣本損失函數的平均值的最小化這個方法,那么怎么來衡量這個模型對所有的樣本(包含未知的樣本和已知的訓練樣本)預測能力呢?熟悉概率論的很容易就想到了用期望。即假設X和Y服從聯合分布P(X,Y).那么期望風險就可以表示為:
這就是期望風險,期望風險表示的是全局的概念,表示的是決策函數對所有的樣本<X,Y>預測能力的大小,而經驗風險則是局部的概念,僅僅表示決策函數對訓練數據集里樣本的預測能力。理想的模型(決策)函數應該是讓所有的樣本的損失函數最小的(也即期望風險最小化),但是期望風險函數往往是不可得到的,即上式中,X與Y的聯合分布函數不容易得到。現在我們已經清楚了期望風險是全局的,理想情況下應該是讓期望風險最小化,但是呢,期望風險函數又不是那么容易得到的。怎么辦呢?那就用局部最優的代替全局最優這個思想吧。這就是經驗風險最小化的理論基礎。
4、經驗風險與期望風險之間的聯系區別
通過上面的分析可以知道,經驗風險與期望風險之間的聯系與區別。現在在總結一下:
a) 經驗風險是局部的,基於訓練集所有樣本點損失函數最小化的。
b) 期望風險是全局的,是基於所有樣本點的損失函數最小化的。
c) 經驗風險函數是現實的,可求的;
d) 期望風險函數是理想化的,不可求的;
5、結構化風險
只考慮經驗風險的話,會出現過擬合的現象,過擬合的極端情況便是模型f(x)對訓練集中所有的樣本點都有最好的預測能力,但是對於非訓練集中的樣本數據,模型的預測能力非常不好。怎么辦呢?這個時候就引出了結構風險。結構風險是對經驗風險和期望風險的折中。在經驗風險函數后面加一個正則化項(懲罰項)便是結構風險了。如下式:
相比於經驗風險,結構風險多了一個懲罰項,其中是一個lamada是一個大於0的系數。J(f)表示的是是模型f的復雜度。結構風險可以這么理解:
經驗風險越小,模型決策函數越復雜,其包含的參數越多,當經驗風險函數小到一定程度就出現了過擬合現象。也可以理解為模型決策函數的復雜程度是過擬合的必要條件,那么我們要想防止過擬合現象的方式,就要破壞這個必要條件,即降低決策函數的復雜度。也即,讓懲罰項J(f)最小化,現在出現兩個需要最小化的函數了。我們需要同時保證經驗風險函數和模型決策函數的復雜度都達到最小化,一個簡單的辦法把兩個式子融合成一個式子得到結構風險函數然后對這個結構風險函數進行最小化。