吃瓜笔记04:【西瓜书+南瓜书】神经网络

本文介绍了神经网络的基础,包括神经元模型、感知机、多层网络以及反向传播算法。深度学习是通过多层神经网络实现的,其中反向传播是训练的关键。文章还讨论了过拟合、局部最小和全局最小的问题,以及缓解过拟合的策略。此外,提到了其他类型的神经网络,如RBF、ART、SOM、级联相关网络和Elman网络。
摘要由CSDN通过智能技术生成

神经网络类算法可以堪称当今最主流的一类机器学习算法,其本质上和前几章讲到的线性回归、对数几率回归、决策树等算法一样均属于机器学习算法,也是被发明用来完成分类和回归等任务。不过由于神经网络类算法在如今超强算力的加持下效果表现极其出色,且从理论角度来说神经网络层堆叠得越深其效果越好,因此也单独称用深层神经网络类算法所做的机器学习为深度学习,属于机器学习的子集。

1 神经元模型

神经元模型是神经网络中最基本的成分,当收到的信号高于某个阈值时,就会发出“1”,反之发出“0”。

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

在这里插入图片描述

理想的激活函数的阶跃函数,输出值只有0和1。但是阶跃函数具有不连续、不光滑等不太好的性质,所以一般采用Sigmoid函数来代替。

在这里插入图片描述

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

2 感知机与多层网络

感知机由两层神经元组成。如图所示,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”。

在这里插入图片描述

一般来说,给定训练数据集,可以通过感知机训练得到权重w和阈值 θ \theta θ,阈值可以看做一个固定输入为-1.0的哑结点所对应的链接权重 w n − 1 w_{n-1} wn1,因此权重和阈值的学习就可以统一为权重的学习。

对于训练样例(x, y),若当前感知机的输出为 y ^ \hat{y} y^,则感知机的权重将通过以下公式调整:

w i ← w i + Δ w i , Δ w i = η ( y − y ^ ) x i , \begin{aligned}w_i&\leftarrow w_i+\Delta w_i,\\\Delta w_i&=\eta(y-\hat{y})x_i,\end{aligned} wiΔwiwi+Δwi,=η(yy^)xi,

其中, η \eta η叫做学习率,即learning rate,取值为(0,1)。

感知机可以解决与、或以及非等问题。但由于其只有一层功能神经元,即输出层,学习能力非常有限,所以不能解决异或问题。这也是导致上个世纪感知机没落的原因。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VvG2fnUV-1690375637522)(吃瓜笔记04:神经网络+03ba4fe7-12ca-4ffa-a168-f25ea1611e62/image 3.png)]

要解决异或问题,可以使用多层功能神经元。举个最简单的例子,加一层功能神经元得到一个两层感知机就可以解决。其中,除了输出层和输出层的其它层被叫做隐层或隐含层,隐含层和输出层神经元都是拥有激活函数的功能神经元。

在这里插入图片描述

更一般的多层神经网络如下图所示。需包含隐层,即可称为多层网络。神经网络学习的过程,就是根据训练数据来调整神经元之间的连接权以及每个功能神经元的阈值。

在这里插入图片描述

3 误差逆传播算法(也叫反向传播)

要训练多层网络,简单感知机的学习规则显然不够用了,需要更强大的学习算法,其中反向传播算法应用最广泛,也是迄今为止最成功的的神经网络学习算法。

BP 算法基于梯度下降 (gradient descent) 策略,以目标的负梯度方向对参数进行调整。对于误差 Ek, 给定学习率 η ,有

Δ w h j = − η ∂ E k ∂ w h j ⋅ = − η ∂ E k ∂ y ^ j k ⋅ ∂ y ^ j k ∂ β j ⋅ ∂ β j ∂ w h j . \Delta w_{hj}=-\eta\frac{\partial E_{k}}{\partial w_{hj}}\cdot=-\eta\frac{\partial E_k}{\partial\hat{y}_j^k}\cdot\frac{\partial\hat{y}_j^k}{\partial\beta_j}\cdot\frac{\partial\beta_j}{\partial w_{hj}}. Δwhj=ηwhjEk=ηy^jkEkβjy^jkwhjβj.

学习率控制着算法每一轮迭代中的更新步长,太大则容易振荡,太小则收敛速度又会过慢。反向传播算法的工作流程如下:

  • 先将输入示例提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结果

  • 循环执行:

    • 计算输出层的误差

    • 将误差逆向传播至隐层神经元

    • 根据隐层神经元的误差来对连接权和阈值进行调整

  • 循环执行结束:直至达到某些停止条件,如训练误差以达到一个很小的值

