西瓜书第五章笔记:神经网络

  • Post author:
  • Post category:其他




5.1 神经元模型

神经网络是由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应。

神经元模型:是神经网络最基本的成分。当通过神经元的信息信好超过某一个阈值,那么该神经元就会激活,从而作用于下一个神经元。

M-P神经元模型:神经元连接来自收到来自n个其他神经元传递来的输入信号,与权重结合进行传递。神经元将收到的总输入值与阈值进行比较,利用激活函数(e.g Sigmoid)处理后产生输出。

激活函数:最典型的激活函数是阶跃函数,类似分段函数,0表示非兴奋状态,1表示兴奋状态。但阶跃函数不连续、不光滑,无法表达所有数据的活跃性质,因此常常使用sigmoid函数​来对数据进行处理。从而把较大范围内变化的输入值挤压到(0, 1)输出值范围内。



5.2 感知机与多层网络

感知机:由两层神经元组成——输入层和输出层。输入层接受外界信好后传递给输出层,输出层是M-P神经元(阈值逻辑单元)。

权重wi​和阈值θ可通过学习得到。调整感知机的权重方式如下:

在这里插入图片描述

其中,



Δ

w

i

=

η

(

y

y

ˆ

)

x

Δwi=η(y−yˆ)x






Δ


w


i




=








η


(


y





y


ˆ


)


x





i,



η

Δ

w

i

=

η

(

y

y

)

x

i

ηΔwi​=η(y−y^​)xi​






η


Δ


w


i







=








η


(


y






y




















)


x


i








,η被称为学习率,其范围在(0, 1)之间。从公式中不难发现,评判感知机预测正确与否的方式在于yˆ=y

y^​=y。如果不相等,则根据错误的程度进行权重调整。

但是,感知机只有输出层一层可以进行激活函数处理,学习能力有限,即只能一刀切。对于线性不可分问题或非线性问题,通常采用多层神经元。

多层神经网络:输入层和输出层间有隐含层(隐层),隐层和输出层神经元都拥有激活函数,从而将一刀切问题转化为了平面划分问题。

多层前馈神经网络:每层神经元与下一层神经元实现全连接,不存在同层连接和跨层连接。所谓的前馈,并非指信号不能向后传递,而是指网络拓扑结构上不存在环路或回路。隐层的作用在于对上一层神经元的输出结果进行信号加工,最终产生结果由输出层神经元输出。换言之,输入层神经元只负责接受数据,而隐层和输出层包涵功能神经元,对数据进行函数处理。(只包含一个隐层的三层神经网络即可称为多层神经网络)。

神经网络的学习过程,就是根据训练数据来调整神经元之间的连接权值和功能神经元的阈值。因此权值和阈值是神经网络的关键。

【*注】阈值相当于神经元内部的关键参数,而权值相当于不同神经元与不同神经元之间相连关系的重要度。



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

当网络层级较多时,产生的权值和阈值就会有许多,而调整阈值和权值的方法,就称作反向传播算法。如果说前馈神经网络的目的是为了得到最合适的预测模型,那么反向传播算法的作用就是反向求解,为了得到最合适的权值和阈值。

BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整。即对均方误差求解函数,分别对θ、w、λ等进行求导。在给定学习率η的情况下,第k个样例的均方误差函数E有:

在这里插入图片描述

而对于sigmoid函数作为激活函数的清空,存在一种特殊规律:

在这里插入图片描述

例如:

1、权值w的校准公式:

在这里插入图片描述





Δ

w

h

j

=

η

E

Δ

w

h

j

=

η

E

Δwhj=−ηE′Δwh​j=−ηE′






Δ


w


h


j




=











η


E





Δ


w


h





j




=











η


E








对E就w进行微分计算。经过计算,反向传播算法的校准公式为:

在这里插入图片描述

其中,



y

ˆ

k

j

y

j

k

yˆkjy^​jk






y


ˆ


k


j



y




















j


k





​表示第k个样例在输出层第j个神经元上的计算结果

2、输出层阈值θ的校准公式:

同样的,以θ为底求导后可得:输出层上第j个神经元的阈值变化为:

在这里插入图片描述

3、连接权v的校准公式

以v为底求导可得:输入层第i个神经元到隐层第j个神经元间的连接权值变化为:

在这里插入图片描述

4、隐层阈值λ的校准公式,以λ为底求导可得:隐层第h个神经元内部的阈值变化为:

在这里插入图片描述

不过,标准的BP算法一次只能针对一个训练样本更新连接权值和阈值,从而导致其参数更新频繁,且不同样例进行更新的效果可能出现抵消现象。

因此借鉴了该方法得到了基于累计误差最小化的更新规则,即累计误差逆传播。该方法读取整个训练集D一遍后才对参数进行更新,从而节省了计算时间,提升了效率。

【*注】面对庞大的数据计算量时,往往先采用累计误差逆传播方法对参数进行范围上的先处理,当累计误差下降到一定程度后,改用标准BP算法对部分参数进行优化。这样的方式更加合理。

BP神经网络易造成过拟合,因此常用①早停和②正则化两种方式来避免。

早停:将数据集划分成训练集和验证集,其中训练集用来计算梯度、更新连接权和阈值,而验证集则用来估计误差。若训练集误差降低,而验证集误差提升则停止训练,返回最小验证集误差对应的连接权和阈值。

正则化:在误差目标函数中增加一个用于描述网络复杂度的部分,例如:

在这里插入图片描述

4、全局最小与局部极小

利用前馈计算得到的E作为表示神经网络在训练集上的整体误差,显然其是关于连接权值w和阈值θ的函数。而反向传播计算的过程则是一个寻优过程,旨在寻找一组最优参数使E最小。

该过程自然就涉及到最优、局部极小和全局最小的求解问题。

局部极小:在某个指定邻域范围内,存在任意E(w,θ)>E(w*,θ*),则称w* 和theta*是局部极小值。

全局最小:在整个样本空间中,最小误差E对应的w和θ值。

显然如果样本空间中,梯度为零,只要其误差函数值小于所有相邻点的值,那么其对应的w和θ必然为局部最小点。因此可能存在多个局部最小点,但全局最小点却唯一。

梯度下降法:利用负梯度方向下降速度最快的特点,对整个函数空间进行搜索求最优解。当剃度为零时,则找到一个局部最优点,根据该局部最优点是否唯一,确定其是否为全局最小。

为了避免求得多个局部极小点,从而导致陷入局部极小而无法找到全局最小点的问题,采用如下的启发式策略来应对:

1、采用多组参数值同时初始化神经网络(等于在开局的时候选择不同的参数值来进行模型训练,等于在同一个区域内沿不同方向进行搜索,最终都能找到各自方向上的最优点)

2、模拟退火技术。所谓的退火机制,就是指每一步允许出现比当前解更差的结果,接受次优解从而保证算法的稳定。(类似于悔棋,每次将处理步骤退回至前一步,然后沿另一个方向重新搜索)

3、使用随机梯度下降。即便到达局部极小点,其也可能因为计算的参数设定、步长等因素,让深陷极小点的函数继续计算,从而从极小点中”爬“出来。



版权声明:本文为weixin_43110959原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。