《統計學習方法》2 感知機

2021-07-24 03:33:13 字數 3769 閱讀 6465

感知機(perceptron)是二分類的線性分類模型,輸入為例項的特徵向量,輸出為例項的類別(取+1和-1)。感知機對應於輸入空間中將例項劃分為兩類的分離超平面。感知機旨在求出該超平面,為求得超平面匯入了基於誤分類的損失函式,利用梯度下降法 對損失函式進行最優化(最優化)。感知機的學習演算法具有簡單而易於實現的優點,分為原始形式和對偶形式。感知機**是用學習得到的感知機模型對新的例項進行**的,因此屬於判別模型。感知機由rosenblatt於2023年提出的,是神經網路和支援向量機的基礎。

行文脈絡

感知機模型

感知機學習策略

感知機學習演算法

4. github位址

1. 感知機模型

定義

假設輸入空間(特徵向量)為x⊆rn,輸出空間為y=。輸入x∈x表示例項的特徵向量,對應於輸入空間的點;輸出y∈y表示示例的類別。由輸入空間到輸出空間的函式為

f(x)=sign(w·x + b)(1)

稱為感知機。其中,引數w叫做權值向量,b稱為偏置。w·x表示w和x的內積。sign為符號函式,即

幾何解釋

感知機模型是線性分類模型,感知機模型的假設空間是定義在特徵空間中的所有線性分類模型,即函式集合。線性方程 w·x+b=0對應於特徵空間rn中的乙個超平面s,其中w是超平面的法向量,b是超平面的截踞。這個超平面把特徵空間劃分為兩部分。位於兩側的點分別為正負兩類。超平面s稱為分離超平面,如下圖:

學習與**

感知機學習即由訓練資料集t=(其中xi∈x=rn,yi∈y=,i=1,2...n)求得感知機模型(1),即求得引數w,b;感知機**即根據得到的感知機模型(1),對新的輸入例項給出對應的型別。

2. 感知機學習策略

假設訓練資料集是線性可分的,感知機學習的目標是求得乙個能夠將訓練資料的正負例項點完全分開的分離超平面,即最終求得引數w、b。這需要乙個學習策略,即定義(經驗)損失函式並將損失函式最小化。

損失函式的乙個自然的選擇是誤分類的點的總數。但是這樣得到的損失函式不是引數w、b的連續可導函式,不宜優化。損失函式的另乙個選擇是誤分類點到分裡面的距離之和。

首先,對於任意一點xo到超平面的距離為

其次,對於誤分類點(xi,yi)來說 -yi(w·xi+b)>0

這樣,假設超平面s的總的誤分類點集合為m,那麼所有誤分類點到s的距離之和為

不考慮1/||w||,就得到了感知機學習的損失函式。

經驗風險函式

給定資料集t=(其中xi∈x=rn,yi∈y=,i=1,2...n),感知機sign(w·x+b)學習的損失函式定義為

其中m為誤分類點的集合,這個損失函式就是感知機學習的經驗風險函式。                           

顯然,損失函式l(w,b)是非負的。如果沒有誤分類點,那麼l(w,b)為0,誤分類點數越少,l(w,b)值越小。乙個特定的損失函式:在誤分類時是引數w,b的線性函式,在正確分類時,是0.因此,給定訓練資料集t,損失函式l(w,b)是w,b的連續可導函式。

3. 感知機學習演算法

最優化問題:給定資料集t=(其中xi∈x=rn,yi∈y=,i=1,2...n),求引數w,b,使其成為損失函式的解(m為誤分類的集合):

3.1 感知機學習的原始形式

感知機學習是誤分類驅動的,具體採用隨機梯度下降法。首先,任意選定w0、b0,然後用梯度下降法不斷極小化目標函式(6),極小化的過程不知一次性的把m中的所有誤分類點梯度下降,而是一次隨機選取乙個誤分類點使其梯度下降。

假設誤分類集合m是固定的,那麼損失函式l(w,b)的梯度由(7)(8)給出

隨機選取乙個誤分類點(xi,yi),對w,b進行更新:

式中η(0≤η≤1)是步長,在統計學是中成為學習速率。步長越大,梯度下降的速度越快,更能接近極小點。如果步長過大,有可能導致跨過極小點,導致函式發散;如果步長過小,有可能會耗很長時間才能達到極小點。

