定义
神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应。
神经元接收来自n个其他神经元传递过来的输入信号,这些输入信息通过带权重的连接进行传递,神经元接收到总输入将与神经元的阈值进行比较,然后通过**激活函数(响应函数)**处理以产生神经元的输出。激活函数一般是sigmoid函数。
把这样的神经元按照一定的层次结构连接起来,就得到了神经网络。
神经网络包含了很多参数,如10个神经元两两连接,则有100个参数:90个连接权和10个阈值。
感知机和多层网络
感知机由两层神经元组成。输入成接收外界输入信号后传递给输出层,输出层是M-P神经元。感知机能容易的实现逻辑与或非运算(与或非实际上是线性可分问题,存在一个超平面将其分开)。
感知机就是学习权重 以及阈值 。把阈值看作一个固定输入为 -1.0的哑节点所对应的权重 ,这样权重和阈值的学习就统一为权重的学习。对训练样例 (x, y),若当前感知机的输出
其中 称为学习率。
感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力很有限。感知机对线性可分问题一定会收敛,求得超平面,但是对异或这种线性不可分问题无能为力。
要解决这种非线性可分问题,需考虑使用多层功能神经元。下图中位于输出层和输入层之间的神经元称为隐层或隐含层,隐含层和输出层神经元都是拥有激活函数的功能神经元。
下图网络结构,每层神经元与下一层神经元互连,神经元之间不存在同层连接,也不存在跨层连接,这称为多层前馈神经网络。前馈不是说网络中信息不能向后传,而是网络中不存在环或回路。
神经网络就是根据训练数据学习神经元之间的连接权和每个功能神经元的阈值,即神经网络学到的东西蕴涵在连接权和阈值中。
误差逆传播算法
误差逆传播(error BackPropagation, BP)算法(反向传播算法)是训练多层网络的重要算法。另外还可训练其他神经网络,如递归神经网络,一般BP网络指用BP算法训练的多层前馈神经网络。
BP算法基于梯度下降策略。其工作过程描述如下:
输入:训练集 D = {(xk, yk)} k={1,m}
学习率 n
过程:
1:在(0,1)范围内随机初始化网络中所有连接权和阈值
2:repeat
3: for all (xk, yk) 属于 D do
4: 根据当前参数计算出当前样本的输出
5: 计算出输出层神经元的梯度项
6: 根据输出层神经元的梯度计算隐层神经元梯度项
7: 用梯度和其他参数更新输入层和隐层的连接权和隐层和输出层的连接权,隐层神经元的阈值和输出层神经元的阈值
8: end for
9: util 达到停止条件
输出:连接权与阈值确定的多层前馈神经网络
以上只针对单个训练样本更新连接权和阈值,但BP算法目标是最小化训练集 D 上的累积误差,就需要用到累积误差逆传播算法。累积BP算法和标准BP算法都很常用,标准BP算法每次更新只针对单个样例,参数更新的非常频繁,对不同的样例可能出现抵消现象,因此,标准BP算法往往进行更多次迭代。累积BP算法直接针对累积误差最小化,读取整个训练集D 一遍后才对参数进行更新,参数更新频率低得多。累积误差下降到一定程度后,进一步下降会非常缓慢,这时标准BP往往会更快获得较好的解,尤其在训练集 D 非常大时更明显。
读取数据一遍也称为一轮(one epoch)
BP神经网络很容易过拟合,一般有两种策略缓解过拟合,第一种是早停:将数据集划分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证误差的连接权和阈值。第二种是正则化:在误差目标函数中增加一个用于描述网络复杂度的部分,如连接权和阈值的平方和(训练过程将偏好较小的连接权和阈值,使网络输出更加“光滑”),然后通过交叉验证评估两个部分的权重。
全局最小和局部极小
若用 表示神经网络在训练集上的误差,则它显然是关于连接权 和阈值
基于梯度的搜索是使用最广泛的参数寻优方法,根据梯度来确定寻找方向,负梯度方向是函数值下降最快的方向,因此梯度下降法就是沿着负梯度方向搜索最优解。
跳出局部极小:
- 以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数。相当于从多个不同的初始点开始搜索,这样可能陷入不同的局部极小,从中选择获得全局最小
- 使用模拟退火技术。模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助于跳出局部极小。迭代过程中,接受次优解的概率逐步降低。
- 使用随机梯度下降,随机梯度下降计算时加入随机因素,即使陷入局部极小,计算出的梯度也可能不是零
遗传算法也常用来训练神经网络。上述方法大多是启发式,理论缺乏。
其他神经网络
RBF(径向基函数)网络
是一种但隐藏前馈神经网络,使用径向基函数作为隐层神经元激活函数,而输出层是对隐层神经元输出的线性组合。
ART网络
竞争型学习是神经网络中一种常用的无监督学习策略,网络的输出神经元相互竞争,每一时刻仅有一个竞争获胜的神经元被激活,其他神经元的状态被抑制,亦称“胜者通吃”原则。ART(自适应谐振理论)网络是代表,网络包括:比较层、识别层、识别阈值和重置模块构成。
ART缓解了竞争性学习中的“可塑性-稳定性窘境”,可塑性是指神经网络要有学习新知识的能力,而稳定性指的神经网络在想学习新知识时要保持对旧知识的记忆。ART网络可进行增量学习或在线学习.在线学习是增量学习的特例,而增量学习可视为"批模式"的在线学习.
SOM网络
SOM(自组织映射)网络是一种竞争学习型的无监督神经网络,能将高维输入数据映射到低维空间(通常是二维),同时保持输入数据在高维空间中的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。
级联相关网络
结构自适应网络将网络结构也当做学习的目标之一。级联相关网络是其代表。
Elman网络
递归神经网络(RNN)允许网络中出现环形结构,从而让一些神经元的输出反馈回来作为输入信号,这种结构能处理与时间有关的动态变化。
Boltzman机
有一类模型为网络状态定义一个“能量”,能量最小化时网络达到理想状态。Boltzman机是一种基于能量的模型。常见结构如下图(a),神经元分为两层:显层和隐层。显层用于数据的输入与输出,隐层则被理解为数据的内在表达
Boltzman机的训练过程就是将每个训练样本视为一个状态向量,使其出现的概率尽可能大。标准的Boltzman机是一个全连接图,复杂度高,现实中采用受限的Boltzman机(RBM)。RBM采用“对比散度”算法进行训练。
tzman机的训练过程就是将每个训练样本视为一个状态向量,使其出现的概率尽可能大。标准的Boltzman机是一个全连接图,复杂度高,现实中采用受限的Boltzman机(RBM)。RBM采用“对比散度”算法进行训练。