机器学习单层神经网络感知机及其python实现

对于神经网络,由许许多多的神经元构成,而无数的神经元又可以拆分成为许许多多的双层神经元(输入层和输出层)

机器学习单层神经网络感知机及其python实现_第1张图片

仅由两层神经元构成的简单神经网络称为感知机,感知机可以轻松实现逻辑与,或,非的运算,

并且需要用到阶跃函数sgn(x)={1,x>=0; 0,x<0}

首先了解一下逻辑与,逻辑或和逻辑非运算:

逻辑与:令w1=w2=1,θ=2,由神经元输出公式可以看出,只有当x1=x2=1时,y=1;

逻辑或:令w1=w2=1,θ=0.5,只要x1或x2其中一个数满足等于1,则x1+x2-θ=0.5>0,根据阶跃函数,可以推出y=1

逻辑非:令w1=-0.6,w2=0,θ=-0.5,y=f(-0.6*x1+0*x2+0.5),当x1=1时,y=0,x1=0时,y=1

感知机对于数据集的训练是数据可分的,即存在一个超平面将他妈分开,那么如何能让数据更加直观呢,可以借助numpy来进行数据可视化的处理

机器学习单层神经网络感知机及其python实现_第2张图片

第一步先用numpy模块产生-1,1之间的若干高斯白噪声点

第二步将给定的训练集进行拆分:

 

第三步很重要,绘制直线并对噪声点进行判断:

 机器学习单层神经网络感知机及其python实现_第3张图片

最后再给定指定训练集进行训练即可 

你可能感兴趣的:(神经网络,python,机器学习)