zhengzhuaguazi

人工智能之机器学习——第五章 神经网络

五. 神经网络

“神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对世界物体所做出的交互反应”

5.1 神经元模型

神经网络中最基本的成分是“神经元模型”,即定义中的简单单元。

“M-P神经元模型”:神经元接收到来自n个其他神经元传递过来的信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”处理以产生神经元的输出。

理想的“激活函数”是阶跃函数,它将输入值映射为输出值“0”或“1”,“1”对应神经元兴奋,“0”对应神经元抑制。然而,阶跃函数具有不连续性、不光滑等不太好的性质,因此实际常用Sigmoid函数作为激活函数,它把可能在较大范围内变化的输入值挤压到(0,1)输出值范围内。

把许多个这样的神经元按一定的层次结构连接起来,就得到了神经网络。神经网络实际上是一个包含了许多参数的数学模型,这个ω模型是若干个函数相互嵌套而成,有效的神经网络学习算法大多以数学证明为支撑。

5.2 感知机与多层网络

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

感知机能容易地实现与、或、非运算。对,假定f是感知机的阶跃函数,有:

  • “与”(x1Λx2):令ω12=1,θ=2,则y=f(1*x1+1*x2-2),仅在x1=x2=1时,y=1;
  • “或”(x1νx2):令ω12=1,θ=0.5,则y=f(1*x1+1*x2-0.5),仅在x1=1或x2=1时,y=1;
  • “非”(¬x1):令ω1=-0.6,ω2=0,θ=-0.5,则y=f(-0.6*x1+0*x2+0.5),当x1=1时,y=0;当x1=0时,y=1。

更一般地,给定训练数据集,权重ωi(i=1,2,...,n)以及阈值θ可通过学习得到。阈值θ可看作一个固定输入为-1.0的“哑结点”所对应的连接权重ωn+1,这样,权重和阈值的学习就可统一为权重的学习。

感知机学习规则:对训练样例(x,y),若当前感知机的输出为,则感知机权重将做如下调整:

其中称为学习率。从上式可以看出,若感知机对训练样例(x,y)预测正确,即,即感知机不发生变化,否则将根据错误的程度进行权重调整。

然而,感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力非常有限。事实上,上述与、或、非问题都是线性可分问题。而要解决非线性可分问题,需要考虑使用多层功能神经元。输出层与输入层之间的神经元,被称为隐层或隐含层,隐含层和输出层神经元都是拥有激活函数的功能神经元。

更一般的,常见的神经网络是层级结构,每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络结构通常称为“多层前馈神经网络”,其中输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出;换言之,输入层神经元仅是接受输入,不进行函数处理,隐层与输出层包含功能神经元。神经网络的学习过程,就是根据训练数据来调整神经元之间的“连接权”(即神经元连接的权重)以及每个功能神经元的阈值;换言之,神经网络“学”到的东西,蕴含在连接权与阈值中。

5.3 误差逆传播算法(反向传播算法)

误差逆传播算法(BP算法)是较强大的多层神经网络学习算法,是迄今最成功的神经网络学习算法。现实任务中使用神经网络时,大多是在使用BP算法进行训练。而且,BP算法不仅可用于多层前馈神经网络,还可用于其他类型的神经网络。但通常说“BP”网络时,一般是指用BP算法训练的多层前馈神经网络。

          

上图给出了一个拥有d个输入神经元、L个输出神经元、q个隐层神经元的多层前馈网络结构,其中输出层第j个神经元的阈值用θj表示,隐层第h个神经元的阈值用γh表示。输入层第i个神经元与隐层第h个神经元之间的连接权为vih,隐层第h个神经元与输出层第j个神经元之间的连接权为whj。记隐层第h个神经元接收到的输入为,输出层第j个神经元接收到的输入为,其中bh为隐层第h个神经元的输出。假设隐层和输出神经元都使用Sigmoid函数,即对率函数。

对训练例(xk,yk),假定神经网络的输出为,即

则网络在(xk,yk)上的均方误差为

