第五章 神经网络| (周志华-机器学习)|学习总结

一、整体脉络


第五章 神经网络| (周志华-机器学习)|学习总结_第1张图片
脉络图

二、神经元模型

1、本节框架


第五章 神经网络| (周志华-机器学习)|学习总结_第2张图片

2、要了解什么是神经元模型,首先得明白什么是神经网络。

神经网络是有具有适应性的简单单元组成的广泛进行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反映。我们在机器学习中谈论神经网络时是“神经网络学习”也可以说是机器学习与神经网络这两个学科领域的交叉部分

3、神经元模型


第五章 神经网络| (周志华-机器学习)|学习总结_第3张图片

4、经典模型| M-P神经元模型

在这个模型中,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重连接(connection)进行传递,神经元接收到的总输入值与神经元的阀值进行比较然后通过“激活函数”(activation function)处理以产生神经元的输出。

第五章 神经网络| (周志华-机器学习)|学习总结_第4张图片
M-P神经元模型


5、激活函数

5.1 理想型 |阶跃函数

它将输入值映射为输出值“0”或“1”,1对应神经元兴奋,0对应神经元抑制。

但缺点是:不连续、不光滑等不太好的性质导致不实用。

第五章 神经网络| (周志华-机器学习)|学习总结_第5张图片


5.2 常用型|Sigmoid函数

又名“挤压函数”(squashing function)

Sigmoid函数把可能在较大范围内变化的输入值挤压到(0,1)输出值范围内。


第五章 神经网络| (周志华-机器学习)|学习总结_第6张图片

6、神经元与神经网络的关系

把许多神经元按照一定的层次结构连接起来,就得到了神经网络。

三、感知机与多层网络

1、本节脉络


第五章 神经网络| (周志华-机器学习)|学习总结_第7张图片
5.2脉络



本节总的来说,就是先了解感知机是什么,感知器能解决线性可分的问题(与或非),却不能解决非线性可分的问题(异或),所以这时需要更为复杂的模型,引入隐层,得到多层网络去解决感知机不能解决的问题。

2、感知机

2.1 感知机的定义

感知机(Perceptron)由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,也叫“阈值逻辑单元”(threshold logic unit)

第五章 神经网络| (周志华-机器学习)|学习总结_第8张图片
两个输入神经元的感知机结构示意图



简单地来说就是:接收多个信号,输出一个信号。

2.2感知机的作用

感知器能够轻易地实现逻辑与、或、非运算。

需要注意的是,感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元(function neuron),其学习能力有限,只能解决线性可分(linearly sparable)的问题。

3、感知机对于权重的学习

第五章 神经网络| (周志华-机器学习)|学习总结_第9张图片




第五章 神经网络| (周志华-机器学习)|学习总结_第10张图片


4、“与” “或”“ 非 ”“异或”问题(拓展部分)

4.1 定义


第五章 神经网络| (周志华-机器学习)|学习总结_第11张图片
符号

要明白与、或、非、异或分别是什么意思,就要明白感知机如何处理这些问题的。

输入的信息,就像电流、水流般地流入,而输出的结果只有两个:流 和 不流。 我们就用0表示不流,用1表示流。

与:就是像一条河一样,只有河里的每个地方都是通的,整条河才可以流动。

第五章 神经网络| (周志华-机器学习)|学习总结_第12张图片
与的输入与输出

或:就像两条小溪一样,任一一条是通的,水就可以流向河水。


第五章 神经网络| (周志华-机器学习)|学习总结_第13张图片
或的输入与输出

:输出始始终和输入相反。

异或:只有两个输入值不相同时,才能输出1,比如(X1=0,X2=1,Y=1)。

4.2 与或非 的问题求权重

线性分类模型:


第五章 神经网络| (周志华-机器学习)|学习总结_第14张图片



若两种模式是线性可分的,即存在一个线性超平面能将它们分开,则感知机就一定会收敛(converge)️求得适当的权项w=(w1,w2...wn+1)。


第五章 神经网络| (周志华-机器学习)|学习总结_第15张图片


第五章 神经网络| (周志华-机器学习)|学习总结_第16张图片


代码:

第五章 神经网络| (周志华-机器学习)|学习总结_第17张图片

