基于M-P模型中权重参数需要人为设置的问题,1958年罗森布拉特(Roseblatt)提出了感知器,经过训练,计算机能够确定神经元的连接权重,由此,神经网络迎来了第一次热潮。
单层感知器
感知器结构
感知器主要有输入层和输出层,其中,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元。
表达式
感知器如何自动确定参数?
误差修正学习策略:设定训练样本和期望输出,然后调整实际输出和期望输出之差。
参数自动调整策略如图所示:
其中a是连接权重调整数值的参数,用于控制误差修正速度,增加其值则增大则增加速度,减小其值则降低修正速度。(该参数又称学习率,学习率如果过大会影响训练的稳定性,如果太小会使得训练的收敛速度变慢)
单层感知器的不足
(图来源网络)
感知器训练只能解决如上图(a)所示的线性可分问题,不能解决如上图(b)的线性不可分问题。
其实上图(a)是与运算的二维平面分布图,上图(b)是异或运算的二维平面分布图;
下面重点说一下异或运算,异或运算法则如下:
通过异或运算可知,(0,0)与(1,1)是一类,(0,1)和(1,0)是一类。
因此,单层感知器无法解决最简单的非线性可分问题——异或问题
那么如何解决这一个问题呢?——需要引入多层感知器。
多层感知器
为了解决线性不可分问题,我们需要使用多层感知器。
什么是多层感知器?
多层感知器是由多层结构的感知器递阶组成的输入值向前传播的网络,也称前馈网络或向行传播网络。一般包括输入层,中间层(或称为隐层)和输出层。结构如下:
通过下面的图直观展示一下单层感知器和多层感知器在分类中的效果,如下图所示。
(该图来源于网络 https://blog.youkuaiyun.com/u013007900/article/details/50066315)
由上图可以看出,随着隐层层数的增多,凸域将可以形成任意的形状,因此可以解决任何复杂的分类问题。
多层感知器权重如何调整?
1、多层感知器之间也是通过误差修正学习确定两层之间的连接权重。
2、误差修正学习无法跨层调整,因此无法进行多层训练。
3、初期感知器在输入和中间层之间的连接权重采用随机数确定,而在中间层与输出层采用误差修正学习。这种方法不足在于输入数据不同,但在中间层的值却相同,影响分类准确性。
如何解决不足?——误差反向传播算法。
更多文章,还可关注公众号“小黄有点忙”。