0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

BP神经网络的概念

新机器视觉 来源:新机器视觉 2020-09-24 11:51 次阅读

最近学习BP神经网络,网上文章比较参差不齐,对于初学者还是很困惑,本文做一下笔记和总结,方便以后阅读学习。

一、BP神经网络的概念

BP神经网络是一种多层的前馈神经网络,其主要的特点是:信号是前向传播的,而误差是反向传播的。具体来说,对于如下的只含一个隐层的神经网络模型:输入向量应为n个特征

BP神经网络的过程主要分为两个阶段,第一阶段是信号的前向传播,从输入层经过隐含层,最后到达输出层;第二阶段是误差的反向传播,从输出层到隐含层,最后到输入层,依次调节隐含层到输出层的权重和偏置,输入层到隐含层的权重和偏置。

1. 神经元:神经元,或称神经单元/神经节点,是神经网络基本的计算单元,其计算函数称为激活函数(activation function),用于在神经网络中引入非线性因素,可选择的激活函数有:Sigmoid函数、双曲正切函数(tanh)、ReLu函数(Rectified Linear Units),softmax等。

1.1 Sigmoid函数,也就是logistic函数,对于任意输入,它的输出范围都是(0,1)。公式如下:

Sigmoid的函数图如上所示,很像平滑版的阶跃函数。但是,sigmoid 有很多好处,例如:

(1)它是非线性的

(2)不同于二值化输出,sigmoid 可以输出0到 1 之间的任意值。对,跟你猜的一样,这可以用来表示概率值。

( 3)与 2 相关,sigmoid 的输出值在一个范围内,这意味着它不会输出无穷大的数。但是,sigmoid 激活函数并不完美: 梯度消失。如前面的图片所示,当输入值 z 趋近负无穷时,sigmoid 函数的输出几乎为0 . 相反,当输入 z 趋近正无穷时,输出值几乎为 1 . 那么这意味着什么?在这两个极端情况下,对应的梯度很小,甚至消失了。梯度消失在深度学习中是一个十分重要的问题,我们在深度网络中加了很多层这样的非线性激活函数,这样的话,即使第一层的参数有很大的变化,也不会对输出有太大的影响。换句话讲,就是网络不再学习了,通常训练模型的过程会变得越来越慢,尤其是使用梯度下降算法时。

1.2 Tanh函数

Tanh 或双曲正切是另一个深度神经网络中常用的激活函数。类似于 sigmoid 函数,它也将输入转化到良好的输出范围内。具体点说就是对于任意输入,tanh 将会产生一个介于-1 与 1 之间的值。

Tanh函数图

如前面提及的,tanh 激活函数有点像 sigmoid 函数。非线性且输出在某一范围,此处为(-1, 1)。不必意外,它也有跟 sigmoid 一样的缺点。从数学表达式就可以看出来,它也有梯度消失的问题,以及也需要进行开销巨大的指数运算。

1.3

ReLU

终于讲到了 Relu,人们起初并不觉得它的效果会好过 sigmoid 和 tanh。但是,实战中它确实做到了。事实上,cs231n 课程甚至指出,应该默认使用 Relu 函数。

ReLU 从数学表达式来看,运算十分高效。对于某一输入,当它小于0时,输出为0,否则不变。下面是 ReLU 的函数表达式。Relu(z) = max(0,z)

那么你可能会问,「它是线性函数吧?为何我们说它是非线性函数?」

在线代中,线性函数就是两个向量空间进行向量加和标量乘的映射。

给定上面的定义,我们知道 max(0, x)是一个分段线性函数。之所以说是分段线性,是因为它在(−∞, 0]或[0,+∞)上符合线性函数的定义。但是在整个定义域上并不满足线性函数的定义。例如f(−1)+ f(1)≠f (0)

所以 Relu 就是一个非线性激活函数且有良好的数学性质,并且比 sigmoid 和 tanh 都运算得快。除此以外,Relu 还因避免了梯度消失问题而闻名。然而,ReLU 有一个致命缺点,叫「ReLU 坏死」。ReLu 坏死是指网络中的神经元由于无法在正向传播中起作用而永久死亡的现象。

更确切地说,当神经元在向前传递中激活函数输出为零时,就会出现这个问题,导致它的权值将得到零梯度。因此,当我们进行反向传播时,神经元的权重将永远不会被更新,而特定的神经元将永远不会被激活。

