《西瓜书》笔记05:神经网络

时间:2024-03-19 12:55:59

1. 神经元模型

神经网络/人工神经网络:由具有适应性的简单单元组成的广泛并行互连的网络。

神经网络学习:机器学习和神经网络两个学科交叉的部分。

Neural Networks中的基本单元:神经元。

从计算机科学的角度,NN就是一个包含了大量参数的数学模型,该模型由若干个函数相互代入而成。

2. 感知机与多层网络

感知机,实际由两层神经元组成。输入层和输出层。

更一般的,神经网络是形如下方的层级结构,每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。称为“多层前馈神经网络”(Multi-layer feedforward NN)。

《西瓜书》笔记05:神经网络

“前馈”并不是说网络中信号不能向后传,而是说网络拓扑结构上不存在环或者回路。

神经网络学到的东西,蕴含在权重中。

3. 误差逆传播/反向传播算法

Error BackPropagation,BP,误差逆传播/反向传播。

BP算法基于梯度下降法,以目标的负梯度对参数调整。

链式法则:前向计算时,值一层层传递;反向计算梯度时,梯度一层层回流。

标准BP算法,每次仅针对一个样例更新权重,参数更新非常频繁,不同样例更新效果可能会出现抵消的效果。

累计BP算法,针对累计误差最小化,读取整个训练集一遍后才对参数更新。更新频率较低。很多任务中,累计误差下降到一定程度则不再动,这时标准BP往往更快获得最优解。

标准BP和累积BP的区别:类似于随机梯度下降(SGD)和标准梯度下降的区别。

Hornik,1989证明:只需一个包含足够多神经元的隐层,多层前馈NN就能以任意精度逼近任意复杂的连续函数。

由于BP强大的表达能力,BP经常过拟合。两种策略:

  • 早停:数据集分为训练集和验证集。若训练误差降低而验证集误差升高,停止训练。
  • 正则化:在误差目标函数中增加一个描述网络复杂度的部分,如权重的平方和。

增加正则项,训练过程比较偏好比较小的连接权重,使得网络输出更加“光滑”,对过拟合有所缓解。如下图M=9,非常拟合训练集,但泛化能力没有M=3好,M=3更平滑,“认的不真”,所以有容乃大,乃泛化。

《西瓜书》笔记05:神经网络

4. 全局最小和局部极小

NN的训练过程:在参数空间中寻找一组最优参数,使得E最小。

《西瓜书》笔记05:神经网络

参数空间中梯度为0的点,是我们关注的。基于梯度的搜索,是最为广泛的参数寻优方法。每次迭代,先计算损失函数在当前点的梯度,根据负梯度方向是下降最快的方向,沿着此方向搜索最优解。

有时陷入了局部极小值,如何跳出?

  • 用多组不同参数值来初始化多个NN,按标准方法训练后,取误差最小的值为最终参数。此相当于从多个点开始搜索,派出几路人马,更可能找到全局最小的。
  • 使用模拟退火(simulated annealing)。该方法在每一步都以一定的概率,接受比当前解更差的结果,有助于跳出局部极小。每步迭代中,接受“次优解”的概率随着时间推移而逐渐降低(退火),保证算法稳定。
  • 随机梯度下降。与标准GD精确计算梯度不同,SGD计算时加入了随机因素,有助于跳出局部极小。

注:上述算法均是启发式,可能也会跳出全局最小。

5. 其他常见神经网络

5.1 RBF网络(径向基函数网络)

RBF,Radial basis function,径向基函数。某种沿径向对称的标量函数。通常定义为样本x到数据中心的欧式距离的单调函数。如高斯径向基函数。

《西瓜书》笔记05:神经网络

RBF网络,单隐层前馈NN,使用径向基函数作为隐层神经元的**函数,输出层是隐层神经元输出的线性组合。

《西瓜书》笔记05:神经网络

q个神经元,ci是第i个神经元对应的中心。p为径向基函数。学习分两步:一是确定神经元中心,可用聚类等;二是利用BP算法确定参数。

5.2 ART网络

竞争型学习,是NN中一种无监督学习策略。使用该策略时,网络的输出神经元相互竞争,每一时刻仅有一个竞争获胜的神经元被**。其他神经元的状态被抑制,即“胜者通吃”。

ART(adaptive resonance theory,自适应谐振)网络,是竞争型学习的代表。

该网络组成:

  • 比较层:负责接收输入样本,将其传递给识别层
  • 识别层:每个神经元对应一个模式类,训练中可动态增加神经元数目来增加新的模式类。(即增量学习/在线学习)
  • 识别阈值和重置模块

接收到比较层的输入信号后,识别层神经元相互竞争。可计算输入向量与每个识别层神经元对应的模式类的代表向量的距离,距离最小者胜出。获胜神经元向其他发送信号,抑制其**。

若输入向量与获胜神经元的代表向量的相似度大于识别阈值,则当前输入样本被划归为该代表向量所属类别。网络连接权同时更新,使得后续接收到相似样本时该模式类可计算出更大的相似度,有更大获胜可能。

若相似度不大于识别阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设置为当前向量。

那么,识别阈值较高,输入样本将会被倾向于较多类,阈值低则反之。

ART较好的缓解了竞争型学习中的“可塑性-稳定性窘境”:可塑性是说网络要有学习新知识的能力,稳定性是说网络学习新知识时要保持对旧知识的记忆。则ART的优点就是:可增量学习/在线学习。

