一、什么是感知器
人工神经网络的第一个里程碑就是感知器 perceptron,这个名字其实有点误导,因为它根本上是做决策的。一个感知器其实是对神经元的最基本的概念,它未必有多少网络的概念,它就是一个自动做决策的机器。
参考 https://blog.csdn.net/why19940926/article/details/78720641
二、什么是单层感知器
在介绍单层感知器之前,我们需要引入两个概念:线性可分与线性不可分。
线性可分:线性可分就是说可以用一个线性函数把两类样本分开,比如二维空间中的直线、三维空间中的平面以及高维空间中的线型函数。所谓可分指可以没有误差地分开。
线性不可分:线性不可分指有部分样本用线性分类面划分时会产生分类误差的情况。
参考https://blog.csdn.net/why19940926/article/details/78720641
单层感知器可以用来区分线性可分的数据,并且一定可以在有限的迭代次数中收敛。
单层感知器可以用来模拟逻辑函数,逻辑非NOT、逻辑或非XOR、逻辑或OR、逻辑与AND和逻辑与非NAND等,但是不能用来模拟逻辑异或XOR(XOR 是线性不可分问题)。
注:单层感知器与单个神经元是有区别的。
三、单层感知器原理
3.1 基本原理
人工神经网络就是模拟人体神经网络,可以看到,该神经元分为三部分,输入,中间,输出,输入和输出可以有多个,在中间进行了处理。
最简单的是单层感知神经网络,可以有多个输入,中间做处理,最后输出。
x1, x2, x3 分别是输入节点
y 是输出节点
w1, w2, w3 是对应的权值
b是偏置因子(一般情况下,可以把 b 替换成输入因子的一部分,并且它的值是1,然后加一个对应的权就构成b)
3.2 实现原理
输入:X
学习率:lr
激活函数:负责运算返回一个结果 O,
f(X) = { 1, X > 0;
0, X = 0;
-1, X < 0 }
w 误差:lr ×(预期输出 Y - 激活函数的结果 O)× X
单层感知器就是反复的计算误差 W_c,然后再与当前的 W0 相加得到新的 W1,再用新的 W1 带入激活函数,如果不满足要求,就再次计算,直到满足收敛条件才停止计算。
收敛条件:
1、误差小于莫格预先设定的较小的值
2、两次迭代之间的权值变化已经很小
3、达到预先设定的最大迭代次数