我是靠谱客的博主 单薄人生,最近开发中收集的这篇文章主要介绍西瓜书.第五章(神经网络)重点最全整理+课后习题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

(神经网络知识很多且复杂,此篇是周志华老师的西瓜书对神经网络的解释,仔细学习后我对神经网络部分有了更深刻的认识,在此处致谢周老师,我也在持续学习中,之后在其他资料或文献中总结的概念也会更新在此处)

五.神经网络(课后习题答案见文末)

5.1 神经元模型

1. "神经网络是由具有适应性的 简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实 世界 体所作出的交互反应 [Kohonen, 988]

2.

3. 把许多个这样的神经元按 定的层次结构连接起来,就得到了神经网

5.2感知机与多层网络

1. 感知 (Perceptron 由两层或多层神经元组成,输入层接收外界输入信号后传递给输出层, 输出层是 M-P神经元,亦称"阔值逻辑单元" (threshold logic unit).

2.   

3.感知机权重调整

4. ,感知机只有输出层神经元进行激活函数处理,即只拥有 功能神经元(functionalneuron) ,其学习能力非常有限.

5. .事实上,上述与、或、 非问题都是线性可分(linearly separable) 的问题.可以证明 [Minsky and Papert, 1969],若两类模式是线性可分的,即存在一个线性超平面能将它们分开,则感知机的学习过程一定会收敛(converge),而求得适当得权向量w,否则感知机学习过程将会发生动荡。

5.要解决非线性可分问题,需考虑使用多层功能神经元。

6.输出层与输入居之间得一层神经元,被称为隐居或隐含层(hidden laye ,隐含层和输出层神经元都是拥有激活函数的功能神经元.

7.每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接,这样的神经网络结构通常称为" 层前馈神经网”.

8.输入层神经元仅是接受输入,不进行函数处理,隐层与输出层包含功能神经元.

9. "前馈"并不意味着网 络中信号不能向后传!而 是指网络拓扑结构丰不存 在环或回路.

10. .神经网络的学习过程,就是根据训练数据来调整神经元之间的 "连接权" (connection weight) 以及每个功能神经元的阑值;

11.

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

1.多层网络的学习能力比单层感知机强得多.欲训练多层网络,式(5.1 )的 简单感知机学习规则显然不够了,需要更强大的学习算法.误差逆传播(error BackPropagation ,简称 BP) 算法就是其中最杰出的代表。

2. BP 算法不仅可用于多层前馈神经网络,还可用于其他类型的神经网络 例如训练递归神经网络 [Pineda, 1987]. 但通常说 "BP 网络"时,一般是指用 BP 算法训练的多层前馈神经网络.

3.

4.

5. BP是一个迭代学习算法,在迭代的每一轮中采用广义的感知机学习规则对参数进行更新估计。

6. 学习率ηε(0 1) 控制着算法每一轮迭代中的更新步长,若太大则容易振荡, (常设置为η=0.1)太小则收敛速度又会过慢。

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

8. BP 算法的目标是要最小化训练集 D上的累积误差。

9. 累积 BP 算法与标准 BP 算法都很常用.一般来说,标准 BP 算法每次更新只针对单个样例,参数更新得非常频繁,而且对不同样例进行更新的效果可能出现"抵消"现象.因此,为了达到同 样的累积误差极小点 ,标准 BP 算法往往需进行更多次数的法代.累积 BP 算法直接针对累积误差最小化,它在读取整个训练集一遍后才对参数进行更新, 其参数更新的频率低得多.但在很多任务中,累积误差下降到一定程度之后,进一步下降会非常缓慢,这时标准 BP 往往会更快获得较好的解,尤其是在训练 非常大时更明显.

10. 读取训练集一遍称为进行了"一轮" (one round ,亦称。ne epoch) 学习

11. 标准 BP 算法和累积 BP 算法的区别类似于随机梯 度下降(stochastic gradient descent 简称 SGD) 与标准 梯度下降之间的区别.

12. [Hornik et al., 1989] 证明,只需二个包含足够多神经元的隐层,多层前馈网 络就能以任意精度逼近任意复杂度的连续函数.然而,如何设置隐层神经元的 个数仍是个未决问题,实际应用中通常靠"试错法" (trial-by-error) 调整

13. 正是由于其强大的表示能力, BP 神经网络经常遭遇过拟合?其训练误差持 续降低,但测试误差却可能上升

14. 升有两种策略常用来缓解BP 网络的过拟合.

第一种策略是"早停" (early stopping): 将数据分成训练集和验证集,训练、集用 来计算梯度、更新连接权和阔值?验证集用来估计误差,若训练集误差降低但验证集误差升高?则停止训练,同时返回具有最小验证集误差的连接权和阈值.

第二种策略是"正则化" (regularization) [Barron, 1991; Girosi et al., 1995],其基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权与阔值的平方和.

15. 增加连接权与闵值平方 和这一项后,训练过程将 会偏好比较小的连接权 和闵佳,使网络输出更加 "光滑"从而对过拟合有所缓解

16.

5.4 全局最小与局部最小

1. 若用 E表示神经网络在训练集上的误差,则它显然是关于连接权w和阈值的函数.此时,神经网络的训练过程可看作一个参数寻优过程,即在参数空 间中,寻找一组最优参数使得E最小.

2. 基于梯度的搜索足使用最为广泛的参数寻优方法.

3. .在此类方法中,我们从某些初始解出发,迭代寻找最优参数值.每次迭代中,我们先计算误差函数在当 前点的梯度,然后根据梯度确定搜索方向.

4. .例如,由于负梯度方向是函数值下降最快的方向,因此梯度下降法就是沿着负梯度方向搜索最优解.若误差函数在当前点的梯度为零,则已达到局部极小,更新量将为零,这意味着参数的迭代更新将在此停止.

5.

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

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

②使用 "模拟退火" (simulated annealing) 技术 [Aarts and Korst, 1989]. 模拟退火在每一步都 以一定的概率接受 比当前解更差的结果,从而有助与"跳出"局部极小,在每步迭代过程中接受"次优解"的概率要随着时间的推移而逐渐降低从而保证算法稳定。(但是也会造成"跳出" 全局最小)

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

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

5.5 其他常见神经网络

1. RBF(Radial is Function,径向基函数)网络 [Broomhead and Lowe 1988] 是一种单隐层前馈神经网络,它使用径向基函数作为隐层神经元激活函数,而输出层则是对隐层神经元输出的线性组合

2. [Park and Sandberg, 1991] 证明,具有足够多隐层神经元的 RBF 网络能以任意精度逼近任意连续函数.

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

4. 竞争型学习 (competitive learning) 是神经网络中一种常用的无监督学习 策略 在使用该策略时,网络的输出神经元相互竞争,每一时刻仅有一个竞 争获胜的神经元被撤活,其他神经元的状态被抑制.这种机制亦称"胜者通 吃" (winner-take-all) 原则.

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

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

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

8. ART 比较好地缓解了竞争型学习中的"可塑性-稳定性窘境" (stability-

plasticity dilemma) ,可塑性是指神经网络要有学习新知识的能力而稳定性则是指神经网络在学习新知识时要保持对旧知识的记忆.这就使得ART 网络具有

一个很重要的优点:可进行增量学习 (incremental learning) 或在线学习 (onlinlearnig) .

9. 增量学习是指在学得模 型后,再接收到训练样例 时,仅需根据新样例对模 型进行更新,不必重新训 练整个模型,并且先前学 得的有效信息不会被"冲 掉>> .在线学习是指每获得一个新样本就进行一次模型史新显然,在线学习 是增量学习的特例,而增 量学习可视为"批模式" (batch-mode) 的在线学习

10. SOM(Self-Organizing Map ,自组织映射)网络 [Kohonen 1982] 是一种竞 争学习型的无监督神经网锚,官能将高维输入数据映射到低维空间(通常为二 维) ,同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点 映射到网络输出层中的邻近神经元. 如图 5.11 所示, SOM 网络中的输出层神经元以矩阵方式排列在二维空间中,每个神经元都拥有一个权向量,网络在接收输入向量后,将会确定输出层获 胜神经元,它决定了该输入向量在低维空间中的位置. SOM 的训练目标就是为 每个输出层神经元找到合适的权向量?以达到保持拓扑结构的目的. SOM 的训练过程很简单:在接收到一个训练样本后.每个输出层神经局会 计算该样本与自身携带的权向量之间的距离,距离最近的神经兀成为竞争获胜 者?称为最佳匹配单 L; (best matching unit). 然后,最佳匹配单元及其邻近神经 元的权向量将被调整,以使得这些权向量与当前输入样本的距离缩小.这个过 程不断迭代,直至收敛.

11.

 

12. 般的神经网络模型通常假定 网络结构是事先固定的,训练的目的是利用训练样本来确定合适的连接权、 阙值等参数.与此不同,结构自适应网络则将络结构也当作学习的目标之一,并希望能在训练过程中找到最符合数据特点的网绵结构-级联相关(Cascade-Correlation [Fahlman and Lcbiere,1990] 是结构 适应网络的重要代表(结构自适应神经网络亦称"构造性" (constructive)经网络)

13. 级联相关网络有两个主要成分"级联"和"相关" 级联是指建立层次 连接的层级结构.在开始训练 ,网络只有输入层和输出 ,处于最小拓扑结构;随着训练的进行,如图 5.12 所示,新的隐层神经元逐渐加入,从而创建起层级结构. 当新的隐层神经元加入时,其输入端连接权值是冻结固定的,相关是指通过最大化新神经元的输出与网络误差之间的相关性(corre ation) 来训练相关的参数

14. 与一般的前馈神经网络相比,级联相关网络无需设置网络层数、隐层神经 元数目,且训练速度较快,但其在数据较小时易陷入过拟合

15.

16. 与前馈神经网络不同"递归神经网络" (recurrent neural networks) 允许 网络中出现环形结构,从而可让一些神经元的输出反馈回来作为输入信号.这 样的结构与信息反馈过程,使得网络在 时刻的输出状态不仅与 时刻的输入 有关?还与 时刻的网络状态有关,从而能处理与时间有关的动态变化. Elman 网络 [Elman, 1990] 是最常用的递归神经网络之 其结构如圈 5.13 所示,它的结构与多层前馈网络恨相似,但隐层神经元的输出被反馈回来,与下一时刻输入层神经元提供的信号一起,作为隐层神经元在下一时刻的输入.隐层神经元通常采用 Sigmoid 激活函数,而网络的训练则常通过推广的 BP 算法 进行 [Pineda, 1987].

17.

 

18. 神经网络中有一类模型是为网络状态定义一个"能量" (energy) ,能量最小化时网络达到理想状态,而网络的训练就是在最小化这个能量函数. Boltzmann 机[Ackley et,al, 1985] 就是一种"基于能量的模型" (energy-based model) ,常见结构如图5.14(a) 所示,其神经元分为两层:显层与隐层.显层用 于表示数据的输入与输出,隐层则被理解为数据的内在表达. Boltzmann 机中 的神经元都是布尔型的,即只能取0,1 两种状态,状态1表示激活,状态0表示抑制.

19. 网络中的神经元以任意不依赖于输入值的顺序进行更新,则网络最终将达到 Boltzmann 分布,此时状态向量 出现的概率将仅由其能量与所有可能状态向量的能量确定。

20. Boltzmann 机的训练过程就是将每个训练样本视为一个状态向 量,使 其出现的概率尽可能大.标准的 Boltzmann 机是一个全连接图,训练网络的 复杂度很高,这使其难以用于解决现实任务. 现实中常采用受Boltzmann机(Restricted Boltzmann Machine,简称 RBM ),受限 Boltzmann 机仅保留显层与隐层之间的连接 Boltzmann 结构 由完全图简化为二部图。

21.Boltzmann机是一种递归神经网络,Boltzmann分布亦称为“平衡态”或平衡分布。

22. 受限 Boltzmann 机常用"对比散度" (Contrastive Dìvergence,简称 CD)算法 [Hinton 2010] 来进行训练。

5.6 深度学习

1.理论上,参数越多的模型复杂度越高,容量越大,能完成更复杂的学习任务,

但一般情形下,复杂模型的训练效率低,易陷入过拟合。

2.计算能力的提高可缓解训练低效性,训练数据的大幅增加可降低拟合风险

3.但从增加 模型复杂度的角度来看,增加隐层的数目显然比增加隐层神经元的数目更有效? 因为增加隐层数不仅增加了拥有激活函数的神经元数目,还增加了激活函数嵌套的层数

4. .然而,多隐层神经网络难以直接用经典算法(例如标准 BP 算法)进行 训练 因为误差在多隐层内逆传播时?往往会"发散" (diverge) 而不能收敛到 稳定状态.(隐层>3)

5. 无监督逐层训练(unsupervised layer-wise training) 是多隐层网络训练的 有效手段,其基本思想是每次训练一层隐结点?训练时将上一层隐结点的输 出作为输入,向本层隐结点的输出作为下一层隐结点的输入,这称为"预训 练" (pre-training); 在顶训练全部完成后,再对整个网络进行"微调" (finetuning) 训练.例如,在深度信念网络(deep belief network,筒称DBN) [Hinton 的此, 2006] 中,每层都是一个受限 Boltzmann 机。

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

7. 另一种节省训练开销的策略是"权共享" (weight sharig的,即让一组 神经元使用相同的连接权.这个策略在卷积神经网络(Convolutional Neural Network,简称 CNN) [LeCun and Be io 1995; LeCun et a1., 1998] 中发挥了 重要作用.

8.

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

神经网络习题:

5.1试述将线性函数 f(x) 用作神经元激活函数的缺陷.

使用线性函数作为激活函数时,无论是在隐藏层还是在输出层(无论传递几层),其单元值(在使用激活函数之前)都还是输入 x的线性组合,这个时候的神经网络其实等价于逻辑回归(即原书中的对率回归,输出层仍然使用Sigmoid函数)的,若输出层也使用线性函数作为激活函数,那么就等价于线性回归

5.2 试述使用图 5.2(b) 激活函数的神经元与对率回归的联系.

使用Sigmoid激活函数,每个神经元几乎和对率回归相同,只不过对率回归在 sigmoid(x)>0.5时输出为1,而神经元直接输出sigmoid(x) 。

5.3对于图 5.7 中的 Vih 试推导出 BP 算法中的更新公式(5.13).

(这个暂时不会推,等我在修炼一两年。我现在才大一????)

5.4 试述式(5.6) 中学习率的取值对神经网络训练的影响.

(下图借鉴于阿里云)

学习率太高会导致误差函数来回震荡,无法收敛;而学习率太低则会收敛太慢,影响训练效率(书上原话)。

(后五个都不会,太难了.。。之后会逐渐补全)

5.5 试编程实现标准 BP 算法和累积 BP 算法?在西瓜数据集 3.0 上分别 用这两个算法训练一个单隐层网络,并进行比较.

5.6试设计一个 BP 改进算法,能通过动态调整学习率显著提升收敛速度. 编程实现该算法,并选择两个 UCI 数据集与标准 BP 算法进行实验 比较.

5.7根据式(5.18) (5.19) ,试构造一个能解决异或问题的单层 RBF 神经网络

5.8从网上下载或自己编程实现 SOM 网络,并观察其在西瓜数据集 3.0α 上产生的结果.

5.9试推导用于 Elman 网络的 BP 算法.

5.10从网上下载或自己辑程实现一个卷积神经网络,并在手写字符识别数据MNIST数据上实验测试。

最后

以上就是单薄人生为你收集整理的西瓜书.第五章(神经网络)重点最全整理+课后习题的全部内容,希望文章能够帮你解决西瓜书.第五章(神经网络)重点最全整理+课后习题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(29)

评论列表共有 0 条评论

立即
投稿
返回
顶部