• 神经网络前向传播过程,神经网络反向传播


    正向传播反向传播是什么?

    题主问的应该是神经网络中的问题。正向传播是指数据从X传入到神经网络,经过各个隐藏层得到最终损失的过程。

    反向传播主要是针对神经网络优化的过程中进行,在L端计算总的损失函数,然后根据梯度递减公式,逐层的向前反馈,形成反向传播机制,可以优化参数。

    谷歌人工智能写作项目:神经网络伪原创

    神经网络中的前向和后向算法

    神经网络中的前向和后向算法看了一段时间的深度网络模型,也在tf和theano上都跑了一些模型,但是感觉没有潜下去,对很多东西的理解都只停留在“这个是干什么的”层次上面好文案

    昨天在和小老师一起看一篇文章的时候,就被问到RNN里面的后向传播算法具体是怎么推。当时心里觉得BP算法其实很熟悉啊,然后在推导的过程中就一脸懵逼了。

    于是又去网上翻了翻相关内容,自己走了一遍,准备做个笔记,算是个交代。准备一个神经网络模型,比如:其中,[i1,i2]代表输入层的两个结点,[h1,h2]代表隐藏层的两个结点,[o1,o2]为输出。

    [b1,b2]为偏置项。连接每个结点之间的边已经在图中标出。

    来了解一下前向算法:前向算法的作用是计算输入层结点对隐藏层结点的影响,也就是说,把网络正向的走一遍:输入层—->隐藏层—->输出层计算每个结点对其下一层结点的影响。

    ??例如,我们要算结点h1的值,那么就是:是一个简单的加权求和。这里稍微说一下,偏置项和权重项的作用是类似的,不同之处在于权重项一般以乘法的形式体现,而偏置项以加法的形式体现。

    ??而在计算结点o1时,结点h1的输出不能简单的使用neth1的结果,必须要计算激活函数,激活函数,不是说要去激活什么,而是要指“激活的神经元的特征”通过函数保留并映射出来。

    以sigmoid函数为例,h1的输出:于是最后o1的输出结果,也就是整个网络的一个输出值是:按照上面的步骤计算出out02,则[outo1,outo2]就是整个网络第一次前向运算之后得到的结果。

    后向算法:??在实际情况中,因为是随机给定的权值,很大的可能(几乎是100%)得到的输出与实际结果之间的偏差非常的大,这个时候我们就需要比较我们的输出和实际结果之间的差异,将这个残差返回给整个网络,调整网络中的权重关系。

    这也是为什么我们在神经网络中需要后向传播的原因。

    其主要计算步骤如下:1.计算总误差2.隐藏层的权值更新在要更新每个边的权重之前,必须要知道这条边对最后输出结果的影响,可以用整体误差对w5求偏导求出:具体计算的时候,可以采用链式法则展开:在计算的时候一定要注意每个式子里面哪些自变量是什么,求导千万不要求错了。

    ??需要讲出来的一个地方是,在计算w1的权重时,Etotal中的两部分都需要对它进行求导,因为这条边在前向传播中对两个残差都有影响3.更新权重这一步里面就没什么东西了,直接根据学习率来更新权重:至此,一次正向+反向传播过程就到此为止,接下来只需要进行迭代,不断调整边的权重,修正网络的输出和实际结果之间的偏

  • 相关阅读:
    【从0实现React18】 (一) 项目初始化
    K8S:K8S对外服务之Ingress
    vue环境搭建
    UNext:基于 MLP 的快速医学图像分割网络
    java 基于Springboot+Vued的网上办公OA自动化系统 element
    图的学习,深度和广度遍历
    【HTML——三维立体隧道】(效果+代码)
    清晰梳理最全日志框架关系与日志配置-SpringBoot 2.7.2 实战基础
    基于轻量级卷积神经网络CNN开发构建打架斗殴识别分析系统
    初识mysql
  • 原文地址:https://blog.csdn.net/shirley67269/article/details/126744266