基本概念
可以将感知机看做基本的“神经元”,它接收多个信号输入,然后输出一个信号。
感知机的输入信号可以有不同的权重,权重越大该信号越重要;计算输入信号的总和,通过与阈值的比较,感知机将输出1(超过阈值)或0(不超过阈值)。
用公式表达如下:
等价于:
感知机实现逻辑电路
逻辑电路 - 与门
def AND(x1,x2):
x = np.array([x1, x2])
w = np.array([0.5,0.5])
b = -0.7
sum = np.sum(x*w) + b
if sum <= 0:
return 0
return 1
逻辑电路 - 或门
def OR(x1,x2):
x = np.array([x1, x2])
w = np.array([0.5,0.5])
b = -0.3
sum = np.sum(x*w) + b
if sum <= 0:
return 0
return 1
逻辑电路 - 与非门
def NAND(x1,x2):
x = np.array([x1, x2])
w = np.array([-0.5,-0.5])
b = 0.7
sum = np.sum(x*w) + b
if sum <= 0:
return 0
return 1
感知机的局限性
感知机的局限在于它只能通过切割线性空间。所有感知机可以实现与门、或们、与非门,但是无法是实现异或门。
多层感知机
多层感知机叠加可以实现切割非线性空间,不同层级的感知机组合可以实现极其复杂的逻辑。
多层感知机实例 - 异或门
def XOR(x1,x2):
s1 = NAND(x1,x2)
s2 = OR(x1,x2)
return AND(s1,s2)
网友评论