幹貨|機器學習-感知機perceptron
什麼是感知機
在機器學習中,感知機(perceptron)是二分類的線性分類模型,屬於監督學習算法。輸入為實例的特征向量,輸出為實例的類別(取+1和-1)。感知機對應於輸入空間中將實例劃分為兩類的分離超平麵。感知機旨在求出該超平麵,為求得超平麵導入了基於誤分類的損失函數,利用梯度下降法 對損失函數進行最優化(最優化)。感知機的學習算法具有簡單而易於實現的優點,分為原始形式和對偶形式。感知機預測是用學習得到的感知機模型對新的實例進行預測的,因此屬於判別模型。感知機由Rosenblatt於1957年提出的,是神經網絡和支持向量機的基礎。
定義

稱為感知機。其中,參數w叫做權值向量weight,b稱為偏置bias。w⋅x表示w和x的點積



學習策略

如果訓練集是可分的,感知機的學習目的是求得一個能將訓練集正實例點和負實例點完全分開的分離超平麵。為了找到這樣一個平麵(或超平麵),即確定感知機模型參數w和b,我們采用的是損失函數,同時並將損失函數極小化。
對於損失函數的選擇,我們采用的是誤分類點到超平麵的距離(可以自己推算一下,這裏采用的是幾何間距,就是點到直線的距離):

對於誤分類點(xi,yi)來說:





其中M為誤分類的集合。這個損失函數就是感知機學習的經驗風險函數。
可以看出,隨時函數L(w,b)是非負的。如果沒有誤分類點,則損失函數的值為0,而且誤分類點越少,誤分類點距離超平麵就越近,損失函數值就越小。同時,損失函數L(w,b)是連續可導函數。
學習算法




其中η是步長,大於0小於1,在統計學習中稱之為學習率(learning rate)。這樣,通過迭代可以期待損失函數L(w,b)不斷減小,直至為0.
下麵給出一個感知器學習的圖,比較形象:

算法描述如下:
算法:感知機學習算法原始形式

解釋:當一個實例點被誤分類時,調整w,b,使分離超平麵向該誤分類點的一側移動,以減少該誤分類點與超平麵的距離,直至超越該點被正確分類。偽代碼描述:

對於每個w⋅x其實是這樣子的(假設x表示的是七維):

對於輸入的每個特征都附加一個權值,然後將相加得到一個和函數f,最後該函數的輸出即為輸出的y值。
實例


解答思路:根據上麵講解的,寫初始化權值w和偏置b,然後一步一步的更新權值,直到所有的點都分正確為止。
解:(1) 令w0=0,b0=0
(2) 隨機的取一個點,如x1,計算y1(w0⋅x1+b0),結果為0,表示未被正確分類,根據下麵的式子更新w,b(此例中,我們將學習率η設置為1):


最後求得

所以感知機模型為:

即我們所求的感知機模型。
小結

好吧,對於感知機的介紹,就到此為止!在複習的過程中順便做下筆記,搜搜資料,整理整理,也算是給自己一個交代吧。希望本文章能對大家能有點幫助。
References
[1] 統計學習方法, 李航 著
[2] Wikiwand之Perceptron https://www.wikiwand.com/en/Perceptron
[3] Wikipedia https://en.wikipedia.org/wiki/Machine_learning
原文鏈接:https://blog.csdn.net/dream_angel_z/article/details/48915561
相關文章鏈接:https://www.52ml.net/15104.html
本文來源於"中國人工智能學會",原文發表時間" 2016-09-08"
最後更新:2017-05-24 17:32:19