用單層感知器完成邏輯或運算的學習過程

2021-10-16 09:01:46 字數 1868 閱讀 3915

這道題目是我「認知科學」(專業必修/doge)課程的結課作業題之一,目的在於加深對單層感知器的理解,對於後續學習神經網路打下基礎。

有關知識:

單層感知器的學習過程比較簡單,其主要目的在於對給出值域進行乙個線性劃分。主要步驟為:

初始化連線權值和閾值(一般為為零的較小隨機數);

取樣本域中資料作為輸入,在每一條輸入邊上進行加權求和,t表示迭代次數;

i np

ut=∑

i=1n

wi(t

)xi+

bθ(t

)input=\sum_^n + b\theta(t)

input=

i=1∑

n​wi

​(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,...