這道題目是我「認知科學」(專業必修/doge)課程的結課作業題之一,目的在於加深對單層感知器的理解,對於後續學習神經網路打下基礎。
有關知識:
單層感知器的學習過程比較簡單,其主要目的在於對給出值域進行乙個線性劃分。主要步驟為:
初始化連線權值和閾值(一般為為零的較小隨機數);
取樣本域中資料作為輸入,在每一條輸入邊上進行加權求和,t表示迭代次數;
i np
ut=∑
i=1n
wi(t
)xi+
bθ(t
)input=\sum_^n + b\theta(t)
input=
i=1∑
nwi
(t)
xi+
bθ(t
)將2中求和結果帶入啟用函式 f (在此取符號函式) 進行判斷;
o ut
put=
y=se
g(in
put)
=1 & input\geq0\\ 0 & input<0 \end
output
=y=s
eg(i
nput
)=w_i(t+1)=w_i(t)+\eta(d-y)x_i \\ \theta(t+1)=\theta(t)+\eta(d-y)(-1) \end
{wi(t
+1)=
wi(
t)+η
(d−y
)xi
θ(t+
1)=θ
(t)+
η(d−
y)(−
1)直至樣本域中所有資料輸出值與期望值相同。
這裡要注意的是,i 表示輸入資料的組內序號,不是第 i 組資料。
由題意可以構造下圖的單層感知器,需要迭代求解出中分界線使得分界線可以分割值域。
根據邏輯或的關係可以得到下圖的真值表。
步驟4:取第④組輸入值:x1=1, x2=1, 期望輸出:d=1,實際上:y=f(w1(1)x1+w2(1)x2-θ(1))=f(1.1)=1,與期望輸出相同;
步驟5:取第①組輸入值:x1=0, x2=0, 期望輸出:d=0,實際上:y=f(w1(1)x1+w2(1)x2-θ(1))=f(0.1)=1,與期望輸出不相同;
步驟6:取第②組輸入值:x1=0, x2=1, 期望輸出:d=1,實際上:y=f(w1(2)x1+w2(2)x2-θ(2))=f(0.1)=1,與期望輸出相同;
步驟7:取第③組輸入值:x1=1, x2=0, 期望輸出:d=1,實際上:y=f(w1(2)x1+w2(2)x2-θ(2))=f(0.3)=1,與期望輸出相同;
步驟8:取第④組輸入值:x1=1, x2=1, 期望輸出:d=1,實際上:y=f(w1(2)x1+w2(2)x2-θ(2))=f(0.7)=1,與期望輸出相同;
步驟9:取第①組輸入值:x1=0, x2=0, 期望輸出:d=0,實際上:y=f(w1(2)x1+w2(2)x2-θ(2))=f(-0.3)=0,與期望輸出相同。
由於步驟6~步驟9已經遍歷了所有輸入資料且實際輸出結果均與期望輸出相同,故可以結束迭代,此時閾值和連線權值以滿足結束條件。
得到:w1=0.6, w2=0.4, θ=0.3
通過視覺化也可以驗證(如下圖)
如有錯誤還望指出!
單層感知器實現邏輯與運算
感知器是乙個用來做模式識別最簡單的模型,由於僅有乙個神經元,所以只能用來處理線性可分的兩類模式識別。u i 1i nwi xi b u sum w x b u i 1 i n wi x i b y s gn u y sgn u y sgn u sgn階躍函式,當u 0時,y 1 當u 0時,y 0。...
用感知器實現「與」運算
用感知器實現邏輯運算 and 與 coding utf 8 created on sat mar 21 12 01 05 2020 author 隕星落雲 import pandas as pd 設定權重與偏置項 weight1 1weight2 1bias 1.5 輸入與輸出 test input...
資料探勘 單層感知器的Matlab實現
單層感知器 1.newp 建立乙個感知器 舉個栗子 用newp函式建立乙個感知器並進行訓練 p 1,1 1,1 t 1 net newp p,t,hardlim learnp p 0,0,1,1 0,1,0,1 用於訓練的輸入資料,每列為乙個輸入向量 t 0,1,1,1 輸入資料的期望輸出 net,...