3前馈神经网络
神经网络是最早作为一种连接主义为主的模型。
3.1神经元模型
3.1.1神经元(M-P)
在M-P模型中,神经元接受其他n个神经元的输入信号(0或1),这些输入信号经过权重加权并求和,将求和结果与阈值(threshold) θ 比较,然后经过激活函数处理,得到神经元的输出。
图3-1典型的神经元结构
3.1.2网络结构
人工神经网络由神经元模型构成,这种由许多神经元组成的信息处理网络具有并行分布结构。
图3-2几种神经网络网络结构
3.2感知器
3.2.1单层感知机
1958 年,罗森布拉特( Roseblatt )提出了感知器,与 M-P 模型需要人为确定参数不同,感知器能够通过训练自动确定参数。训练方式为有监督学习,即需要设定训练样本和期望输出,然后调整实际输出和期望输出之差的方式(误差修正学习)。
其中,α 是学习率,r和y分别是期望输出和实际输出。
感知器模型的训练过程:
3.2.2多层感知机
单层感知器只能解决线性可分问题,而不能解决线性不可分问题;为了解决线性不可分问题,我们需要使用多层感知器。
多层感知器指的是由多层结构的感知器递阶组成的输入值向前传播的网络,也被称为前馈网络或正向传播网络。
3.3BP算法
多层感知器的训练使用误差反向传播算法(Error Back Propagation),即BP算法。BP算法最早有沃博斯于1974年提出,鲁梅尔哈特等人进一步发展了该理论。
3.3.1BP算法的基本过程
BP算法就是通过比较实际输出和期望输出得到误差信号,把误差信 号从输出层逐层向前传播得到各层的误差信号,再通过调整各层的连接权重以减小误差。权重的调整主要使用梯度下降法:
3.3.2激活函数
通过误差反向传播算法调整多层感知器的连接权重时,一个瓶颈问题就是激活函数:
3.3.3BP算法实例
以包含一个中间层和一个输出单元 y 的多层感知器为例:表示输入层与中间层之间的连接权重,
表示中间层与输出层之间的连接权重, i 表示输入层单元,j 表示中间层单元。
3.4优化问题
3.4.1难点
(1)参数过多,影响训练
(2)非凸优化问题:即存在局部最优而非全局最优解,影响迭代
(3)梯度消失问题,下层参数比较难调
(4)参数解释起来比较困难
3.4.2需求
(1)计算资源要大
(2)数据要多
(3)算法效率要好,即收敛要快
3.4.3非凸优化问题
神经网络的优化问题是一个非凸优化问题.以一个最简单的1-1-1结构的两层神经网络为例,
其中𝑤1 和𝑤2 为网络参数,𝜎(⋅)为Logistic函数.
给定一个输入样本 (1, 1),分别使用两种损失函数,第一种损失函数为平方 误差损失:ℒ(𝑤1 , 𝑤2 ) = (1 − 𝑦)2,第二种损失函数为交叉熵损失 ℒ(𝑤1 , 𝑤2 ) = log 𝑦.当 𝑥 = 1, 𝑦 = 1 时,其平方误差和交叉熵损失函数分别为:ℒ(𝑤1 , 𝑤2 ) = (1 − 𝑦)2 和ℒ(𝑤1 , 𝑤2 ) = log 𝑦.损失函数与参数𝑤1 和𝑤2 的关系如图所示,可 以看出两种损失函数都是关于参数的非凸函数.
3.4.4梯度消失问题
由于 Sigmoid 型函数的饱和性,饱和区的导数更是接近于0.这样,误差经过每一层传递都会不断衰减.当网络层数很深时,梯度就会不停衰减,甚至消失,使得整个网络很难训练.这就是所谓的梯度消失问题(Vanishing Gradient Problem),也称为梯度弥散问题。
在深度神经网络中,减轻梯度消失问题的方法有很多种.一种简单有效的方式是使用导数比较大的激活函数,比如ReLU等