感知機是1957年提出的算法,也是作為神經網絡和深度學習的起源算法。
下面是csdn大佬總結的感知機模型以及簡單的應用:機器學習——感知機機器學習感知機欲游山河十萬里的博客-CSDN博客
感知機是什么
感知機接收多個輸入信號,輸出一個信號輸入信號在送往神經元的時候,分別乘以權重,神經元會計算信號總和,只有當這個總和超過某個界限時,才會輸出1;
感知機.png
image.png
感知機應用與實現
a.與門
def AND(x1, x2):
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.7
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1
(0, 0) -> 0 #0+0-0.7
(1, 0) -> 0 #0.5+0-0.7
(0, 1) -> 0 #0+0.5-0.7
(1, 1) -> 1 #0.5+0.5-0.7
b.或門
def OR(x1, x2):
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.2
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1
c.與非門
def NAND(x1, x2):
x = np.array([x1, x2])
w = np.array([-0.5, -0.5])
b = 0.7
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1
多層感知機
從上面應用可以看出單層感知機無法實現異或門,深究其原因,知感知機的原理是用直線在平面上分隔出兩個空間,其中一個空間輸出0,另一個空間輸出1;異或門無法用一條直線分隔成0和1 兩個空間;此外,直線分隔成的空間叫做線性空間,非直線分隔成的空間叫做非線性空間;所以,單層感知機只能解決線性空間問題。故引入多層感知機。
d.異或門實現
參考計算機組成異或門的實現,我們知道可以利用與非門,或門和與門組合實現;
異或門
def XOR(x1, x2):
s1 = NAND(x1, x2)
s2 = OR(x1, x2)
y = AND(s1, s2)
return y
end