感知器
在人工神经网络领域中,感知器也被指为单层的人工神经网络,以区别于较复杂的多层感知器(Multilayer Perceptron)。 作为一种线性分类器,(单层)感知器可说是最简单的前向人工神经网络形式。尽管结构简单,感知器能够学习并解决相当复杂的问题。 ————百度百科:感知器(神经网络模型)
在人体神经网络中,神经细胞是有着基本处理信号功能的基本单元,单层感知器就是人工神经网络中模拟人体神经细胞的基本单元。
单层感知器
参考资料:AI MOOC
单层感知器是最简单的神经网络,它包含输入层和输出层,信号先经过线性组合器处理然后再经过激活函数,最后输出结果。
1、输入节点(input)
输入节点是信号的输入端,感知器可以有很多个信号输入,也就是可以有很多个输入节点。通常会多设置一个输入节点,它的输入值为偏置因子,权重为1,便于矩阵的运算。
2、输出节点(output)
输出节点是信号经过感受器处理后输出的结果。
3、权重(weight)
在人体神经细胞结构中,每个树突的信号强度可能会有所不同,在单层感受器中,给每个输入节点的输入的信号添加权重,很好的模拟了人体神经细胞的结构和功能。
4、线性组合器
在单层感知器中,将各输入节点与各自权重的乘积求和这个算法就是线性组合器。
5、激活函数(activation function)
在单层感知器中,激活函数是一个二值阈值元件,在信号经过线性组合器组合之后,通过这个激活函数判断当前的信号强度是否满足激活的条件,一般来说如果满足则输出1,不满足则输出-1.
6、学习率(learning rate)
学习率(Learning rate)作为监督学习以及深度学习中重要的超参,其决定着目标函数能否收敛到局部最小值以及何时收敛到最小值。合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。
不同学习速率对收敛的影响(图片来源::cs231n)
单层感知器程序举例
例、构建神经网络将平面坐标系上的点按标签分类。6个点:(3,3),(3,4),(4,3),(2,2),(1,2),(2,1),标签分别为:1,1,1,-1,-1,-1
输入节点:3个(横坐标一个,纵坐标一个,偏置因子一个)
输入数据:(1,3,3),(1,3,4),(1,4,3),(1,2,2),(1,1,2),(1,2,1)每组数据中的第一个数据为我们设置为1的偏执因子。对应的标签为(1,1,1,-1,-1,-1)
初始化权值:w0,w1,w2取-1到1的随机数。
学习率:设置为0.11
激活函数:sign(x)=1(x>0),-1(x<0)
import numpy as np#导入Numpy科学计算库
import matplotlib.pyplot as plt#导入matplotlib二维绘图库
X=np.array([[1,3,3]