神经网络基础以及BP算法

1、人工神经网络

神经网络的定义:它是一种由神经元组成的并行互连的网络,构成的组织能模拟生物神经系统对真实世界物体做出交互反应。在机器学习讨论的神经网络,是一种神经网络学习。
神经元:在生物中,每个神经元会与其他神经元相连,当该神经元兴奋,就会向其他神经元发送化学物质,进而改变这些神经元的电位,当电位超过某个阈值时,就会被激活为行为状态,转而向其他神经元发送化学物质。
多层感知器神经元模型:一个神经元接受n个其他神经元传来的信号,这些信号通过n个带权重连接通道进行传递(也就是该神经元与输入之间的权重向量),首先将该神经元接收到的输入与阈值比较,然后通过激活函数处理(处理比较的结果),从而产生神经元的输出。把多个这样的神经元按照一定层次结构连接起来就是神经网络(并联和级联)。其实就是一个包含很多参数的数学模型。

1.1 感知器与多层网络

1)感知器以及权重和阈值统一:由两层神经元组成,输入层接受外界输入信号,将其传递给输出层。当给定训练数据集,权重和阈值可通过学习得到。阈值可以看做输入中固定为-1的值所对应的那个权重(将其添加到权重向量中,-1表示求和后总输入减去阈值,开始为初始阈值,不断学习优化),这时权重和阈值的学习便可统一为权重的学习。
   学习规则(权重更新):通过当前感知器的输出与样本标签,样本输入,学习率对连接权重进行微调。若预测准确则不再调整,否则根据错误的程度进行调整。因为只有一层功能神经元,学习能力有限,可解决与或非这类问题,解决线性可分的问题。若要解决非线性可分的问题,则要考虑多层功能神经元的神经网络(含隐层)。
在这里插入图片描述
(2)多层前馈神经网络:多层级结构,每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。输入层:接受外界输入(不进行函数处理),隐层和输出层包含功能神经元,对传递的信号进行加工,最后由输出层神经元输出。神经网络的学习,就是根据训练数据来调整神经元之间的连接权,以及每个功能神经元的阈值;换言之,学习到的东西都蕴藏在这些里面。
在这里插入图片描述

1.2误差逆传播算法

   误差逆传播BP算法是目前最成功的的神经网络学习算法。不仅可用于多层前馈神经网络,还可以用于其他类型的神经网络。
   输入d个神经元,隐层q个神经元,输出l个神经元,则需要确定的参数可知:有两部分权值,两部分阈值。
   BP算法学习规则:采用广义的感知器学习规则对参数进行更新,但是具体的更新方法就不一样了,它是基于梯度下降策略的,在得到误差时,以目标的负梯度方向对参数进行调整,同样也有学习速率。学习速率控制了算法每一轮迭代中的更新步长,若太大则容易震荡,太小则收敛速度又会过慢。最后我们得到各个权重和阈值的更新公式。
   BP算法工作流程:(1)输入样本提供给输入层神经元,然后逐层信号传递,直到产生输出结果;(2)计算输出层的误差,计算输出层神经元的梯度项,再将误差逆向传播至隐层神经元,计算隐层神经元的梯度项,根据这些对连接权和阈值进行调整。该过程迭代进行,直到达到终止条件。
   累积误差逆传播:它不是针对单个样例,而是一口气读取整个训练集,在对参数进行更新。但是很多任务中,累计误差降到一定程度就会变得很慢,这时标准BP算法往往较快得到好的解。
   过拟合防止:过拟合也就是训练误差持续降低,但测试误差却可能上升。有两种策略防止过拟合(1)早停:当刚出现过拟合时,就停止训练,返回具有最小验证集误差的连接权和阈值。(2)正则化:在误差目标函数中,增加一个描述网络复杂度的部分,比如连接权(包含阈值的)的平方和。正则化系数λ(0,1)用于平衡经验误差和网络复杂度这两项,通常用交叉验证法来估计。
   正则化原理:增加那个平方和部分后,训练将偏好较小的连接权和阈值,使得网络输出更光滑,缓解过拟合。下面是正则化的累积误差目标函数。
在这里插入图片描述
下面是神经网络的一些基本概念和BP算法的工作过程
(1)基本概念
在这里插入图片描述
(2)BP算法
在这里插入图片描述
注意:上面介绍的标准BP算法,每次仅针对一个训练样本更新各个参数。

1.3 全局最小和局部极小

   神经网络的训练过程,是一个参数寻优的过程,就是在参数空间中,寻找一组最优参数使得误差E最小。我们要解决的问题时,采用何种策略跳出局部最小,进一步接近全局最小。有以下几种方法
   (1)利用标准方法训练多组不同参数初始化的神经网络,取其中误差最小的解作为最终参数,会更接近全局最小。
   (2)使用模拟退火技术,每一步以一定概率接受比当前解更差的解,有助于跳出全局最小,在每次迭代中,接受次优解的概率随时间的推移逐渐降低,保证算法稳定。
   (3)使用随机梯度下降,在计算梯度时加入了随机因素,那么即便陷入了局部极小点,计算的梯度仍可能不为0。这样有机会跳出局部极小,继续进行搜索。
   (4)遗传算法也常用来训练神经网络逼近全局最小。

1.4 深度学习

   为什么是深度学习?深度学习这种复杂模型,参数多,复杂度高,学习任务更复杂,一般情况下训练效率低,易陷入过拟合。但是随着计算能力的提升,训练数据的大幅增加,可降低过拟合的风险。深度学习由此受到广泛的关注。
   存在的问题:典型的深度学习模型就是很深层的神经网络,也就是增加隐层的数目,这样不仅增加了拥有激活函数的神经元数目,还增加了激活函数嵌套的层数。但是多隐层神经网络难以用经典算法(如BP算法)进行训练,因为误差在多隐层内逆向传播时,往往会发散而不能收敛到稳定状态。
   学习训练手段
   (1)无监督逐层训练:基本思想就是分组,每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,本层隐结点的输出作为下一层隐结点的输入。这种每次训练一层的称为“预训练”;预训练完成后,再对整个网络进行微调训练。例如在深度信念网络DBN中,预训练结束后,再利用BP算法训练整个网络。
这种“预训练+微调”的方法,就是将大量参数分组,对每组先找出局部看来比较好的设置,然后基于这些局部较优的结果联合起来进行全局寻优。
   (2)权共享:就是让一组神经元使用相同的连接权。在卷积神经网络CNN中发挥了重要作用。CNN可以用BP算法进行训练,但在训练中,无论是卷积层还是采样层,每一组神经元都是用相同的连接权,这样就大幅度减少了需要训练的参数,这样每一层只需一个权重向量,而不是矩阵,大大减少了训练的参数。
   CNN:输入层(进行卷积)—卷积层(进行采样)—采样层(进行卷积)—卷积层—连接层—输出层。
   CNN复合了多个卷积层和采样层对输入信号进行加工,然后在连接层实现与输出层之间的映射。
   卷积:通过卷积滤波器提取多个特征映射,形成卷积层。
   卷积层:包含了多个特征映射,这些特征映射是由多个神经元构成的平面阵列。
   采样层:在采样层基于局部相关性原理进行亚采样,减少数据量同时也保留有用信息。
   复合卷积层和采样层:将原始图像映射为120维特征向量,最后通过一个由84个神经元组成的连接层和输出层连接完成识别任务。这种自身产生好特征的学习很有前景。
   注意:我们可以把网络中若干层处理都看作是在进行特征表示,只把最后一层处理看作是进行分类,则这就是一个简单的分类模型。

1.5 一些激活函数

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值