第五章 神经网络

5.1神经元模型

神经网络中最基本的成分是神经元( neuron)模型,即上述定义中的“简单单元”.在生物神经网络中,每个神经元与其他神经元相连,当它“兴奋”时就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个“阈值”( threshold),那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质。

理想中的激活函数是图5.2(a)所示的阶跃函数,它将输入值映射为輪出值“0”或“1”,显然“1”对应于神经元兴奋,“0”对应于神经元抑制,然而,阶跃函数具有不连续、不光滑等不太好的性质,因此实际常用Sgmd函数作为激活函数。

5.2感知机与多层网络

感知机( Perceptron)由两层神经元组成,如图5.3所示,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”( threshold logic unit)。

需注意的是,感知机只有输出层神经元进行激活函数处理,即只用有一层功能神经元,其学习能力十分有限。

更一般的,常见的神经网络是形如图5.6所示的层级结构,每层神经元与下层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接.这样的神经网络结构通常称为“多层前馈神经网络”( multi- layer feedforward neuralnetworks),其中输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出;换言之,输入层神经元仅是接受输入,不进行函数处理,隐层与输出层包含功能神经元。

5.3误差逆算传播法

误差逆传播(errorBackpropagation,简称BP)算法就是其中最杰出的代表,它是迄今最成功的神经网络学习算法.现实任务中使用神经网络时,大多是在使用BP算法进行训练.值得指出的是,BP算法不仅可用于多层前馈神经网络,还可用于其他类型的神经网络,例如训练递归神经网络[ Pineda,1987.但通常说“BP网络”时一般是指用BP算法训练的多层前馈神经网络.

图5.7的网络中有(d+1+1)q+l个参数需确定:输入层到隐层的dxq个权值、隐层到输出层的q×l个权值、q个隐层神经元的阈值、l个输出层神经元阈值。

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

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

但我们上面介绍的“标准BP算法”每次仅针对一个训练样例更新连接权和阈值,也就是说,图5.8中算法的更新规则是基于单个的Ek推导而得.如果类似地推导出基于累积误差最小化的更新规则,就得到了累积误差逆传播(accumulated error Backpropagation)算法。

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

5.4全局最小与局部极小

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

显然,如果误差函数仅有一个局部极小,那么此时找到的局部极小就是全局最小;然而,如果误差函数具有多个局部最小,则不能保证找到的解是全局最小。对最后一种情形,我们称参数寻优陷入了局部极小,这显然不是我们所希望的。

在现实任务中,人们常采用以下策略来试图“跳出”局部极小,从而进步接近全局最小:

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

使用“模拟退火”( simulated annealing)技术。模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助于“跳出”局部极小.在每步迭代过程中,接受“次优解”的概率要随着时间的推移而逐渐降低,从而保证算法稳定。

使用随机梯度下降.与标准梯度下降法精确计算梯度不同,随机梯度下降法在计算梯度时加入了随机因素.于是,即便陷入局部极小点,它计算出的梯度仍可能不为零,这样就有机会跳出局部极小继续搜索。

此外,遗传算法( genetic algorithms) 也常用来训练神经网络以更好地逼近全局最小.需注意的是,上述用于跳出局部极小的技术大多是启发式,理论上尚缺乏保障。

5.5其他常见神经网络

5.5.1RBF网络 

RBF(径向基函数)网络是一种单隐层前馈神经网络,使用径向基函数作为隐层神经元激活函数,而输出层是对隐层神经元输出的线性组合。假设输入为d维向量x,输出为实值,则RBF网络定义为

5.5.2ART网络

竞争性学习是神经网络中一种常用的无监督学习策略,网络的输出神经元相互竞争,每一时刻仅有一个竞争胜利的神经元被激活,其他神经元被抑制,称为“胜者通吃”原则。

ART(自适应谐振理论)网络是竞争性学习的重要代表,该网络由比较层、识别层、识别阈值和重置模块构成。比较层负责接收输入样本,传递给识别层神经元。识别层每个神经元对应一个模式类,识别层神经元之间相互竞争产生获胜神经元。

5.5.3SOM网络

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

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

训练过程:每个输出层神经元计算接收的训练样本与自身携带的权向量的距离。距离最近的神经元竞争获胜,称最佳匹配单元。最佳匹配单元与邻近神经元的权向量会被调整使得权向量与当前输入样本距离减小,过程不断迭代直至收敛

5.5.4级联相关网络

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

级联是指建立层次连接的层级结构,刚开始训练时网络只有输入层和输出层,是最小拓扑结构,随着训练的进行,加入新的隐层神经元,其输入端连接权值是固定的。相关是指通过最大化新神经元的输出与网络误差之间的相关性来训练相关的参数

5.5.5 Elman网络

递归神经网络允许网络中出现环形结构,从而使神经元的输出反馈可作为输入信号。Elman网络是常用的递归神经网络。

如图5.14,隐层神经元的输出被反馈回来,与下一时刻输入层神经元提供的信号一起作为隐层神经元在下一刻的输入。隐层神经元常使用Sigmoid激活函数

5.5.6 Boltzmann机

如图5.14(a)所示,Boltzmann机的神经元分为显层和隐层,显层用于数据的输入与输出,隐层是数据的内在表达。其神经元是布尔型的,状态1表示激活,0表示抑制。受限Boltzmann机仅保留显层和隐层的连接,将Boltzmann机结构由完全图简化为二部图

5.6深度学习

典型的深度学习模型就是很深层的神经网络.显然,对神经网络模型,提高容量的一个简单办法是增加隐层的数目.隐层多了,相应的神经元连接权、阈值等参数就会更多。

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

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

我们可以从另一个角度来理解深度学习.无论是DBN还是CNN,其多隐层堆叠、每层对上一层的输出进行处理的机制,可看作是在对输入信号进行逐层加工,从而把初始的、与输出目标之间联系不太密切的输入表示,转化成与输出目标联系更密切的表示,使得原来仅基于最后一层输出映射难以完成的任务成为可能.换言之,通过多层处理,逐渐将初始的“低层”特征表示转化为“高层”特征表示后,用“简单模型”即可完成复杂的分类等学习任务.由此可将深度学习理解为进行“特征学习”( feature learning)或“表示学习”( representation learning)。

你可能感兴趣的:(第五章 神经网络)