演算法(感知機學習演算法的原始形式)

輸入

:t=(其中xi∈x=rn,yi∈y=,i=1,2

...n,學習速率為η)

輸出:w, b;感知機模型f(x)=sign(w·x+b)(1

) 初始化w0,b0(2

) 在訓練資料集中選取(xi, yi)

(3) 如果yi(w xi+b)≤0

w = w +ηyixi

b = b +ηyi

(4) 轉至(2)

直觀解釋:當乙個例項點被誤分類時,調整w,b,使分離超平面向該誤分類點的一側移動,以減少該誤分類點與超平面的距離,直至超越該點被正確分類。

例1

對於訓練資料集,其中正例點是x1=(3,3)t,x2=(4,3)t,負例點為x3=(1,1)t,用感知機學習演算法的原始形式求感知機模型f(x)=w·x+b。這裡w=(w(1),w(2))t,x=(x(1),x(2))t

:構建最優化問題:

按照演算法求解w, b。η=1

(1)取初值w0=0, b0=0

(2)對於(3,3):-(0+0)+0=0未被正確分類。更新w,b

w1=w0+1*y1·x1 = (0,0)t+1(3,3)t=(3,3)t

b1=b0+y1=1

得到線性模型w1x+b1 = 3x(1)+3x(2)+1

(3)返回(2)繼續尋找yi(w·xi+b)≤0的點,更新w,b。直到對於所有的點yi(w·xi+b)>0,沒有誤分類點,損失函式達到最小。

分離超平面為x(1)+x(2)-3=0

感知機模型為 f(x)=sign(x(1)+x(2)-3)

在迭代過程中,出現w·xi+b=-2,此時,取任意乙個點,都會是其小於0,不同的取值順序會導致最終的結果不同,因此解並不是唯一的。為了得到唯一的超平面,需要對分離超平面增加約束條件,這就是支援向量機的想法。

3.2 感知機學習的對偶形式

對偶形式的基本想法是,將w,b表示成為例項xi和標記yi的線性組合的形式,通過求解其係數而得到w和b。不失一般性,將初始值w0,b0設為0.對誤分類點(xi,yi)通過

w = w + ηyixi

b = b + ηyi

的轉換逐步修該w,b,設修改了n次,則w,b關於(xi,yi)的增量分別為aiyixi和aiyi,這裡ai=niη最終學習到的w,b可以表示為

例項點更新次數越多,意味著它距離分離超平面越近,也就越難正確分類。換句話說,這樣的例項對學習結果影響很大。

演算法(感知機學習演算法的對偶形式)

輸入:t=(其中xi∈x=rn,yi∈y=,i=1,2...n,學習速率為η)

輸出:a,b;感知機模型f(x)=sign(w·x+b)

(1) 初始化w0,b0

(2) 在訓練資料集中選取(xi, yi)

(3) 如果

ai = ai + η
b = b + ηyi

(4) 轉至(2)

對偶形式中訓練資料僅以內積的形式出現,為了方便可以預先把訓練資料間內積計算出來並以矩陣的形式儲存起來,這個矩陣就是所謂的gram矩陣。

感知機 統計學習方法

一 感知機適用問題以及它的輸入,輸出,求解方法 1 感知機 perceptron 適用於二類分類問題 該分類問題是線性可分問題 2 感知機模型是線性分類模型 3 感知機的幾何解釋,感知機對應的是乙個超平面 4 輸入 例項的特徵向量 5 輸出 例項的類別,取 1和 1二值 6 求解方法 有監督學習 給...

《統計學習方法》 感知機

最近終於有開始看 統計學習方法 了,畢竟無腦調參確實沒有什麼意義。一方面是作為看書的筆記,一方面作為比部落格或許能起到一點參考作用吧。希望可以日更。由輸入空間到輸出空間的函式 f x si gn w x b f x sign w cdot x b f x s ign w x b 稱為感知機。感知機是...

統計學習方法之感知機

在翻閱知乎時,得知李航所著的 統計學習方法 一書,於是就買了一本,看到csdn上已有大牛都發了相關的部落格,再次贅述就顯得囉嗦了,就直接上乾貨吧,自己用matlab寫的 和一些自己再看書時的小小的理解。感知機是一種二類分類的線性模型模型,是乙個將輸入空間 特徵空間 分成正負兩類的分離超平面。它的更多...