2.3 感知機的學習
回答2.2節最后的問題:換一個值,結果可能完全不對,那我們是如何得到1、1和0的呢?這需要使用感知機的一套學習規則,保證我們隨意取個權重參數也能使輸出的值是正常的。
感知機的學習規則也是一種訓練方法,目的是修改神經網絡的權值和偏置。
w(new)=w(old)+ep
b(new)=b(old)+e
其中e表示誤差,e =t -a,t為期望輸出,a為實際輸出。
下面我們用實例的方式推導感知機的學習規則。
例子,設w1=1,w2=-1,b=0。
(1)蘋果的形狀和顏色均輸入屬性1。得到:
s =p1w1+p2w2+b
= 1-1+0
=0
f = 0 (套用step函數)
(2)觀察了結果,期望結果1,實際得到了0這個結果,這里輸出值錯誤了,我們利用感知機的學習規則計算誤差。
e =t-z
=1-0
=1
我們得到了誤差e =1,再把值代入:
w1new=w1old+ep
=1+1×1=2
w2new=w2old+ep
=-1+1×1
=0
bnew=bold+e
=0+1
=1
(3)使用新的權值帶入感知機,重新計算蘋果的屬性輸入。
net=p1w1+p2w2+b
=1×2+1×0+1
=3
f(step)=1
(4)糾正誤差后,蘋果判斷正確。嘗試判斷香蕉。
net=p1w1+p2w2+b
=-1×2-1×0+1
=-1
f(step)=0
香蕉判斷也正確,誤差為0,學習結束。
我們利用了感知機的(有監督)學習規則進行誤差糾正,并把新的權值代入公式計算輸出得到我們期望的值。
在有監督的學習規則中,我們能通過期望值不斷修正權重,最終得到一個可用權重并用已經訓練好的感知機去做一些事情。