而解决非线性可分的问题(如异或问题),需要考虑使用多层功能神经元。

5、多层网络

5.1 什么是多层网络

多层网络:只需要包含隐层,即可称为多层网络。

神经网络的学习过程,就是根据训练数据来调整神经元之间的连接权(connection weight)以及每个功能的阈值,换言之,神经网络“学”到的东西,蕴涵在连接权和阈值中。

5.2 常见的多层神经网络|多层前馈神经网络

常见的神经网络是形如下图的层级结构,每层神经元都与下一层的神经元完全互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络结构通常称为“多层前馈神经网络”(mult-layer feedforward neural)

第五章 神经网络| (周志华-机器学习)|学习总结_第18张图片

5.3 用多层神经网络来学习异或问题中的权重


第五章 神经网络| (周志华-机器学习)|学习总结_第19张图片

要解决非线性可分的问题,需要考虑使用多层功能神经元。如上图简单的两层感知机就能解决异或问题。输入层和输出层之间的一层神经元,被称为隐层(hidden layer),隐层和输出层神经元都是拥有激活函数的功能神经元。

四、误差逆传播算法

1、本节与前一节的联系

上一节,我们已经知道感知机输出的结果不可避免地存在误差,因此我们需要不断调整权重,使模型达到最优。那么如何使得累积误差最小化的同时代价最小化呢?这就需要使用误差逆传播算法。

2、本节脉络


第五章 神经网络| (周志华-机器学习)|学习总结_第20张图片

3、什么是逆传播误差算法(error BackPropagation)

3.1 问题描述:

输入示例由d个属性描述,输出l维实值向量,试图找到调整连接权和阈值代价最小的方式。

3.2标准BP算法工作流程:

先将输入示例提供给输入层神经元,然后逐层将信号前传,直到产生输出层结果,然后计算输出层的误差,再降误差逆向传播至隐层神经元,最后根据神经元的误差来对连接权和阈值进行调整,该迭代过程循坏进行,直到达到停止条件为止,如训练误差已经达到一个很小的值。

第五章 神经网络| (周志华-机器学习)|学习总结_第21张图片
标准BP网络图

3.3标准BP算法和累积BP算法的的联系与区别

第五章 神经网络| (周志华-机器学习)|学习总结_第22张图片
标准BP与累积BP的目标一致时


标准BP算法每次仅针对一个训练样例的连接权和阈值,而基于累计误差推导而得,就能类似推导出基于累积误差最小化的更新规则,就能得到累积误差逆传播(accumulated error backpropagation)算法

为了达到同样的累积误差最小化,标准BP算法往往需要多次数的迭代,而累积BP算法的参数更新频率要低得多。

但在很多任务中,累积误差下降到一定程度之后,进一步下降会非常缓慢,这时候标准BP往往会更快获得较好的解。因此最好将两种方法结合使用

4、BP算法的核心

BP算法的核心就在于梯度下降(gradient descent)策略,并且BP算法是一个迭代学习算法,以目标的负梯度方向对参数进行调整。

4.1 梯度

梯度可以理解为全部偏导数构成的向量,梯度向量方向即为函数值增长最快的方向。而正负号就是在告诉我们输入向量的这一项该调大还是调小,每一项的相对大小则告诉我们改变那个值的影响更大。因此我们可以把梯度向量理解为各个权重偏置的相对重要度。

更多详细理解请前往:https://blog.csdn.net/walilk/article/details/50978864

4.2 梯度下降法

4.2.1梯度下降法就是沿着目标的负梯度,即沿着梯度下降的方向求解极小值。简单地来说就是求目标函数的极小值

4.2.2梯度下降的一个直观的解释:

比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处。

第五章 神经网络| (周志华-机器学习)|学习总结_第23张图片

更多数理推导理解请前往:https://www.zhihu.com/question/305638940


5、BP算法的后续优化

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

因此有两种策略用来缓解BP网络的过拟合:早停和正则化

5.1 早停(early stopping )

将数据分成训练集和验证集,训练集用来计算梯度、更新连接算和阈值,验证集用来估计误差。

若训练集误差降低单验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。

5.2 正则化(regularization)

