机器学习 第五章
目录
一、神经元模型
本书中对神经网络的定义为神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。机器学习中的神经网络指的是神经网络学习,即机器学习与神经网络两个学科领域的交叉部分。
神经网络中最基本的成分是神经元模型。在生物神经网络中每个神经元与其他神经元相连,当它兴奋时, 就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个阔值,那么它就会被激活兴奋起来,向其他神经元发送化学物质。
一直沿用至今的“M-P神经元模型”正是对这一结构进行了抽象:
理想的激活函数是阶跃函数,其将输入值映射为输出值0或1,但是因为其不连续、不光滑的性质,实际常用sigmoid函数作为激活函数,有时也将sigmoid函数叫做挤压函数。阶跃函数和sigmoid函数如下所示:
把许多神经元连接在一起就得到了神经网络。
二、感知机和多层网络
感知机由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,也叫阈值逻辑单元。给定训练数据集,权重以及阈值可通过学习得到,阈值可看作一个固定输入为-1.0的哑结点所对应的连接权重,这样权重和阈值的学习可统一为权重的学习。对于训练样例(x,y),若当前感知机的输出为,则权重的调整为:
其中为学习率。感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力有限,只能处理线性可分的问题。对于这类问题,感知机的学习过程一定会收敛,因此总是可以求出适当的权值。要处理非线性可分的问题,需要考虑使用多层功能神经元,如下图的能解决异或问题的感知机的结构,其输出层和输入层之间有一层被称为隐层或隐含层的神经元。隐含层和输出层神经元都是拥有激活函数的功能神经元。
常见的神经网络一般是如下的层级结构,每层神经元与下层的神经元全互连,不存在同层连接也不曾在跨层连接。其被称为多层前馈神经网络。
神经网络的学习过程就是根据训练数据来调整神经元之间的连接权以及每个功能神经元的阈值。换句话说:神经网络所学习到的东西都蕴含在网络的连接权与阈值中。
三、误差逆传播算法
想要训练多层网络,简单感知机的学习规则并不够用,需要更强的学习算法。误差逆传播(BP)算法就是其中的代表。BP算法不仅可用于多层前馈神经网络,还可用于其他类型的神经网络,例如训练递归神经网络 。 但通常说 BP网络时,一般是指用 BP 算法训练的多层前馈神经网络。
BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整。学习率控制着算法每一轮迭代中的更新步长,太长会导致震荡,太短会导致收敛速度过慢。其基本流程如下图所示:
BP算法的目标是最小化训练集D上的累积误差,基于累积误差最小化的更新规则,就可以得到累积误差逆传播算法,即每次读取全部的数据集一遍,进行一轮学习,从而基于当前的累积误差进行权值调整,其参数更新的频率相比标准BP算法低了很多。在很多任务中,尤其是在数据量很大的时候,往往标准BP算法会获得较好的结果。
BP神经网络经常会遭遇过拟合,可以使用如下两种策略来缓解其问题:
- 早停:将数据分为训练集与测试集,训练集用于学习,测试集用于评估性能,若在训练过程中,训练集的累积误差降低,而测试集的累积误差升高,则停止训练。
- 引入正则化:基本思想是在累积误差函数中增加一个用于描述网络复杂度的部分,例如所有权值与阈值的平方和,其中λ∈(0,1)用于对累积经验误差与网络复杂度这两项进行折中,常通过交叉验证法来估计。
四、全局最小和局部极小
若用E表示神经网络在训练集上的误差,则它是关于连接权w和阈值θ的函数。神经网络的训练过程可以看作是一个参数寻优过程,即在参数空间中。寻找一组最优解使得E最小。其中有局部极小和全局最小两种最优。
局部极小点:参数空间中的某个点,其邻域点的误差函数值均不小于该点的误差函数值。
全局最小点:参数空间中的某个点,所有其他点的误差函数值均不小于该点的误差函数值。
要成为局部极小点,只要满足该点在参数空间中的梯度为零。局部极小可以有多个,而全局最小只有一个。全局最小一定是局部极小,但局部最小却不一定是全局最小。
基于梯度的搜索是使用最广泛的参数寻优方法,梯度下降法的主要思想就是沿着负梯度方向去搜索最优解,负梯度方向是函数值下降最快的方向,若迭代到某处的梯度为0,则表示达到一个局部最小,参数更新停止。因此在现实任务中,通常使用以下策略尽可能地去接近全局最小:
- 以多组不同参数值初始化多个神经网络,按标准方法训练,迭代停止后,取其中误差最小的解作为最终参数。
- 使用模拟退火技术
- 使用随机梯度下降,即在计算梯度时加入了随机因素,使得在局部最小时,计算的梯度仍可能不为0,从而迭代可以继续进行。
其次还可以使用遗传算法来训练神经网络以更好的逼近全局最小。
五、其他
1.RBF(径向基函数)神经网络
RBF(径向基函数)神经网络是一种单隐层前馈神经网络,使用径向基函数作为隐层神经元激活函数,输出层是对隐层神经元输出的线性组合。其表示为:
通常采用两个步骤来训练RBF神经网络:(1)确定神经元中心,常用的方法为随机采样,聚类等。(2)利用BP算法确定参数和
2.ART(自适应谐振理论)网络
竞争性学习是神经网络中一种常用的无监督学习策略,在使用时,网络的输出神经元相互竞争,每一时刻只有一个竞争获胜的神经元被激活,其他神经元状态被抑制,也叫做胜者通吃原则。
ART(自适应谐振理论)网络是竞争性学习的重要代表,由比较层、识别层、识别阈值和重置模块组成。比较层负责接 收输入样本,并将其传递给识别层神经元。识别层每个神经元对应一个模式类,神经元数目可以在训练过程中动态增长以增加新的模式类。
识别阙值对ART网络的性能有重要影响。当识别阈值较高时,输入样本将会被分成比较多、比较精细的模式类,而如果识别阈值较低,则会产生比较少、比较粗略的模式类。ART缓解了竞争型学习中的可塑性-稳定性窘境,其具有可进行增量学习或在线学习的优点。
3.SOM(自组织映射)网络
SOM(自组织映射)网络是一种竞争学习型的无监督神经网络,能将高维输入数据映射到低维空间,同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。
SOM网络中的输出层神经元以矩阵方式排列在二维空间中,每个神经元都拥有一个权向量,网络在接收输入向量后,将会确定输出层获胜神经元,它决定了该输入向量在低维空间中的位置。SOM 的训练目标就是为每个输出层神经元找到合适的权向量,以达到保持拓扑结构的目的。
4.级联相关网络
结构自适网络是将网络结构也当作学习的目标之一。并希望能在训练过程中找到最符合数据特点 的网络结构。级联相关网络就是结构自适应网络的代表,其训练过程如下:
主要有级联和相关两个成分。级联是指建立层次连接的层级结构;相关是指通过最大化新神经元的输出与网络误差之间的相关性来训练相关的参数。
5.Elman网络
递归神经网络允许网络中出现环状结构,从而可让一些神经元的输出反馈回来作为输入信号。Elman网络时常见的递归神经网络之一,其结构为:
6.Boltzmann机
神经网络中有一类模型是为网络状态定义一个能量,能量最小化时网络达到理想状态,网络的训练过程就是在最小化这个能量函数。Boltzmann机就是一种基于能量的模型,常见结构如下所示:
其神经元分为显层和隐层两层,显层用于表示数据的输入和输出,隐层被理解为数据的内在表达。受限Boltzmann机仅保留了Boltzmann机结构中显层和隐层之间的连接,将其简化为二部图。其常用对比散度(CD)算法来进行训练。
六、深度学习
参数越多的模型复杂度越高、容量越大,可以完成更复杂的学习任务;但是其训练效率也会下降,易陷入过拟合。深度学习正是其代表。
提高容量最简单的方法是增加隐层的数目;其次也可以增加隐层神经元的数目。前者更加有效,因为增加隐层数不仅增加了拥有激活函数的神经元数目,还增加了激活函数嵌套的层数。对于多隐层神经网络,经典算法如标准BP算法往往会在误差逆传播时发散,无法收敛达到稳定状态。
对于多隐层网络的训练,有如下两种方法:
- 无监督逐层训练:每次训练一层隐节点,把上一层隐节点的输出当作输入来训练,本层隐结点训练好后,输出再作为下一层的输入来训练,这称为预训练。全部预训练完成后,再对整个网络进行微调训练。一个典型例子就是深度信念网络(DBN)。这种做法其实可以视为把大量的参数进行分组,先找出每组较好的设置,再基于这些局部最优的结果来训练全局最优。
- 权共享:同一层神经元使用完全相同的连接权,典型的例子是卷积神经网络(CNN)。这样做可以大大减少需要训练的参数数目。
下面为一个使用CNN进行手写数字识别的过程图。
无论是DBN还是CNN,都是通过多个隐层来把原本与输出目标联系不大的初始输入转化为与输出目标更加密切的表示,使原来只通过单层映射难以完成的任务变为可能。即通过多层处理,逐渐将初始的“低层”特征表示转化为“高层”特征表示,从而使得最后可以用简单的模型来完成复杂的学习任务。
因此可将其理解为进行特征学习或表示学习。
原文地址:https://blog.csdn.net/zxsdss/article/details/140405182
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!