參考鏈接:http://www.360doc.com/content/17/0623/13/10408243_665793832.shtml
1、損失函數
假設輸入是X,輸出是f(X),真實值是Y。
(1)0-1損失函數(0-1 loss function)

(2)平方損失函數(quadratic loss function)

(3)絕對損失函數(absolute loss function)

(4)對數損失函數(logarithmic loss function)

2.傳統的經驗風險最小化
很容易看出來,
損失函數越小,模型就越好,接下來用期望風險來描述模型在整個數據集上的損失,假設我們已經得到了數據的概率測度P(X,Y),那么就可以計算損失函數的期望即期望風險:

需要說明的是,這里假設數據集包含了所有可能的數據,即P(x,y)是已知的,顯然這是不可能的,我們只能盡量多的獲取數據集中的數據,但是不可能獲得所有輸入空間中的數據。有了期望風險學習的目標就確定了,即找到使期望風險最小的模型,但是就像前面說明的,全部數據的分布是未知的,那么求解期望風險的問題就是一個病態問題。那該怎么辦呢,雖然我么不知道數據集的概率測度,但是我們擁有給定的一定的獨立同分布的樣本,因此,我們可以用模型f(x)在這個給定的樣本集上的平均損失最小化來代替無法求得得期望風險最小化。
注意上面我們再一次提到了獨立同分布,這樣我們就不用考慮數據集的概率測度了,計算瞬間變簡單了,當然,這肯定造成了一定的計算損失,但是結果還是可信的,可取的。
則經驗風險或經驗損失函數為:

使用經驗風險泛函最小的函數來逼近期望風險泛函最小的函數,這一原則成為經驗風險最小化歸納原則(ERM原則)。
根據大數定律,當樣本數趨於無窮大時,經驗風險趨於期望風險。但是,在實際應用中,訓練樣本的個數是有限的,甚至還會很少,所以使用經驗風險逼近期望風險的效果就不好了。
這里還涉及到一個學習理論的關鍵定理,該定理指出了ERM原則一致性的條件是必要的並且充分的取決於函數集中最壞的函數。這一塊只要知道它指出了經驗風險和期望風險的誤差是有界的就行。
上面說到,
對於小樣本問題,經驗風險效果並不理想,因為經驗風險最小化容易帶來過擬合現象。過擬合現象其實就是模型的選擇太在意訓練誤差了,反而導致預測誤差隨着訓練誤差減小而增大,造成訓練結果不理想。這里不再多說,可以到網上找一個多項式擬合的例子形象的理解。我也轉了一篇關於過擬合的文章,解決過擬合問題是加入懲罰項或者增加數據。
3.結構風險最小化
為了解決經驗風險最小化逼近引發的一系列問題,vpnik等幾位大牛發展了現代的統計學習理論,提出了結構風險最小化,更加適合解決小樣本問題,並且提出了尋找結構風險最小化的方法,這一套理論發展出了有名的分類器:基於VC維理論和結構風險最小化的支持向量機SVM,它能夠更快更迅速的解決小樣本問題,在大樣本集上也有一些基於稀疏矩陣的改進方法,成為2000年來的研究熱點之一。
首先要引入函數的VC維概念:
函數集Q(f)的VC維是指能夠被集合中的函數以所有可能的
種方式分成兩類的樣本的最大數目h.另一個說法是:假如存在一個有h個樣本的樣本集能夠被函數集中的函數按照所有可能的
方式分成兩類,則稱該函數集能把樣本為h的樣本集打散。VC維就是h的最大值,對於h+1,函數集就無法打亂了。對於線性函數,其VC維很簡單,就是函數維數+1,。


定義N(f)代表函數集Q(f)中的函數能夠把給定的樣本分成多少種類,稱H(f)=ln(N(f))為隨機熵,描述了函數集在給定數據上的多樣性,引入生長函數G(n)=ln(N(f)),則生長函數與VC維的關系為:
G(h)=hln2
G(h+1)小於(h+1)ln2
即生長函數或者是線性的,或者以對數為上界。如果函數集的生長函數是線性的,則函數集的VC維是無窮大的,因為函數集能夠打散的數據集數目可以無限大,反之,如果生長函數是以參數h的對數函數為界,則函數集的VC維就是h。VC衡量了一個函數集的復雜程度,VC維越大,函數集越復雜,雖然函數打散的樣本數增加了,但是計算函數的復雜度卻增加了,反而不能得到好的結果(引起過擬合),VC維越小,函數集越簡單,求解速度快而且方便。支持向量機只關注對偶公示中參數不為0的支持向量的那些樣本,因此VC維很小。奧卡姆剃刀原理:在所有可能選擇的模型中,能夠很好地解釋已知數據並且十分簡單的才是最好的模型。引入VC維之后我們再去看看上面紅色的部分,即經驗風險和期望風險的誤差是依概率有界的,通過一系列復雜的公示推導我們得到如下公式:

n為樣本數,h為VC維
不等式右邊第一項為經驗風險,第二項為置信風險,是一個減函數,整個公示反映了經驗風險和真實誤差的差距上界,表征了根據經驗風險最小化原則得到的模型的泛化能力。稱為泛化誤差上界。
上述公示表明:當樣本數較大時,n/h很大,置信范圍就會很小,經驗風險最小化接近實際最優解,而當n/h比較小時,置信范圍就會很大,經驗風險最小化泛化能力就差。
上述公示表明:當樣本數較大時,n/h很大,置信范圍就會很小,經驗風險最小化接近實際最優解,而當n/h比較小時,置信范圍就會很大,經驗風險最小化泛化能力就差。
結構風險=經驗風險+置信風險,這部分會在SVM那一塊仔細介紹。
在李航的書中講到了模型選擇兩種典型方法,這里簡單介紹一下:
a.正則化
正則化是結構風險最小化策略的實現,在經驗風險上加一個正則化項,該項與模型復雜度相關或者模型VC維相關,復雜度越大,正則化值就越大。常用的正則化項有模型參數的范數等。
b.交叉驗證
交叉驗證的思想就是將訓練數據集隨機划分成若干個塊,這些塊稱為訓練集和驗證集,訓練集用於訓練模型,驗證集用於評判訓練明星的好壞,在每一塊上找到風險最小化函數,然后綜合再把結果綜合起來考慮。常見的交叉驗證包括1/3和2/3划分,k-則交叉驗證以及留一法。第一種方法取數據集的2/3進行訓練,剩余1/3進行驗證,第二種方法取k-1份訓練,剩下一份驗證,將可能的K種組合都做一次,因此共需要訓練k次模型,留一法是k則交叉驗證的極端情況,即K=N。
最后注意一下生成模型和判別模型的區別
生成模型更像是找到數據的組織形式,而判別模型是用實現固定好的模型模擬數據。
生成模型由數據學習到聯合分布,然后求解條件概率分布,因此學習速度快且能更快的收斂到真實模型。
判別模型直接學習決策函數或條件概率,側重於預測,因此准確率高。