基本思想:在误差目标函数中增加一个用于描述网络复杂度的部分。

例如:增加连接权与阈值的平方和,则误差目标函数改变为:

第五章 神经网络| (周志华-机器学习)|学习总结_第24张图片


四、全局最小与局部极小

1、本节脉络


第五章 神经网络| (周志华-机器学习)|学习总结_第25张图片

2、最优的判断条件与种类

2.1我们谈到的最优,有两种:“局部极小”(local minimum)“全局最小”(global minimum).

2.2最优的判断条件:

第五章 神经网络| (周志华-机器学习)|学习总结_第26张图片

3、局部极小和全局最小的关系

直观地看,局部极小是参数空间中的某个点,其邻域点的误差函数值均不小于该点的函数值。全局最小则是参数空间中所优点的误差函数数值均不小于该点的误差函数值。

显然,参数空间内梯度为0的点,只要误差值小于邻点的误差函数值,就是局部极小点,可能存在多个局部极小值,但只会有一个全局最小值。

也就是说:全局最小一定是局部极小,反之不成立。


第五章 神经网络| (周志华-机器学习)|学习总结_第27张图片

4、基于梯度寻优

在此类方法中,我们从某些初始解出发,迭代寻找最优参数解。每次迭代中,我们先计算误差函数在当前点的梯度,然后根据梯度确定搜索方向。当梯度为0时,达到局部最优,更新量为0

然而如果只有一个局部极小就是全局极小,那如果误差函数有多个局部极小呢?我们如何寻找全局最小呢?

5、跳出局部极小。进一步接近全局最小:


第五章 神经网络| (周志华-机器学习)|学习总结_第28张图片

五、深度学习

1、本节脉络

第五章 神经网络| (周志华-机器学习)|学习总结_第29张图片

深度学习兴起,然而典型的深度学习模型不能有效的进行多隐训练,因此我们需要采取无监督逐层训练和权共享这两个有效的策略来应对多隐层训练。通过DBN和CCN这两个典例我们对深度学习做进一步的理解。

2、兴起背景

随着云计算、大数据时代的到来,计算能力的大幅度提高可缓解训练的低效性,训练数据的大幅度增加可降低过拟合风险,因此,以“深度学习”(deep learning)为代表的复杂模型受到人们青睐。

3、典型的深度学习模型

典型的深度学习模型就是很深层的神经网络。

对神经网络模型,提高容量的一个简单的办法就是增加隐层的数据,因为隐层多了,相应的神经元连接权、阈值等参数就会更多。

从增加模型复杂度来看,增加隐层层数不仅增加了拥有激活函数的神经元数目,还增加了激活函数嵌套的层数。

然而,多隐层神经网络难以直接用经典算法进行训练。因此,在多隐层内逆传播时,往往会“发散”而不能收敛到稳定状态。因此我们需要寻找有效的多隐层网络的训练手段。

4、有效的多隐层网络训练手段

4.1 无监督逐层训练(unsupervised layer-wise training)

基本思想:每次训练一层隐结点,训练时将上一层的隐结点的输出作为输入,而本层的隐结点的输出作为下一隐结点的输入。这称为“预训练”(pre-training);在预训练全部完成后,在对整个网络进行“微调”(fine-tuning)训练。

简单来说就是“预训练+微调”的策略

该策略可看作将大量的参数分组,对每组先找到局部较优的设置,然后基于这些局部较优的结果联合起来进行全局寻优。

这样就能在利用模型大量参数所提供的自由度的同时,有效地节省了训练开销。

典例:深度信念网络(deep belief network) 简称DBN

感兴趣可移步:https://blog.csdn.net/a819825294/article/details/53608141

4.2 权共享(weight sharing)

基本思想:让一组神经元使用相同的连接权

我们用卷积神经网络(CNN)进行手写数字识别任务为例子进行了解:


第五章 神经网络| (周志华-机器学习)|学习总结_第30张图片
手写数字识别


CNN复合了多个“卷积层”和“采样层”对手写数字进行加工,然后在连接层实现与输出目标之间的映射,每个卷积层都包含多个特征映射(feature map),每个特征映射反映的是多个神经元构成的神经元阵列,负责提取局部特征。而采样层也叫做“汇合层”负责基于局部相关性原理进行采样,从而减少数据量的同时保留有用信息。

