二分類問題是監督學習中最基本的問題之一,本文旨在從評分值、損失函數的角度,對解決二分類問題的諸多機器學習算法作一個梳理。相關算法的詳細介紹能夠參考相關教材[1][2]。 算法
給定一個數據集 ,其中,爲d維向量 。注意有些資料中二分類比較喜歡用表示,使用什麼數字表示二分類從原理上講沒有區別,但在數學表達上會有一些細微差別。機器學習
評分值不是一個機器學習算法中的一個正式名詞,可是咱們不妨創建這樣一個認識角度。咱們但願創建關於樣本的一個評分函數,它的基本性質很簡單,就是要求和目標值同號,即正樣本評分爲正數,負樣本評分爲負數,這樣最終的二分類函數爲。ide
那麼咱們要如何創建評分函數呢?直觀的想法是,對樣本的個屬性進行加權求和,這樣能體現每一個屬性在評分中的重要性,如此創建的評分不必定在0值處有區分做用,所以再加上一個偏置項,因此評分函數爲,這個基本的評分函數能夠衍生出不少算法。函數
評價二分類問題的基本標準是分類錯誤率,針對每個樣本,若是去計算它的損失函數,就是分類正確損失爲0,分類錯誤損失爲1,這種損失函數通常叫作0-1損失函數,可記爲。學習
若是咱們統一考慮正、負樣本,令 ,那麼分類正確時,必然始終爲正值,不妨稱其爲絕對評分值,是對分類是否正確的一個度量。則,故是關於的分段函數。從最優化理論的角度來看,這個函數沒法求梯度或次梯度,所以須要找它的近似來優化。這個近似的基本標準是:始終爲非負值;當它很小時,很小。優化
評分值是屬性的線性組合,從另外一個角度看,評分值也是關於權值的線性組合。通常的,咱們將變換到新的特徵空間獲得。則評分值爲。上述分析基本不變,只是模型的複雜度更高了。如下分析如無特別說明仍在原空間進行。3d
要求評分值與目標值同號,若是目標定得更加狹隘一些,能夠令評分值直接爲,這是線性迴歸問題,損失函數使用偏差平方(能夠作直觀的理解,也能夠認爲樣本的偏差符合正態分佈,從極大似然的角度推導出,這不是本文的重點。)。注意到,故偏差函數是關於絕對評分值的二次函數。從圖中能夠看出是始終大於的,並且當比較小時,也比較小,因此能夠做爲的近似。cdn
線性迴歸有封閉解,因此使用線性迴歸作二分類很是簡單,可是效果通常不太好,爲何呢?從的曲線能夠看出,當絕對評分值很大時,應該爲0,直觀來講,絕對評分值很大應該是區分度高的一件好事情,可是卻給與了更高的懲罰,這是不合理的。線性迴歸能夠給出一個還不錯的值,能夠用做其餘算法的初始值。blog
感知機學習能夠用以下的直觀想法來理解:針對絕對評分值,當它爲正數時,分類正確,咱們認爲偏差爲0,當它爲負數時,咱們認爲離0值越遠,偏差越大,即,從的曲線來看,也是的一個近似,雖然它也是一個分段函數,可是是能夠求次梯度的,時,認爲梯度爲0,當時,,使用隨機梯度降低法,也就是說,只在出現評分錯誤時進行優化,這剛好就是感知機學習算法所作的工做。排序
對感知機學習的偏差函數,咱們能夠進一步優化,咱們但願絕對評分值要充分大,這樣認爲樣本是正樣本咱們才更加放心,考慮到是關於可縮放的,不妨定義充分大爲大於1。因而有,這個損失函數被稱爲hinge損失函數。考慮結構風險,咱們的優化目標爲
經過鬆弛變量法,就能夠變爲軟間隔支持向量機,經過二次規劃來求出模型。
從評分值的角度來理解,評分值充分大使得模型針對新的樣本有較好的魯棒性,這正是支持向量機比較優秀的地方。若是引入特徵空間,則在支持向量機的求解過程當中要大量計算內積,將特徵空間的內積簡化爲原空間的核函數能夠引入核方法。
在值的基礎上,咱們但願它能算出一個機率,衡量分類正確的機率或者說程度。即將的值域從映射到 ,那麼sigmoid函數是個好的選擇,它可求梯度並且在0處機率剛好爲0.5。即
而後,咱們再根據這個sigmoid函數,再來模擬損失函數,咱們要求損失函數關於遞減,並且始終爲正數,考慮機率求對數後再取負號,故
由圖能夠看出,它也是的一種近似。以對數損失函數爲優化目標。
這是帶正則化的Logistic迴歸,因爲到處可微,所以可使用梯度降低法等最優化方法求解。
指數函數一樣能夠知足近似的基本條件,即損失函數定義爲。
指數損失函數結合加性模型,能夠推導出AdaBoost算法。
所謂加性模型,能夠這樣來理解:假設咱們獲得的特徵空間中的d維向量對應的就是d個弱分類器,就是說比隨機猜想50%的正確率高一點的分類器。所謂的Boost方法就是有效的組合這些弱分類器來構建強分類器。加性模型本質上依然是一個線性模型。依然有評分函數爲。(考慮到弱分類器自己能夠有偏置,所以取。)只不過這裏的表明一個弱分類器,而不是一個簡單的屬性變換(本質上看,也是一種屬性變換)。
AdaBoost是一個逐步迭代的過程,假設通過輪迭代已經獲得評分函數,在第輪迭代後獲得,則,AdaBoost的優化目標是使得每一步獲得的評分函數關於指數損失函數最小,即
該式的進一步推導此處再也不詳述。
以上介紹了6種損失函數,他們都是關於評分值的單調非增函數,其中後面5種是關於0-1損失函數的近似替代,經過求解替代函數可否獲得原問題的解,有深刻的研究,稱爲替代損失的「一致性」問題[3]。
此外,若是咱們要找出全部樣本種的正例並排序,那麼評分值應該在參與優化的時候就具有排序的特性,對數損失和指數損失是單調遞減的,以它們爲優化目標的模型計算出的評分值能夠參與排序,其餘幾種損失函數不是單調遞減的,所以相應的評分值不適合排序。