上图的网络中有(d+L+1)q+L个参数需确定:输入层到隐层的d*q个权值、隐层到输出层的q*L个权值、q个隐层神经元的阈值、L个输出层神经元的阈值。BP是一个迭代学习算法,在迭代的每一轮中采用广义的感知机学习规则对参数进行更新估计,即与5.2类似。任意参数v的更新估计式为:v=v+Δv。


 

输入:训练集

            学习率η.

过程:

1:在(0,1)范围内随机初始化网络中所有连接权和阈值

2:repeat

3:  for all  do

4:    根据当前参数和式计算当前样本的输出

5:    根据式计算输出层神经元的梯度项gj

6:    根据式计算隐层神经元的梯度项eh

7:    根据式更新连接权whj,vih和阈值θj,γh

8:  end for

9:until 达到停止条件

输出:连接权与阈值确定的多层前馈神经网络


 

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

需注意的是,BP算法的目标是要最小化训练集D上的累积误差。但上述的“标准BP算法”每次仅针对一个训练样例更新连接权和阈值,即上述的算法的更新规则是基于单个的Ek推导而得。如果类似地推导出基于误差最小化的更新规则,就得到了累积误差逆传播算法(累积BP算法)。累积BP算法与标准BP算法都很常用。一般来说,标准BP算法每次更新只针对单个样例,参数更新得非常频繁,而且对不同样例进行更新的效果可能出现“抵消”现象。因此,为了达到同样的累积误差极小点,标准BP算法往往需要进行更多次数的迭代。累积BP算法直接针对累积误差最小化,它在读取整个训练集D一遍(一轮学习)后才对参数进行更新,其参数更新的频率低得多。但在很多任务中,累积误差下降到一定程度之后,进一步下降会非常缓慢,这时标准BP往往会更快获得较好的解,尤其是在训练集D非常大时更明显。

5.4 全剧最小和局部极小

基于梯度的搜索是使用最为广泛的参数寻优方法,在此类方法中,我们从某些初始值出发,迭代寻找最优参数值。每次迭代中,先计算误差函数在当前点的梯度,然后根据梯度确定搜索方向。例如,由于负梯度方向是函数值下降最快的方向,因此梯度下降法就是沿着负梯度方向搜索最优解。若误差函数在当前点的梯度为零,则已达到局部极小,更新量将为零,这意味着参数的迭代更新将在此停止。显然,如果误差函数仅有一个局部极小,那么此时找到的局部极小就是全局最小;然而,如果误差函数具有多个局部最小,则不能保证找到的解就是全局最小。对后一种情形,称参数寻优陷入了局部极小。在现实任务中,人们采用以下策略来试图“跳出”局部极小,从而进一步接近全局最小:

  • 以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数。这相当于从多个不同的初始点开始搜索,这样就可能陷入不同的局部极小,从中进行选择有可能获得更接近全局最小的结果。
  • 使用“模拟退火算法”,模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助于“跳出”局部极小。在每步迭代过程中,接受“次优解”的概率要随着时间的推移而逐渐降低,从而保证算法稳定。
  • 使用随机梯度下降,与标准梯度下降法精确计算梯度不同,随机梯度下降法在计算梯度时加入了随机因素。于是,即便陷入局部极小点,它计算出的梯度仍可能不为零,这样就有机会跳出局部极小继续搜索。

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

5.5 其他常见神经网络

5.5.1 RBF网络

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

假定输入为d维向量x,输出为实值,则RBF网络可表示为

其中q为隐层神经元个数,ci和wi分别是第i个隐层神经元所对应的中心和权重,ρ(x,ci)是径向基函数,这是某种沿径向对称的标量函数,通常定义为样本x到数据中心ci之间欧氏距离的单调函数。常用的高斯径向基函数形如:

通常采用两步过程来训练RBF网络:第一步,确定神经元中心ci,常用的方式包括随机采样、聚类等;第二步:利用BP算法等来确定参数wi和βi。

5.5.2 ART网络

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

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

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

显然,识别阈值对ART网络的性能有重要影响。当识别阈值较高时,输入样本将会被分为比较多、比较精细的模式类,而如果识别阈值较低,则会产生比较少、比较粗略的模式类。

5.5.3 SOM网络

5.5.4 级联相关网络

5.5.5 Elman网络

5.5.6 Boltzmann机

5.6 深度学习

分类:

技术点:

相关文章: