1957年Rosenblatt设计并制作出了感知机,历时半个世纪,硬件水平的极大提高以及大数据的发展,感知机焕发新的力量,因为这个就是当今最流行的人工神经网络的雏形,有着极其的重要性,通过感知机可以了解到神经网络原来是这样发展起来的!
神经网络顾名思义就是模拟大脑进行工作,多层的叠加就类似于大脑的无数神经元在工作,通过对外界的刺激做出反应和识别,已经有很多比较成熟的东西出现,人脸识别,无人驾驶等
import numpy as np
def AND(x1,x2):
x=np.array([x1,x2]);
w,b=0.5,-0.7;#权重与偏置
if(np.sum(x*w)+b<=0):
return 0;
else:
return 1;
AND(0,0),AND(0,1),AND(1,0),AND(1,1)
(0, 1, 1, 1)
def NAND(x1,x2):
x=np.array([x1,x2]);
w,b=-0.5,0.7;
if(np.sum(x*w)+b<=0):
return 0;
else:
return 1;
NAND(0,0),NAND(0,1),NAND(1,0),NAND(1,1)
(1, 1, 1, 0)
def OR(x1,x2):
x=np.array([x1,x2]);
w,b=0.5,-0.2;
if(np.sum(x*w)+b<=0):
return 0;
else:
return 1;
OR(0,0),OR(0,1),OR(1,0),OR(1,1)
(0, 1, 1, 1)
从上面代码可以看出,感知机的构造是一样的,不同的就是权重和偏置
def XOR(x1,x2):
s1=NAND(x1,x2);
s2=OR(x1,x2);
y=AND(s1,s2);
return y
XOR(0,0),XOR(0,1),XOR(1,0),XOR(1,1)
(0, 1, 1, 0)
看似简单,却是神经网络的基础,也是神经网络为什么能发展起来的原理,通过简单叠加不同的层就可以实现一些看起来不好实现的东西,这个特点是很强大的!