感知器的模擬 Simulation
(原講義為 Matlab 手冊的英文截圖,以下改寫為中文。)用一個簡單的問題說明 sim 怎麼運作。
建立網路並設定權值 Setting Up
取一個兩元素輸入向量的感知器,和決策邊界圖中的一樣:
net = newp([-2 2; -2 +2], 1);
如前一頁所述,這樣建立的權值與偏權值都是 0。若要特定的值,必須自己設定。把兩個權值與一個偏權值設成決策邊界圖中的 −1、1 與 1:
net.IW{1,1} = [-1 1];
net.b{1} = [1];
確認設定正確:
net.IW{1,1}
ans =
-1 1
net.b{1}
ans =
1
模擬 sim
看網路對分界線兩側的兩個訊號各有什麼反應:
p1 = [1;1];
a1 = sim(net,p1)
a1 =
1
p2 = [1;-1]
a2 = sim(net,p2)
a2 =
0
果然,感知器把兩個輸入分類正確。(補充)手算淨輸入:
| 輸入 | \(n = \mathbf{Wp} + b\) | \(a = \operatorname{hardlim}(n)\) |
|---|---|---|
| \(\mathbf p_1 = [1\ \ 1]^{\mathsf T}\) | \(-1 + 1 + 1 = 1\) | 1(分界線左上方) |
| \(\mathbf p_2 = [1\ \ {-1}]^{\mathsf T}\) | \(-1 - 1 + 1 = -1\) | 0(分界線右下方) |
也可以把兩個輸入排成序列(cell 陣列)一次送進去,得到的輸出也是序列:
p3 = {[1;1] [1;-1]};
a3 = sim(net,p3)
a3 =
[1] [0]
▶ 在 Colab 開啟原課程的 MATLAB 程式已改寫成 Python 筆記本(第 2 節 sim),可以直接在瀏覽器執行、修改參數。⬇ 下載 NN.ipynb
可以在簡單神經元頁的互動動畫中設定 w₁ = −1、w₂ = 1、b = 1、hardlim,再把輸入拉到這兩點驗證。


