HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    神经网络反向传播的作用(神经网络 反向传播)

    发布时间:2023-04-21 21:44:07     稿源: 创意岭    阅读: 134        

    大家好!今天让创意岭的小编来大家介绍下关于神经网络反向传播的作用的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008

    本文目录:

    神经网络反向传播的作用(神经网络 反向传播)

    一、读懂反向传播算法(bp算法)

    反向传播算法可以说是神经网络最基础也是最重要的知识点。基本上所以的优化算法都是在反向传播算出梯度之后进行改进的。同时,也因为反向传播算法是一个递归的形式,一层一层的向后传播误差即可,很容易实现(这部分听不懂没关系,下面介绍)。不要被反向传播吓到,掌握其核心思想就很容易自己手推出来。

    我们知道神经网络都是有一个loss函数的。这个函数根据不同的任务有不同的定义方式,但是这个loss函数的目的就是计算出当前神经网络建模出来输出的数据和理想数据之间的距离。计算出loss之后,根据反向传播算法就可以更新网络中的各种参数以此使loss不断下降,即可使输出的数据更加理想。

    所以,现在的任务是,已知一个网络的loss之后,如何根据loss来更新参数呢?具体点即如何更新网络节点中的权重w和偏差b的值呢?

    这里我们采用的是全连接神经网络进行说明。

    要想把这个过程说清楚,首先需要将神经网络中各个参数用文字表达清楚。定义的就是w和b在网络中的准确位置。

    对于 表示的是神经网络中第 层第k个节点到神经网络中第 层第j个节点之间的权重。注意w的下标是首位表示的是节点后层节点的位置,末尾表示是前层节点的位置。理解这样的表达方式在后面的计算中会很好理解。

    同理,对于b的表示:

    b的表示相比于w要简单一些,符号 表示第l层网络在第j个节点的偏置。无论w还是b的表示,上标都是表示层数。并且 和 表示都是第l层网络第j个节点的参数。所以该节点的输出可以表示为:

    神经网络输出之后会经过一个激活函数,这用激活函数用 表示,则经过激活函数输出为:

    至此,根据上面符号 、 、 、 。我们可以对于神经网络里面每一个数据准确的表示了。

    给定一个损失函数之后,用 表示,说白了反向传播就是求∂C/∂w和∂C/∂b,然后将这个值乘以和对应的w,b进行相减就可以实现一次的参数更新了。为什么这样的操作就可以优化网络,减小loss值呢?

    来源于导数的概念和速度相关。∂C/∂w和∂C/∂b相当于loss值C相对于w和v变化的速度。如果∂C/∂w是正的,则增大w,C也会增大,如果希望C减小的话,应该减小w;并且∂C/∂w的绝对值越大,表示w对C的值影响越大,w稍微有一点变化,C就会有大幅变化。如果要优化C变小,w应该对应的减少多少呢?也没有一个确定的答案。这里通过变化的速度和学习率相乘作为一个减小的值。通过多轮迭代。最终是希望c达到最小点。而当函数落入最小值的时候,无论是局部最小还是全局最小,其周围一定是平滑的。所以此时∂C/∂w和∂C/∂b将会变得很小甚至为0,即参数不在更新了。当函数在局部最小点处参数不在更新出现梯度消失的问题时,目前也有各种trick进行解决。不是这里的重点。

    为了好说明,这里定义一个很简单的损失函数C:

    接下来就是有意思的阶段了。这里还是利用上一节中∂C/∂w和∂C/∂b的解释。如果我们想要求出∂C/∂w和∂C/∂b的值,即具体的 、 对C影响速率的值,我们找一个中间变量∂C/∂ 。因为我们知道:

    我们定义:

    当我们知道了 值之后,我们根据 式子可以很容易求出 。

    利用导数的链式法则:

    很容易推出来不是?同理可以求出:

    可以看出通过媒介 很容易求出∂C/∂w和∂C/∂b。那么我们现在来理解一下 到底是什么意思,以及如何求出来每一个l层j节点的 值。

    根据定义:

    可以看出来 就是 对于C的影响大小(联系之前说的导数和速率的关系)。而 是第 层第 个神经元未进过激活函数之前的输出。所以我们可以理解 为网络中第 层第 个神经元对loss的影响。所以很直观的看法就是我们先求出单个神经元对loss值得影响,然后再计算该神经元内部参数对于loss的影响。

    ok,如果我们已经理解了为什么要引入 变量以及如何利用该变量计算具体参数的梯度后,接下来我们就可以看看如何获得 值。反向传播的名字我想也就是通过计算 的方式而来的。是一层一层递归而来的。

    既然说是递归的方式,我们来思考一下 和 之间有什么关系,如果找到这个关系之后,我们就可以默认我们如果知道最后一层网络节点的 值,我们就可以获得倒数第二层网络节点的 值,倒数第三层,倒数第四层,……以此推类即可获得整个网络的每个节点的 值。至此我们的反向传播也基本完成了。

    所以最重要的有两点:

    先看问题1,直接根据求导的链式法则就可以找出两个的关系,具体公式如下,可以多看看手写一下,思路上也很简单。

    觉得这样的链式公式还是很直观的,如果不好理解,可以自己画一个神经网络图,连上节点与节点之间的线,标上参数,然后推一下应该就能理解了。

    这里的 都表示的未经过激活函数的神经元的输出。 表示激活函数。因为:

    所以:

    带入上式就可以得出:

    至此就找出了 和 之间的关系了。

    (还能简化,根据最开始我们定义的 )。

    理解起来就是网络中前面一层某一个神经元对于loss的影响与该层的后一层所有的神经元对loss的影响、该神经元的输出大小、该神经元与后一层神经元连接的权重有关系的,并且是一个累加的效应。这样的理解也是非常直观合乎常理的。

    现在万事具备,只差问题2了。即假设最后一层网络是L,最后一层 如何计算得出。最后一层的 值就像一个导火索,一旦有了开始,就可以利用我们之前推出来的: 公式进行反向传播了(反向传播还是很形象的不是?)。现在解决这个问题。这个问题就是和损失函数具体怎么定义有关系了。不过我们先不考虑C的具体形式,根据通用的链式法则我们可以得到:

    这里需要注意的是最后一层激活函数使用的是哪种。最后一层激活函数在计算某一个神经元的输出时可能会结合其他节点的输出来计算。比如softmax激活函数,其输出的是一个概率值【0,1】。输出大小就是结合输出所有的值。

    现在我们来考虑两个具体的损失函数,并且采用之前定义的均方误差损失函数 :

    求导为:

    因为sigmoid输出的值仅仅和输入的x值有关 。所以 当 时值为0.所以:

    根据上面,BP推导有三部曲,先求出 ,再根据 分别求出 、 。总结公式如下:

    启动上面反传的导火索是最后一层的 值,计算公式为:

    根据最后一层不同类型的激活函数不同对待。

    二、神经网络的前向与后向传播简单理解

    正向传播相关函数与概念理解

    sigmoid激活函数:

    产生的原因,将线性的结果非线性化,转化到0~1之间。

    计算公式:

    说明:x为变量

    Softmax函数

    产生原因将输出的各个元素为0~1之间的实数,这些元素全部加起来为1.

    计算公式:

    损失函数的一个类型,表达模型好坏的一个参数,越小越好:

    交叉熵:

    分类类别-logt 概率,多个输入,则分类类别-logt 概率的平均值

    上图为函数的曲线表示,已知t均小于1,所以t越大,logt越大,- logt越小,则接近于0。

    反向传播相关函数与概念理解

    反向传播发的关键是链式法则,链式法则是复合函数的求导法则,复合函数即多个函数构成的函数。

    反向传播算法简单来说就是采用前层神经元对后层神经元的影响大小*学习率来更新权重信息,新权重值=权重值-影响大小*学习率

    三、循环神经网络的反向传播

    可以采用MATLAB软件中的神经网络工具箱来实现BP神经网络算法。BP神经网络的学习过程由前向计算过程、误差计算和误差反向传播过程组成。双含隐层BP神经网络的MATLAB程序,由输入部分、计算部分、输出部分组成,其中输入部分包括网络参数与训练样本数据的输入、初始化权系、求输入输出模式各分量的平均值及标准差并作相应数据预处理、读入测试集样本数据并作相应数据预处理;计算部分包括正向计算、反向传播、计算各层权矩阵的增量、自适应和动量项修改各层权矩阵;输出部分包括显示网络最终状态及计算值与期望值之间的相对误差、输出测试集相应结果、显示训练,测试误差曲线。

    四、如何理解神经网络里面的反向传播算法

    就是利用了链式求导法则,从后往前,逐层计算cost关于该层参数的梯度。详细的退到可参见:

    以上就是关于神经网络反向传播的作用相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    图神经网络和神经网络的区别

    神经网络算法应用实例(神经网络算法应用实例有哪些)

    全国神经科医院排行榜(全国神经科医院排行榜最新)

    ipad画服装设计图app(ipad上画服装设计软件)

    无痕内衣品牌排行榜(无痕内衣品牌排行榜前十名)