# 感知机
import numpy as np
# 设置 >0时为1 <=0时为0 用b来当偏置
def NAND(x1, x2):
# b为偏置 w为权重
x = np.array([x1, x2])
w = np.array([-0.5, -0.5]) # w1,w2
b = 0.7
tmp = np.sum(w * x) + b
if tmp <= 0:
return 0
else:
return 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
if tmp <= 0:
return 0
else:
return 1
# x1, x2 = 0, 1
# print(NAND(x1, x2))
# 单层感知机无法表示异或门(分离非线性空间)
# 使用组合感知机(叠加层)来实现
def XOR(x1, x2):
s1 = NAND(x1, x2)
s2 = OR(x1, x2)
return s1 and s2
print(XOR(0, 0))
print(XOR(1, 0))
print(XOR(0, 1))
print(XOR(1, 1))
【深度学习入门】03感知机的简单介绍
最新推荐文章于 2024-08-09 16:21:21 发布