还有件事值得一提。你可能注意到,不像 sigmoid 和 tanh,Relu 并未限定输出范围。这通常会成为一个很大的问题,它可能在另一个深度学习模型如递归神经网络(RNN)中成为麻烦。具体而言,由 ReLU 生成的无界值可能使 RNN 内的计算在没有合理的权重的情况下发生数值爆炸。因此反向传播期间权重在错误方向上的轻微变化都会在正向传递过程中显著放大激活值,如此一来学习过程可能就非常不稳定。我会尝试在下一篇博客文章中详细介绍这一点。(摘自https://my.oschina.net/amui/blog/1633904)

1.4 softmax简介

Softmax回归模型是logistic回归模型在多分类问题上的推广,在多分类问题中,待分类的类别数量大于2,且类别之间互斥。比如我们的网络要完成的功能是识别0-9这10个手写数字,若最后一层的输出为[0,1,0, 0, 0, 0, 0, 0, 0, 0],则表明我们网络的识别结果为数字1。

Softmax的公式为

,可以直观看出如果某一个zj大过其他z,那这个映射的分量就逼近于1,其他就逼近于0,并且对所有输入数据进行归一化。

2.权重:

3.偏置

偏置单元(bias unit),在有些资料里也称为偏置项(bias term)或者截距项(intercept term),它其实就是函数的截距,与线性方程 y=wx+b 中的 b 的意义是一致的。在 y=wx+b中,b表示函数在y轴上的截距,控制着函数偏离原点的距离,其实在神经网络中的偏置单元也是类似的作用。

因此,神经网络的参数也可以表示为:(W, b),其中W表示参数矩阵,b表示偏置项或截距项。

2.反向传播调节权重和偏置

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4572

    浏览量

    98714
  • 函数
    +关注

    关注

    3

    文章

    3865

    浏览量

    61307

原文标题:一文浅谈神经网络(非常适合初学者)

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    BP神经网络算法的基本流程

    训练经过约50次左右迭代,在训练集上已经能达到99%的正确率,在测试集上的正确率为90.03%,单纯的BP神经网络能够提升的空间不大了,但kaggle上已经有人有卷积神经网络在测试集达到了99.3%的准确率。
    发表于 03-20 09:58 364次阅读
    <b class='flag-5'>BP</b><b class='flag-5'>神经网络</b>算法的基本流程

    人工神经网络bp神经网络的区别

    人工神经网络bp神经网络的区别  人工神经网络(Artificial Neural Network, ANN)是一种模仿人脑神经元网络结构
    的头像 发表于 08-22 16:45 3425次阅读

    卷积神经网络和深度神经网络的优缺点 卷积神经网络和深度神经网络的区别

    深度神经网络是一种基于神经网络的机器学习算法,其主要特点是由多层神经元构成,可以根据数据自动调整神经元之间的权重,从而实现对大规模数据进行预测和分类。卷积
    发表于 08-21 17:07 2309次阅读

    卷积神经网络的介绍 什么是卷积神经网络算法

    卷积神经网络的介绍 什么是卷积神经网络算法 卷积神经网络涉及的关键技术 卷积神经网络(Convolutional Neural Network,CNN)是一种用于图像分类、物体识别、语
    的头像 发表于 08-21 16:49 1423次阅读

    卷积神经网络的基本原理 卷积神经网络发展 卷积神经网络三大特点

    卷积神经网络的基本原理 卷积神经网络发展历程 卷积神经网络三大特点  卷积神经网络的基本原理 卷积神经网络(Convolutional Ne
    的头像 发表于 08-21 16:49 1435次阅读

    卷积神经网络模型原理 卷积神经网络模型结构

    数据的不同方面,从而获得预测和最终的表​​现。本文将提供有关卷积神经网络模型的工作原理和结构的详细信息,包括其在图像、语音和自然语言处理等不同领域的应用。 卷积神经网络的工作原理: 卷积神经网络的核心
    的头像 发表于 08-21 16:41 659次阅读

    卷积神经网络的应用 卷积神经网络通常用来处理什么

    卷积神经网络的应用 卷积神经网络通常用来处理什么 卷积神经网络(Convolutional Neural Network,简称CNN)是一种在神经网络领域内广泛应用的
    的头像 发表于 08-21 16:41 3974次阅读

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法 卷积神经网络(Convolutional Neural Network,CNN)是一种基于深度学习的人工
    的头像 发表于 08-17 16:30 913次阅读

    什么是神经网络?为什么说神经网络很重要?神经网络如何工作?

    神经网络是一个具有相连节点层的计算模型,其分层结构与大脑中的神经元网络结构相似。神经网络可通过数据进行学习,因此,可训练其识别模式、对数据分类和预测未来事件。
    的头像 发表于 07-26 18:28 1947次阅读
    什么是<b class='flag-5'>神经网络</b>?为什么说<b class='flag-5'>神经网络</b>很重要?<b class='flag-5'>神经网络</b>如何工作?

    Matlab RBF神经网络及其实例

    RBF神经网络BP神经网络的区别就在于训练方法上面:RBF的隐含层与输入层之间的连接权值不是随机确定的,是有一种固定算式的。
    的头像 发表于 07-19 17:34 912次阅读
    Matlab RBF<b class='flag-5'>神经网络</b>及其实例

    基于BP神经网络的PID控制器之锅炉蒸汽压力系统

      摘要:锅炉蒸汽压力的特性导致常规的PID控制方法不具备自适应能力,难以满足系统要求,因此,设计了基于BP神经网络PID的锅炉蒸汽压力控制系统。以一个二阶含滞后环节的锅炉蒸汽压力数学模型为被控对象
    发表于 07-19 14:25 1次下载

    bp神经网络的原理 用BP神经网络去识别图片上的字符

      摘 要  本文主要讲述了如何用BP神经网络去识别图片上的字符。该系统主要处理晶振表面字符的识别。在识别之前要对图像进行一系列的处理,即图像的预处理。预处理主要包含,二值化、锐化、噪声去除、字符
    发表于 07-18 17:20 1次下载

    bp神经网络的原理 基于BP神经网络的人口预测

    数据, 在灰色预测的基础上, 引入BP神经网络模型, 建立了中国人口增长的GM(1,1)和BP神经网络组合模型, 并由此对中国人口增长的中短期和长期趋势做出预测。  我们通过输入原始数
    发表于 07-18 15:19 0次下载

    神经网络概念和应用

    神经网络的应用场景自然非常多样。笔者在这里选择一部分应用场景为大家做简要的介绍,更多的还是期待我们共同发现和探索。
    发表于 05-16 09:27 522次阅读

    三个最流行神经网络

    在本文中,我们将了解深度神经网络的基础知识和三个最流行神经网络:多层神经网络(MLP),卷积神经网络(CNN)和递归神经网络(RNN)。
    发表于 05-15 14:19 1174次阅读
    三个最流行<b class='flag-5'>神经网络</b>