淺談感知機算法

感知機是一種二分類算法,其輸入的實例爲一特徵向量,輸出的實例的實例類別只有+1,-1兩個值。
感知機屬於線性分類模型,是判別模型的一種。其原理是,通過訓練集求出一個分離超平面,將正負樣本進行分離。
談到超平面,我們自然地就想到了到這個平面的距離,嘿嘿,沒錯,感知機的損失函數就是基於樣本到超平面的距離來度量的

感知機概念及算法推導

先來看看,感知機函數:
這裏寫圖片描述

f(x)表示最終預測的分類,w*x+b被稱爲感知機模型參數W被稱作權值或權值向量,b叫做偏置,x表示輸入的特徵變量。
好啦,根據這個函數,我們要做的事情很簡單,即確定函數參數來達到一個效果 —– 使正負樣本在超平面兩側。白話的來說,讓這個函數預測精確,即要達到下圖效果。
這裏寫圖片描述

那麼,我們還得確定一個經驗損失函數,來使經驗損失最小化。因爲有“距離”度量,損失函數定義爲誤分點到超平面S的總距離經驗損失函數定義如下:
這裏寫圖片描述

這裏||w||表示的是 w的 L2範數,作用的防止過擬合。

有了損失函數,那麼如何判別樣本是否爲誤分點呢?我們知道輸出的結果只有{+1,-1},如果樣本被誤分,必然有:
這裏寫圖片描述

因此,我們可定義誤分點到超平面S的距離爲:
這裏寫圖片描述

那麼,所有誤分點到超平面S的距離公式如下,其中M爲誤分點的集合
這裏寫圖片描述

所以,損失函數L(w,b)最終可定義爲:
這裏寫圖片描述

自然,我們要求出損失函數的最小值minL(w,b)
這裏寫圖片描述

這裏,我們用到隨機梯度下降法,即不斷的對w和b求導,使函數沿着w和b最快的方向減小,直到損失函數L(w,b)不斷減小直至爲0。具體步驟如下:
這裏寫圖片描述
隨機選取一個誤分類點(xi,yi),定義學習速率η,對w,b進行更新
這裏寫圖片描述
綜上所述,感知機算法如下(李航老師版《統計學習方法》定義)
這裏寫圖片描述

感知機算法使用前提

到這裏,感知機算法算是講完啦,那麼感知機算法使用前提是什麼呢?對了,那就是數據集必須線性可分,否則無法使用,線性可分定義如下:

這裏寫圖片描述

感知機和支持向量機的區別

感知機和支持向量機都是通過“距離”來對樣本進行區分。它們的區別在於:
1. 感知機只支持線性可分數據集;而支持向量機有核函數,支持線性不可分的數據集
2. 感知機通過梯度下降法,求誤分類樣本到超平面的距離來確定參數的取值;支持向量機都過求超平面到樣本的最大距離來確定參數的取值

小結:

感知機是基礎的分類算法,很多算法都是從感知機中衍生出來的,比如支持向量機,神經網絡等。其中,爲了保證易懂,感知機的對偶性、損失函數的收斂性在本博客中沒有講述。建議大家通過其他博客進行了解,很有意思。在之後的博客中,會將對偶性和收斂性分別講述,之後會貼出鏈接,歡迎大家參閱及批評指正。

參考

李航版 《統計學習方法》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章