进一步了解请移步(该视频以手写数字识别为例子):https://b23.tv/av16144388

需注意的是:在训练中,无论是卷积层还是采样层,其每一组的神经元都是用相同的连接权,从而大幅度减少了需要训练的参数数目。

5、对于深度学习的理解

无论是DBN还是CNN,其隐层堆叠、每层对于上一层的输出进行处理的机制,可以看作是对输入信号进行逐层加工,从而把初始的、与输出目标之间联系不太密切的输入表示,转化成与输入目标联系更为密切的表示,使得原来基于最后一层的输出映射难以完成的任务称为可能。

由此,可将深度学习理解为进行“特征学习”(feature learning)或“表示学习”(representation learning)

七、其他常见神经网络

1、本节脉络


第五章 神经网络| (周志华-机器学习)|学习总结_第31张图片

鉴于初学,因此我们对这些常见的神经网络只作简单的了解。

2、RBF网络

RBF(Radial Basis Function,径向基函数)网络是一种单隐层前馈神经网络。

它使用径向基函数作为隐层神经元激活函数,而输出层则是对隐层神经元输出的线性组合


第五章 神经网络| (周志华-机器学习)|学习总结_第32张图片

3、ART网络

ART(Adaptive Resonance Theory,自适应谐振理论)网络是竞争型学习的重要代表。该网络由比较层识别层识别阈值和重置模块构成。

其中比较层负责接收输入样本,并将其传递给识别层神经元,识别层每个神经元对应一个模块类,神经元数目可在训练过程中动态增长以增加新的的模式类。

ART比较好地缓解了竞争学习中的“可塑性-稳定性窘境”。可塑性是指神经网络要有学习新知识的能力,而稳定性则是指神经网络在学习新知识时要保持对旧知识的记忆。这就使得ART网络有一个很重要的优点:可进行增量学习或在线学习。

4、SOM网络

SOM(Self-Organizing Map,自组织映射)网络是一种竞争学习型无监督神经网络。

它能将高维输入数据映射到低维空间,同时保持输入数据在高位空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。


第五章 神经网络| (周志华-机器学习)|学习总结_第33张图片
SOM网络结构

SOM的训练过程:

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

5、级联相关网络

级联相关(Cascade-Correlation)网络是结构自适应网络的重要代表。

结构自适应网络不仅把学习参数而且把网络结构也当成了学习目标之一。

级联相关网络有两个主要成分:

(1)级联:是指建立层次连接的层级结构

(2)相关:是指通过最大化神经元的输出与网络误差之间的相关性来训练别的参数。

第五章 神经网络| (周志华-机器学习)|学习总结_第34张图片


6、Elman网络

Elman网络是最常用的递归神经网络之一。

递归神经网络允许网络中出现环形结构,从而让一些神经元的输出反馈回来作为输入信号,这样的结构和信息反馈过程使得网络在t时刻的输出状态不仅与t时刻的输入有关,还与t-1时刻的网络状态有关,从而能处理与实践相关的动态变化。

第五章 神经网络| (周志华-机器学习)|学习总结_第35张图片



这里简单理解下递归

递归,就是在运行的过程中调用自己。


第五章 神经网络| (周志华-机器学习)|学习总结_第36张图片


7、Boltzmann机

Boltazamann机是一种基于能量的模型,能量最小化时网络达到理想状态,而网络的训练就是在最小化这个能量函数。

Boltazamann机的常见结构如下图所示,其神经元分为两层:显层、隐层。显层用于表示数据输入与输出,隐层被理解为数据的内在表达。

第五章 神经网络| (周志华-机器学习)|学习总结_第37张图片

Boltazmann机的训练过程

就是将每个训练样本视为一个状态向量,使其出现的概率尽可能大。标准的Boltzmann机是一个全连接图,训练网络的复杂度很高,这使得难以用于解决现实任务。现实中常用受限Boltzmann机。

受限Boltzmann机仅保留显层和隐层之间的连接,从而将Boltazmann机友完全图简化为二部图。

你可能感兴趣的:(第五章 神经网络| (周志华-机器学习)|学习总结)