在进入深度学习之前,首先要学的就是感知机模型,从平面点集分类角度来看,如果可以用一条直线就可以对平面所在的某些点集进行分类,则称之为单层感知机,显然单层感知机并不能很好的实现一些要求,这时多层感知机模型就派上了用场,实际上它可以进行非线性分类,例如异或门的实现,现实现与门、与非门、或门以及异或门,详细原理可参考《深度学习入门》一书。
# 单层感知机模型实现与门、与非门、或门
import numpy as np
def AND(x1,x2):
x=np.array([x1,x2])
w=np.array([0.5,0.5])
b=-0.7
y=np.sum(w*x)+b
if y<=0:
return 0
else:
return 1
def NAND(x1,x2):
x=np.array([x1,x2])
w=np.array([-0.5,-0.5])
b=0.7
y=np.sum(w*x)+b
if y<=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
y=np.sum(w*x)+b
if y<=0:
return 0
else:
return 1
# 多层感知机实现异或门
def XOR(x1,x2):
s1=NAND(x1,x2)
s2=OR(x1,x2)
y=AND(s1,s2)
return y
print(XOR(0,0))
print(XOR(1,0))
print(XOR(0,1))
print(XOR(1,1))
作为深度学习的入学者,我也很推荐《深度学习入门》一书,浅显易懂,从0开始,逐渐进入佳境,也欢迎感兴趣的小伙伴一起学习,创作不易,感谢支持~~