3.3 單層感知器的學習規則
3.3.1 單層感知器的學習規則介紹
感知器的學習規則就是指感知器中的權值參數訓練的方法,本小節我們暫時先不解釋這個學習規則是怎么推導出來的,等第4章我們講到Delta學習規則的時候再來解釋感知器的學習規則是如何推導的。這里我們可以先接受下面的公式即可。
在3.2.3小節中我們已知單層感知器的表達式可以寫成

式(3.1)中:y表示感知器的輸出;f是sign激活函數;n是輸入信號的個數。

式(3.2)中,Δwi表示第i個權值的變化;η表示學習率(Learning Rate),用來調節權值變化的大小;t是正確的標簽(Target)。
因為單層感知器的激活函數為sign函數,所以t和y的取值都為±1。
t=y時,Δwi為0;t=1,y=-1時,Δwi為2xiη;t=-1,y=1時,Δwi為-2xiη。由式(3.2)可以推出:

權值的調整公式為

3.3.2 單層感知器的學習規則計算舉例
假設有一個單層感知器如圖3.2所示,輸入x0=1、x1=0和x2=-1,權值w0=-5、w1=0和w2=0,學習率η=1,正確的標簽t=1(注意,在這個例子中,偏置值b用w0×x0來表示,x0的值固定為1)。
Step1:計算感知器的輸出。

由于y=-1與正確的標簽t=1不相同,所以需要對感知器中的權值進行調節。
Δw0=η(t-y)x0=1×(1+1)×1=2
Δw1=η(t-y)x1=1×(1+1)×0=0
Δw2=η(t-y)x2=1×(1+1)×(-1)=-2
w0:=w0+Δw0=-5+2=-3
w1:=w1+Δw1=0+0=0
w2:=w2+Δw2=0-2=-2
Step2:重新計算感知器的輸出。

由于y=-1與正確的標簽t=1不相同,所以需要對感知器中的權值進行調節。
Δw0=η(t-y)x0=1×(1+1)×1=2
Δw1=η(t-y)x1=1×(1+1)×0=0
Δw2=η(t-y)x2=1×(1+1)×(-1)=-2
w0:=w0+Δw0=-3+2=-1
w1:=w1+Δw1=0+0=0
w2:=w2+Δw2=-2-2=-4
Step3:重新計算感知器的輸出。

由于y=1與正確的標簽t=1相同,說明感知器經過訓練后得到了我們想要的結果,這樣我們就可以結束訓練了。
如果將上面的例子寫成Python程序,則可以得到代碼3-1。
代碼3-1:單層感知器學習規則計算舉例

運行結果如下:

下面我們還可以用矩陣運算的方式來完成同樣的計算,代碼3-2為以矩陣運算的方式來進行單層感知器學習規則的計算。
代碼3-2:單層感知器學習規則計算舉例(矩陣計算)

運行結果如下:
