学习笔记--第五章神经网络

转载自点击打开链接

第5章 神经网络

1 神经元模型

神经网络中最基本的成分是神经元模型,即“简单单元“。每个神经元与其他神经元相连,当他兴奋时会向其他相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过一个”阈值“,那么他就会兴奋,并向其他神经元发送化学物质。

M-P神经元模型,神经元接收到其他神经元传递过来的输入信号,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“**函数“处理以产生神经元的输出。

学习笔记--第五章神经网络

理想的**函数是阶跃函数,1为神经元兴奋,0为神经元抑制,由于阶跃函数不连续、不光滑等性质。因此常用Sigmoid函数为**函数。

学习笔记--第五章神经网络

可将一个神经网络视为包含了许多参数的数学模型,这个模型是若干个函数相互嵌套代入得来的。


2 感知机与多层网络

感知机由两层神经元组成,输入层接受外界信号传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”。

为了将权重与阈值的学习统一为权重的学习,可以将阈值看作固定输入为-1的“哑结点”,所对应的连接权的值为阈值。

感知机根据每次训练样例中预测值与实际值间的差异程度对神经元之间的权重进行调整。

感知机只拥有一层功能神经元即输出层神经元,因而只有输出层神经元能进行**函数处理,他的学习能力因而受到限制。

感知机能解决线性可分问题,不能解决非线性可分问题。与或非问题是线性可分的,即存在线性超平面将他们分开;异或问题为非线性可分问题。

学习笔记--第五章神经网络

但是,多层功能神经元可解决非线性可分问题。

多层前馈神经网络,其中输入层神经元接受外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出神经元输出。神经网络的学习就是根据训练数据来调整神经元之间的“连接权”和每个神经元的阈值。调参的过程就是调整连接权和阈值的过程。

3 误差逆传播算法

欲训练多层网络,需要强大的学习算法,BP算法是其中的杰出代表。通常说“BP网络”指用BP算法训练多层前馈神经网络。

学习笔记--第五章神经网络

显然上图中的单隐层前馈神经网络需要确定的参数有dq+lq+q+l个,包括输入层与隐层、隐层与输出层之间的连接权(dq+lq)以及隐层和输出层中每个功能神经元的阈值。

BP算法基于梯度下降策略以目标的负梯度方向对参数进行调整。

学习率控制着算法每一轮迭代中的更新步长,若太大则容易震荡,太小则收敛速度又过慢。

BP算法执行以下操作:先将输入示例提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结果;然后计算输出层的误差,再将误差逆向传播至隐层神经元,最后根据隐层神经元的误差来对连接权和阈值进行调整。该迭代过程循环进行,直到达到某些停止条件为止。

学习笔记--第五章神经网络

BP算法的目标是最小化训练集上的累计误差。标准的BP算法每次针对一个训练样例更新连接权和阈值。累积BP算法直接针对累积误差最小化,他在读取整个训练集一遍后才对参数进行更新,参数更新的频率低得多。

由于BP神经网络能力强大,所以经常会过拟合,即训练误差持续降低,但测试误差可能会上升。有两种策略来缓解过拟合,第一种策略是“早停”:将数据分为训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集的连接权和阈值。第二种为“正则化”,其基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分。

4 全局最小与局部极小

神经网络的训练过程可看作一个参数寻优过程,即在参数中间,寻找一组最优参数使得误差最小。

局部极小解是参数空间中的某个点,其邻域点的误差函数值均小于该点的误差函数值;全局最小解则是参数空间中所有点的误差函数值均不小于该点的误差函数值。

学习笔记--第五章神经网络

基于梯度的搜索,我们从某些初始解出发,迭代寻找最优参数值。每次迭代中先计算误差函数在当前点的梯度,然后根据梯度确定搜索方向。若梯度为零,则已达到局部极小,参数迭代在此停止。

常采用以下策略来试图跳出局部极小,从而进一步接近全局最小:

(1)   以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数。相当于从不同的出发点开始搜索,这样会陷入不同的局部极小,从中选择最可能接近全局最小的结果。

(2)   使用“模拟退火”技术。模拟退火在每一步都以一定概率接受次优解,从而有助于跳出局部极小。每次迭代中,接受次优解的概率随时间推移逐渐降低,从而保证算法稳定。

(3)   使用随机梯度下降。在计算梯度时加入随机因素。于是即便陷入局部极小,它计算出梯度可能仍不为0,这样有机会跳出局部极小继续搜索。