需要注意的是,BP算法的目标是要最小化训练集D上的累积误差:

E = 1 m ∑ k = 1 m E k , E=\frac1m\sum_{k=1}^{m}E_{k}, E=m1k=1mEk,

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

只需一个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数。

正是由于其强大的表示能力,BP神经网络经常过拟合,有两种策略来缓解过拟合:

  • 早停

    • 将数据分成训练集和验证集,训练集用来计算梯度、更新连接权和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
  • 正则化

    • 基本思想所示在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权与阈值的平方和。则误差目标函数改变为:

    E = λ 1 m ∑ k = 1 m E k + ( 1 − λ ) ∑ i w i 2 , E=\lambda\frac1m\sum_{k=1}^mE_k+(1-\lambda)\sum_iw_i^2, E=λm1k=1mEk+(1λ)iwi2,

其中 λ ∈ ( 0 , 1 ) \lambda \in (0, 1) λ(0,1)用于对经验误差与网络复杂度这两项进行折中,通常通过交叉验证法来估计

4 全局最小与局部最小

神经网络的训练过程可以看做是一个参数寻优过程,即寻找一组参数使得误差目标函数E最小。谈到最优,一般有两种:

  • 局部极小:是参数空间中的某个点,其邻域点的误差函数值均不小于该点的函数值

  • 全局最小:全局最小解则是指参数空间中所有点的误差函数值均不小于该点的误差函数值

可能存在多个局部极小值,但只会存在一个全局最小值,我们希望找到全局最小。在现实任务中,通常采用以下策略来试图跳出局部极小:

  • 以多组不同参数值初始化多个神经网络,按标准化方法训练后,取其中误差最小的解作为最终参数

  • 模拟退火算法:每一步都以一定的概率接收比当前解更差的结果

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

  • 遗传算法

5 其他常见的神经网络

5.1 RBF

Radial Basis Function,径向基函数网络,是一种但因层前馈神经网络,它使用径向基函数作为隐层神经元激活函数,而输出层是对隐层神经元输出的线性组合。

5.2 ART

竞争型学习是神经网络中一种常用的无监督学习策略,网络的输出神经元相互竞争,每一时刻仅有一个竞争获胜的神经元被激活,其他神经元被抑制。

ART(Adaptive Reson.ance Theory,自适应谐振理论)网络是竞争型学习的重要代表。该网络的组成如下:

  • 比较层:接收输入样本,并将其传递给识别层神经元

  • 识别层:每个神经元对应一个模式类,神经元数目可在训练过程中动态增长以增加新的模式类

  • 识别阈值:当识别阈值较高时,输入样本将会被分成比较多、比较精细的模式类,而如果识别阈值较低,则会产生比较少、比较粗略的模式类。

  • 重置模块:若相似度不大于识别阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设置为当前输入向量。

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

5.3 SOM网络

SOM(Self-Organizing Map,.自组织映射)网络也是一种竞争学习型的无监督神经网络,它能将高维输入数据映射到低维空间,同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。

5.4 级联相关网络

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

  • 级联:建立层次连接的层级结构

  • 相关:通过最大化新神经元的输出与网络误差之间的相关性来训练相关的参数

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

5.5 ELman网络

与前馈神经网络不同,递归神经网络允许网络中出现环境结构,从而可以让一些神经元的输出反馈回来违输入信号。

Elman网络是最常用的递归神经网络之一,其结构如图所示

在这里插入图片描述

5.6 Boltzmann机

神经网络中有一类模型是为网络状态定义一个“能量”(energy),能量最小化时网络达到理想状态,而网络的训练就是在最小化这个能量函数,Boltzmann机就是一种“基于能量的模型”(energy-based model),常见结构如图所示

在这里插入图片描述

其神经元分为两层:

  • 显层:用于表示数据的输入与输出

  • 隐层:被理解为数据的内在表达

6 深度学习

深度模型,顾名思义就是更深的神经网络。然而,多隐层神经网络难以直接用经典算法(例如标准BP算法)进行训练,因为误差在多隐层内逆传播时,往往会“发散”(diverge)而不能收敛到稳定状态。

  • 无监督逐层训练是多隐层网络训练的有效手段,其基本思想是每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,而本层隐结点的输出作为下一层的输入,这称为“预训练”。在预训练完成后,再对整个网络进行“微调”训练。

  • 另一种节省训练开销的策略是权共享,即让一组神经元使用相同的连接权。这个策略在CNN中发挥了重要的作用。

深度学习可以理解为“特征学习”或“表示学习”。特征的好坏对泛化性能有至关重要的作用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值