介绍
神经网络的起源算法
输入信号被送到神经元的时候,分别乘以固定的权重(w1x1,w2x2)。神经元会计算传送过来的信号的总和,只有当这个总和超过某个界限值,才会输出1,也被称为"神经元被激活",这里将这个界限值成为阈值。用符号θ表示.
经典感知机缺陷
可以表示与门🚪,或门,但是无法表示异或门,原因是需要使用曲线来分割0 1位置。但是使用多层感知机可以解决这个问题。
多层感知机
接下来使用python实现异或门
#需要一个NAND(s1) 和一个 OR(s2)
import numpy as np
def NAND(x1,x2):
x=np.array([x1,x2])
y=np.array([0.5,0.5])
resu=np.sum(x*y)
if(resu>=1):
return 0
else:
return 1
def OR(x1,x2):
x=np.array([x1,x2])
y=np.array([0.5,0.5])
resu=np.sum(x*y)
if(resu>0):
return 1
else:
return 0
def AND(x1,x2):
x=np.array([x1,x2])
y=np.array([0.5,0.5])
resu=np.sum(x*y)
if(resu>=1):
return 1
else:
return 0
def XOR(x1,x2):
s1=NAND(x1,x2)
s2=OR(x1,x2)
y=AND(s1,s2)
return y
if __name__ =='__main__':
print(XOR(1,0))
二层感知机如下