感知器以乙個實數值向量作為輸入,計算這些輸入的線性組合,然後如果結果大於某個閾值就輸出 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 生成測試...