1.單層感知器實現基本邏輯函數
?先給大家拋出一道例題
(一)種類?
a.OR函數
目標:當至少一個輸入為1時,輸出1;否則輸出0。
權重設置:
輸入權重:所有?wi=1(i=1,2,...,m)。
偏置:w0=n-0.5。(n為負文字數量)?
b.AND函數
目標:?當所有輸入為1時,輸出1,否則輸出0。
權重設置:
輸入權重:所有wi=1。
偏置:w0=0.5-n。
c.NOT函數
目標:輸入1,輸出0,輸入0,輸出1。
權重設置:
輸入權重:w=-1。
偏置:w0=0.5。
數學原理:
s=0.5?x,當?x=1 時?s=?0.5<0,輸出0;x=0 時?s=0.5>0,輸出1。
d.NAND(與非)函數
目標:當所有輸入為1時輸出為0,否則輸出1。
權重設置:
輸入權重:w1=-1,w2=-1。
偏置:w0=1.5。
e.NOR(或非)函數?
目標:當任一輸入為1時輸出0,否則輸出1。
權重設置:
輸入權重:w1=-1,w2=-1。
偏置:w0=0.5。
f.imply(蘊含)函數?
(二)單層感知器的局限性
?
2.兩層神經網絡實現復雜邏輯(CNF)?
我們現在利用上述知識來看一下例題:(A∨B)∧(?B∨C∨?D)∧(D∨?E)
步驟一:分解為析取項(OR項)
每個析取項對應一個隱藏層節點:
-
第一隱藏節點:A∨BA∨B
-
第二隱藏節點:?B∨C∨?D?B∨C∨?D
-
第三隱藏節點:D∨?ED∨?E
步驟二:設置隱藏層權重與偏置
-
輸入權重:
-
正文字(如A, C, D):權重 +1。
-
負文字(如?B, ?D, ?E):權重 -1。
-
-
偏置:w0=k?0.5,其中?k?是當前析取項中負文字的數量。
簡單舉個例子:
同理對其他兩個進行表達,可分別得出,并將三者進行合并。
?
步驟三:輸出層實現合取(AND項)?
-
輸入權重:所有隱藏節點到輸出的權重為1。
-
偏置:w0=0.5?m,其中?m 是隱藏節點數(本例中?m=3)。
-
偏置?w0=0.5?3=?2.5。
-
-
數學原理:
-
輸出層加權和?s=?2.5+h1+h2+h3s=?2.5+h1?+h2?+h3?。
-
僅當所有隱藏節點輸出1時,s=?2.5+3=0.5>0s=?2.5+3=0.5>0,最終輸出1。
-
所以,最后的神經網絡長這樣
3.異或(XOR)網絡實現?
已知單層神經網絡是無法解決非線性可分問題(例如XOR),我們只能引入多層神經網絡來進行表達。大家先來看一道例題。
網絡結構
-
輸入層:兩個節點?x1??和?x2。
-
隱藏層:兩個節點,分別計算以下兩個中間邏輯函數:
-
節點?h1?:計算?x1∧x2?(AND)。
-
節點?h2?:計算?x1∨x2(OR)。
-
-
輸出層:一個節點,計算?NOR(h1,h2)。
-
關鍵邏輯:
-
當?h1=1(即?x1=x2=1),輸出被抑制為0。
-
當?h2=1(即至少一個輸入為1),輸出也被抑制為0。
-
唯一輸出1的情況是?h1=0 且?h2=0,即?x1=x2=0。
-