周志华《机器学习》笔记:第5章 神经网络

时间:2024-03-20 19:54:16

1、神经元网络模型
  神经网络中最基本的成分是神经元模型,即“简单单元”。“M-P神经元模型”,神经元接收到来自n 个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收的总输入值将与神经元的阈值进行比较,然后通过“**函数”处理以产生神经元的输出。
周志华《机器学习》笔记:第5章 神经网络
  理想中的**函数是阶跃函数,它将输入值映射为输出值“0”或“1”,显然“1”对应神经元兴奋,“0”对应于神经元抑制。然而,阶跃函数具有不连续、不光滑等不太好的性质,因此实际常用Sigmoid函数作为**函数。它把可能在较大范围内变化的输入值挤压到(0,1)输出值范围内,因此有时也称为“挤压函数”。
周志华《机器学习》笔记:第5章 神经网络
  将一个神经网络视为包含了很多参数的数学模型,这个模型是若干个函数,例如yj=f(iωixiθj) 相互(嵌套)代入而得。
2、感知机与多层网络
  感知机由两层神经元组成,输入层接受外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”。感知机能容易地实现逻辑与、或、非运算。
  更一般地,给定训练数据集,权重ωi(i=1,2,...,n) 以及阈值θ 可通过学习得到。阈值θ 可看作一个固定输入为-1.0的“哑结点”所对应的连接权重ωn+1 ,这样,权重和阈值的学习就可统一为权重的学习。
  感知机只有输出层神经元进行**函数处理,即只拥有一层功能神经元,其学习能力非常有限。事实上,上述与、或、非问题都是线性可分问题。可以证明,若两类模式是线性可分的,即存在一个线性超平面能将它们分开,则感知机的学习过程一定会收敛而求得适当的权向量;否则感知机学习过程会发生振荡,ω 难以稳定下来,不能求得合适解。
周志华《机器学习》笔记:第5章 神经网络
  要解决非线性可分问题,需考虑使用多层功能神经元。输出层与输入层之间的一层神经元,被称为隐层或隐含层,隐含层和输出层神经元都是拥有**函数的功能神经元。
  常见的神经网络,每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络结构通常称为“多层前馈神经网络”,其中输入层神经网络接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出。神经网络的学习过程,就是根据训练数据来调整神经元之间的“连接权”以及每个功能神经元的阈值。
周志华《机器学习》笔记:第5章 神经网络
3、误差逆传播算法
  误差逆传播(BP)算法是训练多层网络学习算法最杰出的代表。BP算法不仅可用于多层前馈神经网络,还可用于其他类型的神经网络。
  给定训练集,输入示例由d 个属性描述,输出l 维实值向量。图5.7给出了一个拥有d 个输入神经元、l 个输出神经元、q 个隐层神经元的多层前馈网络结构。
周志华《机器学习》笔记:第5章 神经网络
  BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整。学习率η=(0,1) 控制着算法每一轮迭代中的更新步长,若太大则容易震荡,太小则收敛速度又会过慢。
  对于每个训练样例,BP算法执行以下操作:先将输入示例提供给输入层神经元,然后逐层将信号前传,知道产生输出层的结果;然后计算输出层的误差,再将误差逆向传播至隐层神经元,最后根据隐层神经元的误差来对连接权和阈值进行调整。该迭代过程循环进行,直到达到某些停止条件为止,例如训练误差已达到一个很小的值。
周志华《机器学习》笔记:第5章 神经网络
  但上面介绍的“标准BP算法”每次仅针对一个训练样例更新连接权和阈值,也就是说,图5.8中算法的更新规则是基于单个的Ek 推导而成。如果类似地推导出基于累计误差最小化的更新规则,就得到了累积误差逆传播算法。一般来说,标准BP算法每次更新只针对单个样例,参数更新得非常频繁,而且对不同样例进行更新的效果可能出现“抵消”现象。因此,为了达到同样的累积误差极小点,标准BP算法往往需进行更多次数的迭代。累积BP算法直接针对累积误差最小化,它在读取整个训练集D一遍后才对参数进行更新,其参数更新的频率低得多。但在很多任务中,累计误差下降到一定程度之后,进一步下降会非常缓慢,这时标准BP往往会更快获得更好的解,尤其是在训练集D非常大时更明显。
  有两种策略BP常用来缓解BP网络的过拟合。第一种策略是“早停”:将数据分为训练集和验证集,训练集用来计算梯度、更新连接权和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。第二种策略是“正则化”,其基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权与阈值的平方和。
4、全局最小与局部极小
  局部最小解是参数空间中的某个点,某领域点的误差函数值均不小于该点的函数值;全局最小值则是指参数空间中所有点的误差函数均不小于该点的误差函数值。
  基于梯度的搜索是使用最为广泛的参数寻优方法。在此类方法中,我们从某些初始解出发,迭代寻找最优参数值。每次迭代中,我们先计算误差函数在当前点的梯度,然后根据梯度确定搜索方向。若误差函数在当前点的梯度为零,则已达到局部极小,更新量将为零,这意味着参数的迭代更新将在此停止。
