感知器法則

2021-07-22 20:49:22 字數 1483 閱讀 8221

感知器以乙個實數值向量作為輸入,計算這些輸入的線性組合,然後如果結果大於某個閾值就輸出 1,否則輸出-1。更精確地,如果輸入為 x1 到 xn,那麼感知器計算的輸出為: 

所以我們的目標是:學習權 w0

, ..., wn 

的值 。

我們可以把感知器看作是 n 維例項空間(即點空間)中的超平面決策面。對於超平面一側的例項,感知器輸出 

1,對於另一側的例項輸出

-1。二維如下圖:方塊為1,星為-1。 

為了得到可接受的權向量,一種辦法是從隨機的權值開始,然後反覆地應用這個感知器到 每個訓練樣例,只要它誤分類樣例就修改感知器的權值。

重複這個過程,直到感知器正確分類所有的訓練樣例。每一步根據感知器訓練法則

來修改權值,也 就是根據下面的法則修改與輸入 xi 

對應的權 wi

: wi←wi+∆wi

其中 ∆wi 

=η(t

-o)x

i  這裡 t 是當前訓練樣例的目標輸出,o 是感知器的輸出,η是乙個正的常數稱為學習速 率(learning rate)。

學習速率的作用是緩和每一步調整權的程度。它通常被設為乙個小的數 值(例如 0.1),而且有時會使其隨著權調整次數的增加而衰減。 

這時,(t-o)是 0,這使∆wi 為 0,所以沒有權值被修改。 

這種情況為使感知器輸出乙個

+1 而不是

-1,權值必須被修改以增大

的值。

例如,如果 xi

>0

,那麼增大 wi 

會使感知器更接近正 確分類這個例項。注意這種情況下訓練法則會增長 wi

,因為(t-

o),η

和 xi 都是正的。例如, 如果 xi

=0.8,η

=0.1

,t=1,並且 

o= -1

,那麼權更新就是∆w

i =η(

t-o)

xi=0.1(1-(-1))0.8=0.16

。另 一方面,如果 

t=-1 而 o

=1,那麼和正的 xi 

關聯的權值會被減小而不是增大。 

更深刻的栗子:

上圖虛線為第一次的分類器:o(x1,x2) = w0+w1x1+w2x2 = -4 + 2x1 + x2

代入紅色方塊(1,1)得:o(1,1) = -4+2+1 = -1 < 0, 感知器將其標記為-1。但是真實的分類為+1。

更新wi:

新的o(x1,x2) = -3.6 + 2.4x1 + 1.4x2 (上圖實線)

再次對紅色方塊進行分類:o(1,1) = -3.6 + 2.4 + 1.4 = 0.2 > 0,  這次被標記成 +1啦。

優點:事實上可以證明,在有限次使用感知器訓練法則後,上面的訓練過程會收斂到乙個能正 確分類所有訓練樣例的權向量,前提是訓練樣例線性可分,並且使用了充分小的η 。

不足:如果資料不是線性可分的,那麼不能保證收斂;得出的分類函式未必是最優的。

感知器及其訓練法則

1.什麼是感知器 感知器以乙個實數值向量作為輸入,計算這些輸入的線性組合,然後如果結果大於某個閾值,就輸出1,否則輸出 1。更準確地,如果輸入為x1到xn,那麼感知器計算的輸出為 其中wi為權值,用來決定輸入xi對感知器輸出的貢獻率。為了簡化表示,我們假想有乙個附加的常量輸入x0 1,那麼我們就可以...

學習筆記 感知器 單層感知器舉例

在人體神經網路中,神經細胞是有著基本處理訊號功能的基本單元,單層感知器就是人工神經網路中模擬人體神經細胞的基本單元。單層感知器 單層感知器是最簡單的神經網路,它包含輸入層和輸出層,訊號先經過線性組合器處理然後再經過啟用函式,最後輸出結果。1 輸入節點 input 輸入節點是訊號的輸入端,感知器可以有...

感知器演算法

coding utf 8 created on thu oct 15 13 58 06 2015 author think 感知器演算法 import mkdata as mk import numpy as np import matplotlib.pyplot as plt n 100 生成測試...