周志华《机器学习》第 5 章 神经网络
来源:互联网 发布:临沂数据恢复 编辑:程序博客网 时间:2024/05/22 14:58
本文是 周志华《机器学习》系列文章 之一,主要介绍神经网络的原理 及常用的神经网络算法,最后介绍了深度学习算法。
第 5 章 神经网络
5.1 神经元模型
神经网络(neural networks)是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反映。神经网络中最基本的成分是神经元(neuron)模型,即上述定义中的“简单单元”。
在“M-P 神经元模型”中,神经元接收到来自 n 个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”(activation function)处理以产生神经元的输出。
5.2 感知机与多层网络
感知机(Perceptron)由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是 M-P 神经元,亦称“阈值逻辑单元”(threshold logic unit)。感知机能容易地实现逻辑与、或、非运算。感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元(functional neuron),其学习能力非常有限。
要解决非线性可分问题,需要考虑使用多层功能神经元,输出层与输入层之间的一层神经元被称为隐层或隐含层(hidden layer),隐含层和输出层神经元都是拥有激活函数的功能神经元。
每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接,这样的神经网络结构通常称为“多层前馈神经网络”(multi-layer feedforward neural networks),其中输入层神经元接收外界输入,隐含层与输出层神经元对信号进行加工,最终结果由输出层神经元输出。换言之,输入层神经元仅是接受输入,不进行函数处理,隐层与输出层包含功能神经元。
神经网络的学习过程是根据训练数据来调整神经元之间的“连接权”(connection weight)以及每个功能神经元的阈值。换言之,神经网络“学”到的东西蕴含在连接权与阈值中。
5.3 误差逆传播算法
误差逆传播(error BackPropagation,简称 BP)算法是迄今最为成功的神经网络学习算法。现实任务中使用神经网络时,大多是在使用 BP 算法进行训练。BP 算法不仅可用于多层前馈神经网络,还可以用于其他类型的神经网络。但通常说“BP 网络”时,一般是指用 BP 算法训练的多层前馈神经网络。
BP 算法基于梯度下降(gradient descent)策略,以目标的负梯度方向对参数进行调整。学习率 η∈(0,1)控制着算法每一轮迭代中的更新步长,若太大则容易震荡,太小则收敛速度又会过慢。
BP 算法的目标是要最小化训练集 D 上的累积误差
如何设置隐层神经元的个数仍是个未知问题,实际应用中通常靠“试错法”(trial-by-error)调整。
有两种策略常用来缓解 BP 网络的过拟合,第一种策略是“早停”(early stopping),第二种策略是“正则化”(regularization)。
5.4 全局最小与局部最小
我们常会谈到两种“最优”:“局部极小”(local minimum)和“全局最小”(global minimum),“全局最小”一定是“局部极小”,反之则不成立。
基于梯度的搜索是使用最为广泛的参数寻优方法。
5.5 其他常见神经网络
5.5.1 RBF 网络
RBF (Radial Basis Function,径向基函数)网络是一种单隐层前馈神经网络,它使用径向基函数作为隐层神经元激活函数,而输出层则是对隐层神经元输出的线性组合。具有足够多隐层神经元的 RBF 网络能以任意精度逼近任意连续函数。
5.5.2 ART网络
竞争型学习(competitive learning)是神经网络中一种常用的无监督学习策略,在使用该策略时,网络的输出神经元相互竞争,每一时刻仅有一个竞争获胜的神经元被激活,其他神经元的状态被抑制,这种机制亦称“胜者通吃(winner-take-all)”原则。ART(Adaptive Resonance Theory,自适应谐振理论)网络是竞争型学习的重要代表,该网络由比较层、识别层、识别阈值和重置模块构成。
ART 比较好地缓解了竞争型学习中的“可塑性-稳定性窘境”(stabilityplasticity dilemma),可塑性是指神经网络要有学习新知识的能力,而稳定性则是指神经网络在学习新知识时要保持对旧知识的记忆。这就使得 ART 网络具有一个很重要的优点:可进行增量学习(incremental learning)或在线学习(online learning)。
5.5.3 SOM网络
SOM (Self-Organizing Map,自组织映射)网络是一种竞争学习型的无监督神经网络,它能将高维输入数据映射到低维空间(通常为二维),同时保持输入数据在高维空间的拓扑结构,即将高维空间相似的样本点映射到网络输出层中的邻近神经元。
SOM 的训练目的是为每个输出层神经元找到合适的权向量,以达到保持拓扑结构的目的。
5.5.4 级联相关网络
结构自适应网络将网络结构也当作学习的目标之一,并希望能在训练过程中找到最符合数据特点的网络结构。级联相关(Cascade-Correlation)网络是结构自适应网络的重要代表。
与一般的前馈神经网络相比,级联相关网络无需设置网络层数、隐层神经元数目,且训练速度较快,但其在数据较小时易陷入过拟合。
5.5.5 Elman 网络
与前馈神经网络不同,“递归神经网络”(recurrent neural networks)允许网络中出现环形结构,从而可让一些神经元的输出反馈回来作为输入信号。Elman 网络是最常用的递归神经网络之一。
5.5.6 Boltzmann 机
神经网络中有一类模型是为网络状态定义一个“能量”(energy),能量最小化时网络达到理想状态,而网络的训练就是在最小化这个能量函数。Boltzmann 机就是一种“基于能量的模型”(energy-based model)。
5.6 深度学习
随着云计算、大数据时代的到来,计算能力的大幅提高可缓解训练低效性,训练数据的大幅增加则可降低过拟合风险,因此,以“深度学习”(deep learning)为代表的复杂模型开始受到人们的关注。
典型的深度学习模型就是很深层的神经网络。对神经网络模型而言,提高容量的一个简单方法是增加隐层的数目,模型复杂度也可以通过单纯增加隐层神经元的数目来实现,但没增加隐层数目有效。
无监督逐层训练(unsupervised layer-wise training)是多隐层网络训练的有效手段,其基本思想是每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,而本层隐结点的输出作为下一层隐结点的输入,这称为“预训练”(pre-training);在预训练全部完成后,再对整个网络进行“微调”(finetuning)训练。
通过多层处理,逐渐将初始的“低层”特征表示转化为“高层”特征表示后,用“简单模型”即可完成复杂的分类等学习任务。由此可将深度学习理解为进行“特征学习”(feature learning)或“表示学习”(representation learning)。
以往在机器学习用于现实任务时,描述样本的特征通常由人类专家来设计,这称为“特征工程”(feature engineering)。众所周知,特征的好坏对泛化性能有至关重要的影响,人类专家设计出好特征也并非易事;特征学习则通过机器学习技术自身来产生好特征,这使机器学习向“全自动数据分析”又前进了一步。
资源
周志华《机器学习》系列文章:http://blog.csdn.net/u012318074/article/category/6899087
周志华《机器学习》XMind思维导图笔记:http://pan.baidu.com/s/1eS5S95S 密码:oef0
- 周志华《机器学习》第 5 章 神经网络
- 周志华《机器学习》笔记:第5章 神经网络
- 《机器学习》读书笔记 7 第5章 神经网络 一
- 《机器学习》读书笔记 7 第5章 神经网络 二
- 机器学习第5章第1节(上) : 使用神经网络学习逻辑或的运算
- 机器学习第5章第1节(下) : 针对两类函数训练神经网络
- 机器学习(周志华) 参考答案 第五章 神经网络
- Stanford机器学习---第四周.神经网络模型
- 机器学习(5)-神经网络
- 神经网络与机器学习(第3版)阅读笔记{第0章}
- 神经网络与机器学习(第3版)阅读笔记{第1章}
- Stanford机器学习---第5讲. 神经网络的学习 Neural Networks learning
- 机器学习(周志华) 参考答案 第五章 神经网络 5.5
- 机器学习(周志华) 参考答案 第五章 神经网络 5.7
- 周志华 《机器学习》之 第五章(神经网络)概念总结
- 机器学习(周志华)_第五章神经网络
- 第五章 神经网络--机器学习(周志华)课后参考答案
- 斯坦福机器学习第四周(神经网络及其应用)
- 漫谈程序员系列:怎样成为技术达人
- hdu 3065 病毒侵袭持续中
- redis
- 负数为何在内存中以补码的形式存在?
- jqgrid学习笔记
- 周志华《机器学习》第 5 章 神经网络
- Linux之apache+tomcat实现
- Spring配置Bean的详细信息
- 码农看车之纸上谈兵
- JSP中的动态包含和静态包含的区别
- 计算机协会Android培训_001
- Codeforces Round #411 B.3-palindrome (构造)
- php中在变量和函数前加static关键字之后的区别
- 使用python sklearn下的k_means聚类分析算法时遇到的问题