周志华西瓜书学习笔记(五)

周志华西瓜书学习笔记(五)

神经网络笔记介绍

神经元模型

在这里插入图片描述

诸如生物学中的定义,神经元是神经系统的基本单位,能过接受信息、整合信息、传导和输出信息。在输出的信息中,神经元传递出“兴奋”或者“抑制”的信息。

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

这里的“激活函数”就是将神经元收到的总输入转换为输出的function,它的形式有很多。比如,阶跃函数和Sigmoid函数。在这里插入图片描述

阶跃函数由于不连续、不光滑等不太好的性质,我们往往只用Sigmoid函数更多。

而只要想生物学上那样把一个个神经元连接在一起,就能得到神经网络模型。

感知机与多层网络

  • 定义:感知机由两层神经元组成,如下图,输入层接收外界输入信号后传递给输出层。在这里插入图片描述

  • 学习规则:对一个训练样例(x,y),若感知机的输出为 y ^ \widehat{y} y ​​,则感知机权重将调整为: w i ← w i + △ w i , △ w i = η ( y − y ^ ) x i w_i←w_i+△w_i,△w_i=\eta(y-\widehat{y})x_i wiwi+wi,wi=η(yy )xi。即对权重增加上学习率乘以Loss function的导数(后续会介绍),但由于感知机涉及的参数并不多,可以直接加上学习率乘以(真实值和预测值的偏差)乘以x来理解,更方便计算。

    当然,如果感知正确, ( y − y ^ ) (y-\widehat{y}) (yy )等于0,所以 △ w i △w_i wi就等于0,无需进行调整。

    对于第k个数据在第j个输出神经元(假设总计l个输入神经元,m个权重,算上 θ \theta θ共计m+1个)中, y ^ = f ( β j − θ j ) \widehat{y}=f(\beta_j-\theta_j) y =f(βjθj)​​​

    均方误差 E k = 1 2 ∑ j = 1 l ( y ^ j k − y j k ) 2 E_k=\frac{1}{2}\sum_{j=1}^l(\widehat{y}_j^k-y_j^k)^2 Ek=21j=1l(y jkyjk)2

    y ^ = ∑ i = 1 m + 1 w i x i \widehat{y}=\sum_{i=1}^{m+1}w_ix_i y =i=1m+1wixi

    所以求 E k E_k Ek关于 w i w_i wi求导是一个隐函数求导过程。 ∂ ( E ) ∂ ( w i ) = − ( y − y ^ ) ⋅ ∂ ( y ^ ) ∂ ( w i ) = − ( y − y ^ ) ⋅ x i \frac{\partial(E)}{\partial(w_i)}=-(y-\widehat{y})·\frac{\partial(\widehat{y})}{\partial(w_i)}=-(y-\widehat{y})·x_i (wi)E=(yy )(wi)(y )=(yy )xi

  • 感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力非常有限,只能处理线性可分的问题。

  • 要解决非线性可分的问题,要考虑使用多层网络。常见的神经网络是形如下图所示的层级结构,每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络结构通常称为“多层前馈神经网络”(multi-layer feedforward neural networks)。
    在这里插入图片描述

    • 输入层:神经元仅接收外界输入信息,不进行函数处理
    • 隐层(hidden layer):隐层神经元为功能神经元,进行函数处理
    • 输出层:输出层神经元为功能神经元,进行函数处理与结果输出
  • 神经网络的学习过程:就是根据训练数据来调整神经元之间的“连接权”(connection weight) 以及每个功能神经元的阈值;换言之,神经网络学到的东西,蕴涵在连接权与阈值中。

误差逆传播算法

多层网络的学习能力比单层感知机强得多。误差逆传播(errorBackPropagation,简称BP)算法就是训练多层网络的杰出代表。BP算法不仅可用于多层前馈神经网络,还可用于其他类型的神经网络。但通常说“BP网络”时,一般是指用BP算法训练的多层前馈神经网络。结构如下图:
在这里插入图片描述

从这图从得到一定的数学关系对后续推到有用:

b h = ∂ ( β j ) w h j b_h=\frac{\partial(\beta_j)}{w_{hj}} bh=whj(βj)

x i = ∂ ( α h ) v i h x_i=\frac{\partial(\alpha_h)}{v_{ih}} xi=vih(αh)​​

该网络中有 ( d + l + 1 ) ⋅ q + l (d+l+1)·q+l (d+l+1)q+l​个参数需要确定:

d∗q个输入层与隐层神经元的权值;
q∗l个隐层到输出层的权值;
q个隐层神经元的阈值;
l个输出神经元的阈值。

  • 均方误差
    在这里插入图片描述

  • 学习过程:BP算法基于梯度下降(gradient descent)策略,以目标的负梯度方向对参数进行调整。对误差 E k = 1 2 ∑ j = 1 l ( y ^ j k − y j k ) 2 E_k=\frac{1}{2}\sum_{j=1}^l(\widehat{y}_j^k-y_j^k)^2 Ek=21j=1l(y jkyjk)2​,给定学习率η,有
    在这里插入图片描述
    在这里插入图片描述

  • 工作流程:
    在这里插入图片描述

从repeat循环和for循环可以看出,一旦某个样例 ( x k , y k ) (x_k, y_k) (xk,yk)​使得各参数做出更新,则需开始新一轮迭代,重新从 y 1 y_1 y1​开始又逐次进行检验更新。

具体的数据流过程为:输入示例传给输入层,再逐层将信号前传,直到产生输出层的结果,然后计算输出层的误差(第4-5行),再将误差逆传播至隐层神经元(第6行),根据隐层神经元的误差来对连接权和阈值进行调整(第7行)。

停止条件:训练误差达到一个很小的值

BP算法的目标是最小化训练集D上的累积误差: E = 1 m ⋅ ∑ k = 1 m E k E=\frac{1}{m}·\sum_{k=1}^mE_k E=m1k=1mEk


上述介绍的是每次针对一个样例更新连接权和阈值即标准BP算法,同理可以推到出基于累积误差最小化的更新规则(即每次都是基于累计误差而不再是单个误差进行调整),就得到了累积误差逆传播算法。这两者的区别本质上是随机梯度下降和标准梯度下降法的区别。

缓解BP网络的过拟合的做法:

  • “早停(early stopping)”:将数据分成训练集和验证集,训练集用来计算梯度,更新连接权和阈值,验证集用来估计误差。若出现上文所述的过拟合现象,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
  • “正则化(regularization)”:在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权和阈值的平方和。
    在这里插入图片描述

5.4全局最小和局部最小

这部分的介绍在之前的笔记中有提到过,详情见https://blog.csdn.net/weixin_44469952/article/details/118979192?spm=1001.2014.3001.5502

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值