所看书籍为人民邮电出版社的深度学习入门,原作者[日]斋藤康毅
感知机简单的来说就是基础门电路的组合
import numpy as np
"""感知机
x1
↘w1
→ output
↗w2
x2
w1,w2为权重
output = 0 if w1x1+w2x2 <= θ(阈值) else 1
"""
def AND(x1, x2):
"""与门实现x1,x2为输入的值,b为偏置"""
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.7
tmp = np.sum(w * x) + b
return 0 if tmp <= 0 else 1
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
return 0 if tmp <= 0 else 1
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
return 0 if tmp <= 0 else 1
# 利用单层感知机(上面的那些)组合来实现多层感知机
def XOR(x1, x2):
"""异或门"""
s1 = NAND(x1, x2)
s2 = OR(x1, x2)
y = AND(s1, s2)
return y