增量学习是说学得模型后,再接收到新样本后,仅需根据新样例对模型更新,不必重新训练整个模型,先前学得的不会被冲掉;
在线学习说的是美获得一个新样本进行一次更新。在线学习是增量学习的特例,增量学习可看作是批量模式的在线学习。

5.3 SOM网络

self-organizating map,自组织映射网络

竞争学习型的无监督神经网络。将高维输入数据映射到低维空间(通常为2维),同时需要保持输入数据在高维空间的拓扑结构,将高维空间中相似的样本点映射到网络输出层的邻近神经元。

《西瓜书》笔记05:神经网络

输出层的每个神经元有一个权向量,网络接收输入层向量后,将会确定输出层获胜神经元,它决定了该输入在低维空间的位置。SOM训练目标是为每个输出层神经元找到合适权向量,以达到保持拓扑结构的目的。

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

5.4 级联相关网络

一般的NN假设网络结构是固定的,学习的过程是确定参数的过程。

而结构自适应网络,将网络结构也作为学习目标。级联相关网络(Cascade-correlation)是其代表。

ART网络用于隐层神经元数目可增长,也是一种结构自适应型网络。

关键词:

  • 级联:建立层次连接的层级结构,开始网络只有输入输出层。训练时,随着新的隐层神经元加入,创建起层级结构。
  • 相关:加入新的隐层神经元,其输入端连接权值是冻结固定的,相关是通过最大化新神经元的输出与网络输出之间的相关性而训练参数。

《西瓜书》笔记05:神经网络

与一般相比,无需设置网络层数等,训练速度较快,但是数据较小时容易过拟合。

插:动态增加分支(决策树),动态增加隐结点(级联网络),这种都容易过拟合。因为不仅其参数,包括其结构都在适应训练集,在这个意义上,更容易过拟合。

5.5 递归神经网络

recurrent NN,recursive NN均对。

与前馈NN不同,递归神经网络允许出现环形结构,可让一些神经元的输出反馈回来作为输入。使得网络在t时刻的输出不仅依赖于t时刻输入,并且依赖于t-1时刻的网络状态。从而能处理与时间有关的动态变化。

可以叫循环(不断反馈),也可叫递归(t时刻依赖于t-1时刻)。

Elman网络是最常用的递归之一。结构如下图:

《西瓜书》笔记05:神经网络

5.6 玻尔茨曼机

神经网络中有一类模型:为网络状态定义一个能量。能量最小化时达到理想状态。而网络的训练就是在最小化这个能量函数。

玻尔茨曼机,就是这样一种基于能量的模型。常见结构如下:

《西瓜书》笔记05:神经网络

神经元都是布尔型的,非0即1。0状态表示抑制,1状态表示**。

《西瓜书》笔记05:神经网络

若网络中的神经元以任意不依赖于输入值的顺序进行更新,则网络最终达到玻尔茨曼分布/平衡态/平稳分布:此时状态向量出现的概率,仅由其能量与所有可能状态向量的能量确定。

玻尔茨曼机的训练过程:将每个训练样本视为一个状态向量,使其出现的概率尽可能大。标准机是一个全连接图,复杂度较高。常用受限的玻尔茨曼机(Restricted BM, RBM)。

6. 深度学习

理论上,参数越多,模型越复杂,容量越大,越意味着可完成更复杂的任务。

但一般,复杂模型的训练效率低,易陷入过拟合。随着云计算。大数据时代的到来,计算能力的大幅提高可缓解训练低效性,训练数据的大幅增加,可降低过拟合。

深度学习模型:很深层的神经网络。

提高容量的方法:

  • 增加隐层的数目
  • 增加隐层神经元的数目

增加隐层数目的方法显然比增加隐层神经元的数目更有效:增加隐层数不仅增加了拥有**函数的神经元数目,还增加了**函数嵌套的层数。

多隐层NN难以用经典算法求解:误差在多隐层反响传播时,往往会发散而不能收敛到稳定状态。

无监督逐层训练:多隐层训练的有效手段。每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,本层隐结点的输出作为下一层的输入,此称为预训练。预训练全部完成后,再对整个网络进行微调训练。

例如:深度信念网络(DBN),每层都是一个受限玻尔茨曼机。整个网络视为若干个RBM堆叠而成,首先预训练,完成后再利用BP对整个网络进行训练。

预训练+微调的做法:可看作是将大量参数分组。对每组先找到局部看起来比较好的设置,然后再基于这些局部较优结果联合全局最优。

另一种节省训练开销的策略:权重共享。一组神经元使用相同的连接权。CNN中使用。


另一个角度看深度学习:

无论哪种网络,其多层堆叠,每层对上一层的输出进行处理的机制,可看作是对输入信号不断逐层加工,从而把初始的,与输出目标不太相关的输入表示,转化为与输出目标相关的表示。通过多层处理,逐渐将低层特征表示转化为高层特征表示后,用简单模型即可完成复杂的分类任务。

由此,可将深度学习理解为进行“特征学习”,或者“表示学习”。

以往的机器学习任务中,描述特征的样本通常需要由人类专家设计,称为“特征工程”。特征好坏对泛化性能有至关影响。人类设计好特征并非易事,特征学习则通过机器学习技术来产生好特征。使得机器学习向“全自动数据分许”前进了一大步。

神经网络是一种难以解释的黑箱模型。