深度学习入门 (2)感知机的简单实现
与门
def AND(x1,x2):
w1,w2,theta = 0.5,0.5,0.7
tmp = w1*x1+w2*x2
if tmp > theta:
return 1
else:
return 0
print(AND(0,1))
print(AND(1,0))
print(AND(1,1))
print(AND(0,0))
导入权重与偏置
import numpy as np
def AND_2(x1,x2):
x = np.array([x1,x2])
w = np.array([0.5,0.5])
b = -0.7
tmp = np.dot(x,w)+b
if tmp > 0:
return 1
else:
return 0
print(AND_2(0,1))
print(AND_2(1,0))
print(AND_2(1,1))
print(AND_2(0,0))
或门
def OR(x1,x2):
x = np.array([x1,x2])
w = np.array([0.5,0.5])
tmp = np.dot(x,w)
if tmp > 0:
return 1
else:
return 0
与非门
def NAND(x1,x2):
x = np.array([x1,x2])
w = np.array([-0.5,-0.5])
b = 0.7
tmp = np.dot(x,w)+b
if tmp > 0:
return 1
else:
return 0
异或门
def XOR(x1,x2):
s1 = NAND(x1,x2)
s2 = OR(x1,x2)
y = AND(s1,s2)
return y
参考资料
《深度学习入门:基于python的理论与实践》