周志华《机器学习》笔记:第5章 神经网络
  可采用以下策略来试图“跳出”局部极小,从而进一步接近全剧最小:

  • 以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数。
  • 使用“模拟退火”技术。模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助于“跳出”局部极小。
  • 使用随机梯度下降,在计算梯度时加入了随机因素。
    此外,遗传算法也常用来训练神经网络以更好地逼近全局最小。

5、其他常见神经网络
5.1 RBF网络
  RBF网络是一种单隐层前馈神经网络,它使用径向基函数作为隐层神经元**函数,而输出层则是对隐层神经元输出的线性组合。径向基函数,是某种沿径向对称的标量函数,通常定义为样本到数据中心之间欧氏距离的单调函数。具有足够多隐层神经元的RBF网络能以任意精度逼近任意连续函数。
5.2 ART网络
  竞争型学习是神经网络中一种常用的无监督学习策略,在使用该策略时,网络的输出网络元相互竞争,每个时刻仅有一个竞争获取的神经元被**,其他神经元的状态被抑制。这种机制亦称“胜者通吃”原则。
  ART网络是竞争型学习的重要代表。该网络由比较层、识别层、识别阈值和重置模块构成。其中,比较层负责接收输入样本,并将其传递给识别层神经元。识别层每个神经元对应一个模式类,神经元数目可在训练过程中动态增长以增加新的模式类。
  在接收到比较层的输入信号后,识别层神经元之间相互竞争以产生获胜神经元。竞争的最简单方式是,计算输入向量与每个识别层神经元所对应的模式类的代表向量之间的距离,距离最小者胜。获胜神经元将向其他识别层神经元发送信号,抑制其**。若输入向量与获胜神经元所对应的代表向量之间的相似度大于识别阈值,则当前输入样本将被归为该代表向量所属类别;若相似度不大于识别阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设置为当前输入向量。
5.3 SOM网络
  SOM(自组织映射)网络是一种竞争学习型的无监督神经网络,它能将高维输入数据映射到低维空间,同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层的邻近神经元。
  SOM的训练目标就是为每个输出层神经元找到合适的权向量,以达到保持拓扑结构的目的。SOM的训练过程:在接收到一个训练样本后,每个输出层神经元会计算该样本与自身携带的权向量之间的距离,距离最近的神经元成为竞争获胜者,称为最佳匹配单元。然后,最佳匹配单元及其临近神经元的权向量将被调整,以使得这些权向量与当前输入样本的距离缩小。
5.4 级联相关网络
  结构自适应网络将网络结构也当作学习的目标之一,并希望能在训练过程中找到最符合数据特点的网络结构。级联相关网络是结构自适应网络的重要代表。
  级联相关网络有两个主要成分:“级联”和“相关”。级联是指建立层次连接的层级结构。在开始训练时,网络只有输入层和输出层,处于最小拓扑结构;随着训练的进行,新的隐层神经元逐渐加入,从而创建起层级结构。当新的隐层神经元加入时,其输入端连接权值实冻结固定的。相关是指通过最大化新神经元的输出与网络误差之间的相关性来训练相关的参数。
5.5 Elman网络
  递归神经网络允许网络中出现环形结构,从而可让一些神经元的输出反馈回来作为输入信号。这样的结构与信息反馈过程,使得网络在t时刻的输出状态不仅与t时刻的输入有关,还与t-1时刻的网络状态有关,从而能处理与时间有关的动态变化。Elman网络是最常用的递归网络之一。
5.6 Bolyzmann机
  神经网络中有一类模型是为网络状态定义一个“能量”,能量最小化时网络达到理想状态,而网络的训练就是在最小化这个能量函数。Bolyzmann机就是一种“基于能量的模型”。
6、深度学习
  经典的深度学习模型就是很深层的神经网络。多隐层神经网络难以直接用经典算法进行训练,因为误差在多隐层内逆传播时,往往会“发散”而不能收敛到稳定状态。
  无监督逐层训练是多隐层网络训练的有效手段,其基本思想是每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,而本层隐结点的输出作为下一层隐结点的输入,这称为“预训练”;在预训练全部完成后,再对整个网络进行“微调”训练。
  “预训练+微调”的做法可视为将大量参数分组,对每组先找到局部看来比较好的设置,然后再基于这些局部较优的结果联合起来进行全局寻优。另一种节省训练开销的策略是“权共享”,即让一组神经元使用相同的连接权。这个策略在卷积神经网络(CNN)中发挥了重要作用。
  以CNN进行手写数字识别任务为例所示,网络输入是一个32*32的手写数字图像,输出是其识别结果,CNN复合多个“卷积层”和“采样层”对输入信号进行加工,然后在连接层实现与输出目标之间的映射。每个卷积层都包含多个特征映射,每个特征映射是一个由多个神经元构成的“平面”,通过一种卷积滤波器提取输入的一种特征。采样层亦称为“汇合”层,其作用是基于局部相关性原理进行亚采样,从而在减少数据量的同时保留有用信息。CNN可用BP算法进行训练,但在训练中,无论是卷积层还是采样层,其每一组神经元都是用相同的连接权,从而大幅减少了需要训练的参数数目。
  通过多层处理,逐渐将初始的“低层”特征表示转化为“高层”特征表示后,用“简单模型”即可完成复杂的分类等学习任务。由此可将深度学习理解为进行“特征学习”或“表示学习”。