第5章 神经网络

神经网络的学习过程就是根据训练数据来调整神经元之间的连接权重以及每个功能神经元的阈值。

5.1 神经元模型

神经网络定义:神经网络是由具有适应性的简单单元(神经元)组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。

神经元工作原理:在生物神经网络中,每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个“阈值”,那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质。

根据神经元工作原理抽象化的简单模型——M-P神经元模型(如图5.1):神经元接收来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”处理以产生神经元的输出。

把许多个神经元按一定的层次结构连接起来,就得到了神经元网络。从计算机科学的角度看,可把一个神经元网络视为包含了许多参数的数学模型,这个模型是若干个函数。

理想中的激活函数:是阶跃函数,将输入值映射为输出值“0”(对于神经元抑制)或“1”(对于神经元兴奋),阶跃函数具有不连续、不光滑等性质。

实际常用的激活函数:是Sigmoid函数(挤压函数),把可能在较大范围内变化的输入值挤压到(0,1)输出值范围内。

5.2 感知机

感知机由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”。感知机能容易地实现逻辑与、或、非运算。

权重w和阈值θ可以通过学习得到。

当学习过程中出现误差时,感知器的权重将调整。

η为学习率

感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力十分有限,只能解决线性可分(即存在一个线性超平面能将它们分开)问题(“与”问题、“或”问题、“非”问题),此时感知机的学习过程一定会收敛;否则感知机学习过程将会发生振荡,w难以稳定下来,不能求得合适解(“异或”问题)。

5.3 多层网络

要解决非线性可分问题,需考虑使用多层功能神经元。

输出层与输入层之间的一层神经元,被称为隐层或隐含层,隐含层和输出层神经元都是拥有激活函数的功能神经元。

一般的,常见的神经网络­——多层前馈神经网络,每层神经元下层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。

其中输入层仅接收输入,不进行函数处理,隐层和输入层包含功能神经元,对信号进行加工。

5.4 误差逆传播算法(BP算法)

BP算法可用于多层前馈神经网络,也可用于其他类型的神经网络。

这个网络有(d+l+1)q+l 个参数需要确定。      

BP算法是一个迭代学习算法,在迭代的每一轮学习采用广义的感知机学习规则对参数进行估计:

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

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

BP算法的目标是最小化训练集D上的累积误差

标准BP算法和累积BP算法的区别

"标准BP算法"每次仅针对一个训练样例更新连接权和阈值,即算法的更新规则是基于单个的Ek推导而得,参数更新非常频繁,而且对不同样例进行更新的效果可能出现抵消现象。为了达到累积误差极小点,需进行更多次数的迭代。

“累积BP算法”基于累积误差最小化的更新规则,直接针对累积误差最小化,它在读取整个训练集D一遍后才对参数进行更新,其参数更新的频率低得多。

两种缓解BP网络过拟合的策略:

早停:将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。

正则化:在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权与阈值的平方和,令误差目标函数改变为:

5.5 全局最小与局部最小

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

全局最小解则是指参数空间中所有点的误差函数值均不小于该点的误差函数值。

可能存在多个局部最小值,但是只有一个全局最小值

参数寻优过程是希望找到全局最小

使用最广泛的参数寻优方法:基于梯度的搜索。从某些初始解出发,迭代寻找最优参数值。在每次迭代中,先计算误差函数在当前点的梯度,然后根据梯度确定搜索方向(沿负梯度方向搜索最优解)。

5.6 其他常见神经网络

RBF网络(径向基网络)

分类:单隐层前馈神经网络

激活函数:径向基函数

过程:

ART网络(自适应谐振理论网络)

分类:竞争型学习的无监督网络

胜者通吃原则:使用竞争型学习策略时,网络的输出神经元相互竞争,每一时刻仅有一个竞争获胜的神经元被撤活,其他神经元的状态被抑制。

过程:该网络由比较层、识别层、识别阔值和重置模块构成。其中比较层负责接收输入样本,并将其传递给识别层神经元。识别层每个神经元对应1个模式类,神经元数目可在训练过程中动态增长以增加新的模式类。在接收到比较层的输入信号后,识别层神经元之间相互竞争以产生获胜神经元。获胜神经元将向其他识别层神经元发送信号,抑制其撤活。若输入向量与获胜神经元所对应的代表向量之间的相似度大于识别阈值,则当前输入样本将被归为该代表向量所属类别,同时,网络连接权将会更新,使得以后在接收到相似输入样本时该模式类会计算出更大的相似度,从而使该获胜神经元有更大可能获胜;若相似度不大于识别阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设置为当前输入向量。

SOM网络(自组织映射网络)

分类:竞争学习型的无监督网络

特点:能将高维输入数据映射到低维空间(通常为二维),同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。

训练目标:为每个输出层神经元找到合适的权向量,以达到保持拓扑结构的目的。

过程:在接收到一个训练样本后,个输出层神经局会计算该样本与自身携带的权向量之间的距离,距离最近的神经元成为竞争获胜者,称为最佳匹配单元。然后,最佳匹配单元及其邻近神经元的权向量将被调整,以使得这些权向量与当前输入样本的距离缩小。这个过程不断迭代,直至收敛。

级联相关网络

分类:结构自适应网络(将网络结构也当作学习的目标之一,并希望能在训练过程中找到最符合数据特点的网络结构。

级联:指建立层次连接的层级结构。

相关:指通过最大化新神经元的输出与网络误差之间的相关性来训练相关的参数。

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

Elman网络

分类:递归神经网络(允许出现环状结构,能处理与时间有关的动态变化)

激活函数:Sigmoid函数

特点:它的结构与多层前馈网络很相似,但隐层神经元的输出被反馈回来,与下一时刻输入层神经元提供的信号一起,作为隐层神经元在下一时刻的输入。

Boltzmann机

分类:递归神经网络(基于能量的模型)

特点:神经元都是布尔型的,即只能取0,1两种状态。

过程:将每个训练样本视为一个状态向量,使其出现的概率尽可能大。

5.7   深度学习

无监督逐层训练是多隐层网络训练的有效手段。

其基本思想是:

每次训练一层隐结点,训练时将上一隐层结点的输出作为输入,而本层隐结点的输出作为下一层隐结点的输入,这称为预训练。在预训练全部完成后,再对整个网络进行微调训练。

预训练+微调的做法可视为将大量参数分组,对每组先找到局部看来比较好的设置,然后再基于这些局部较优的结果联合起来进行全局寻优。这样就在利用了模型大量参数所提供的自由度的同时,有效的节省了训练开销。

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容