第五章神经网络
5.1神经元模型
神经网络中最基本的成分是神经元模型,即“简单单元”。
在“M-P神经元模型“中,神经元接受收到来自n个其他神经元传递过来的输入信号,这些输入信号经过带权重的连接进行传递,神经元接收到的总输入值将于神经元的阈值进行比较比较,然后通过”激活函数“处理以产生神经元的输出。
激活函数有两种:阶跃函数和sigmoid函数。由于阶跃函数具有不连续、不光滑的不太好的性质,所以通常使用sigmoid函数。sigmoid函数可能把在较大的范围内变化的输入值挤压到(0,1)输出范围内,因此有时也称为“挤压函数”(squashing function).
把许多个这样的神经元按一定的层次机构连接起来就得到了神经网络。
5.2感知机和神经网络
感知机(Perceptron)由两层神经元组成。如图5.3,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”(thresold logic unit).
感知机能容易地解决逻辑与、或、非运算。
需注意的是,感知机只有输出层神经元进行激活函数处理,机制拥有一层功能神经元,学习能力有限。上述与、或、非都是线性可分的问题。
要解决非线性可分问题,需要使用多层功能神经元。下图用了两层简单的感知机就解决了异或问题。
但是,更常见的是下图的层级结构。每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络结构通常称为“多层前馈神经网络”。(multi-layer feedforward nrural networks).
5.3误差逆传播算法(BP算法)
误差逆传播算法(error BackPropagation,简称BP)是迄今为止最成功的神经网络学习算法。现实任务中使用神经网络时,大多数使用BP算法进行训练。BP算法不仅可用于多层前馈神经网络,还可用于其他类型的神经网络。
BP算法:
输入:d维特征向量
输出:l个输出值
隐层:假定使用q个隐层神经元
假定功能单元均使用Sigmoid函数
对于每个训练样例,BP算法执行以下操作:先将输入示例提供给输入层神经元,然逐层将信号前传,直到产生输入层的结果;然后计算输入层的误差,再将误差逆向传播至隐层神经元,最后根据隐层神经元的误差来对连接权和阈值进行调整,该迭代过程循环进行,直到达到某些停止条件为止。
需注意的是,BP算法的目标是要最小化训练集D上的累计误差
上面所说的“标准BP算法”每次仅针对一个训练样例更新连接权和阈值。如果类似地推导出基于累积误差最小化的更新规则,就得到了累计误差逆传播(accumulated error backpropagation)算法。累积BP算法和标准BP算法都很常用。一般来说,标准BP算法每次更新只针对单个样例,参数更新的非常频繁,而且对不同样例进行更新的结果可能会出现“抵消”现象。故,为了达到同样的累积误差极小点,标准BP算法需要进行更多次数的迭代。累积BP算法直接针对累计误差最小化。它在读取整个训练集D一遍后才对参数进行更新,其参数更新的频率低得多。所以当训练集D比较大时,标准BP算法的效率更好。
由于其强大的表示能力,BP神经网络经常遭遇过拟合,其训练误差持续降低,当测试误差有可能上升。有两种策略可以缓解过拟合:
1. “早停”(early stopping):将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
2. “正则化”(regularization)其基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分。
5.4全局最小和局部最小
我们常会谈到两种“最优”:“局部最小”(local minimum)和”全局最小”(global minimum).对和,若存在>0使得
都有 成立,则 为局部极小解;若对参数空间中的任意 都有 ,则 为全局极小解。
显然,参数空间内梯度为零的点,只要其误差函数值小于邻点的误差函数值,就是局部极小点;可能存在多个局部极小值,但却只会存在一个全局极小值。在参数优化寻优过程中,我们需要找到全局最小。
基于梯度的搜索是使用最广泛的参数寻优方法。在此类方法中,我们从某些初始解出发,迭代寻找最优参数值。每次迭代中,我们先计算误差函数在当前点的梯度,然后根据梯度确定搜索方向。
在现实任务中,人们常采用以下策略来试图“跳出”局部极小,从而进一步接近全局最小:
1. 以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数。
2. 使用“模拟退火”(simulated annealing)技术.模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助于“跳出”局部极小。在每步迭代过程中,接受“次优解”的概率要随着时间的推移而逐渐降低,从而保证算法稳定。
3. 使用随机梯度下降。与标准梯度下降精确计算梯度不同,随机梯度下降法在计算时加入了随机因素。于是,即便陷入局部极小点,它计算的梯度仍可能不为零,这样就有机会跳出局部极小继续搜索。
5.5其他常见神经网络
5.5.1RBF网络
RBF(Radial Basis Function,径向基函数)网络是一种单隐层前馈神经网络,它使用径向基函数作为隐层神经元激活函数,而输出层则是对隐层神经元输出的线性组合。假定输入为d维向量x,输出为实值。则RBF网络可表示为:
其中q为隐层神经元个数, 和 分别是第i个隐层神经元所对应的中心和权重。 是径向基函数。
通常采用两步过程来训练RBF网络:第一步,确定神经元中心 ,常用的方式包括随机采样、聚类等;第二步,利用BP算法等来确定参数 和 .
5.5.2ART网络
ART(Adaptive Resonance Theory)自适应谐振理论网络是竞争型学习的代表。
ART比较好地缓解了竞争型学习中的“可塑性-稳定性窘境”(stability plasticity dilemma),可塑性是指神经网络要有学习新知识的能力,而稳定性是指神经网络在学习新知识的同时要保持对旧知识的记忆。这就使得ART一个很重要的优点:可进行增量学习或在线学习。
5.5.3SOM网络
SOM(self-Organizing Map,自组织映射)网络是一种竞争学习型的无监督神经网络。
5.5.4级联相关网络
级联相关网络有两个主要成分:“级联”和“相关”