(4)   遗传算法。

5 其他常见神经网络

5.1 RBF网络

RBF网络是一种单隐层前馈神经网络,它使用径向基函数作为隐层神经元**函数,而输出层则是对隐层神经元输出的线性组合。

径向基函数通常定义为样本x到数据中心ci之间欧氏距离的单调函数。

5.2 ART网络

竞争型学习是神经网络中常用的无监督学习策略,在使用该策略时,网络神经元相互竞争,每一时刻仅有一个获胜的神经元被**,我i他神经元被抑制,这种机制亦称为“胜者通吃”原则。

ART网络是竞争型学习的重要代表,该网络由比较层、识别层、识别阈值和重构模块构成。其中,比较层负责接受样本并将其传递给识别层神经元。识别层每个神经元对应一个模式类,神经元数目在训练过程中可动态增长以增加新的模式类。

在接收到比较层的输入信号后,识别层神经元之间相互竞争以产生获胜神经元。若输入向量与获胜神经元所代表的向量之间相似度大于识别阈值,则当前输入样本将被归为该代表向量所属类别,同时,网络连接权将会更新,使得以后在接收到相似输入样本时该模式会计算出更大的相似度,从而使该获胜神经元有更大的可能性获胜;若相似度不大于识别阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设为当前输入向量。

识别阈值高,则输入样本会被分成比较多、比较精细的模式类;反之,则会产生比较少、比较粗糙的模式类。

5.3 SOM网络

SOM网络是一种竞争学习型无监督神经网络能够将高维空间的相似点映射到网络输出层中的邻近神经元,同时保持输入数据在高维空间的拓扑结构。

每个神经元拥有一个权向量,网络在接收输入向量后,将会确定输出层获胜神经元,他决定了输入向量映射到低维空间的位置。SOM训练的目的就是为每个输出层神经元找到合适的权向量,以达到保持拓扑结构的目的。

SOM的训练过程很简单:在接受输入样本后,计算每个神经元与该样本的距离,距离最近的称为最佳匹配单元。然后调整最佳匹配单元及其邻近神经元的权向量,使得这些权向量与当前样本的距离减小,这个过程不断迭代,直至收敛。

5.4 级联相关网络

级联相关网络是结构自适应网络的重要代表。

学习笔记--第五章神经网络

级联相关网络有两个主要成分:“级联”和“相关”。级联是建立层次连接的层级结构。在开始训练时,网络只有输入层和输出层;随着训练的进行,当新的结点加入时,其输入层连接权固定。相关是指最大化新神经元输入与网络误差之间的相关性来训练参数。

级联相关网络无需设置网络层数、隐层神经元数目,且训练速度较快,但在训练数据较小时易陷入过拟合。

5.5 Elman网络

Elman网络是最常用的递归神经网路之一。结构与多层前馈网络很相似,但隐层神经元的输入会被反馈回来,与下一时刻输入层神经元提供的信号一起,作为隐层神经元在下一时刻的输入,隐层神经元通常采用Sigmoid**函数,而网络训练通常使用推广的BP算法。

学习笔记--第五章神经网络

5.6 Boltzmann机

神经网络中有一种模型是为网络状态定义一个“能量”,能量最小化时网络达到理想状态,而网络训练就是最小化这个能量函数。Boltzmann机就是一种基于能量的模型。

6 深度学习

典型的深度学习模型就是很深层的神经网络。可以通过增加隐层的方式增加模型复杂度,因为增加隐层数不仅增加了拥有**函数神经元数目,还增加了**函数嵌套的层数。

无监督逐层训练是多隐层网络训练的有效手段,其基本思想是每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,而本层隐结点的输出作为下一层隐结点的输入,这成为“预训练”;在预训练完成后,再对整个网络进行微调训练。

“预训练+微调”的做法能够节省训练开销,其做法可视为将大量参数分组,对每组先找到局部最优的参数设置,然后再基于局部较优的结果联合起来进行全局寻优。

另一种节省训练开销的策略是“权共享”,即让一组神经元使用相同的连接权,这个策略在卷积神经网络中发挥了重要作用。

通过多层处理,逐渐将初始的“低层”特征表示转化为“高层”特征表示后,用“简单模型”即可完成复杂的分类等学习任务。由此可将深度学习理解为进行“特征学习”或“表示学习”。