前向传播(Forward Propagation)与反向传播(Back Propagation)举例

1.神经网络

神经网络,又称为人工神经网络(ANN)或模拟神经网络(SNN),是深度学习算法的核心,是模仿生物神经元相互传递信号的方式,主要包含一个输入层、一个或多个隐藏层、一个输出层,每个神经元结点连接到另一个结点,并带有关联的权重和阀值。前向传播(Forward Propagation)指的是神经网络从左到右按顺序运行,一直运行至最后一层;反向传播(Back Propagation)根据前向传播从左到右运行的结果,由于输出的结果与期望的实际值存在误差,那么须对里面的权重和偏移量更新,减少这种误差的存在。

在这里插入图片描述

2. 通过例子来展示前项传播与反向传播计算过程

如图这是一个简单的神经网络,输入层有两个单元,隐藏层有两个单元,输出层有两个单元。w1,w2,w3……w8代表各自的权重,b为偏移量。h1为单个神经元,在一个单元内发生了加权和,再通过激活函数压缩加权和,这里使用的是常见的Sigmoid函数

在这里插入图片描述

2.1前向传播(Forward Propagation)计算
从输入层到输出层,对神经网络从左到右依次计算,先得到sumh1再通过Sigmod函数计算outputh1加权值,再与w5、w6相乘加上偏移量b值,最终得出outputO1,同理得出outputO2,前项传播的计算相对直观,套公式直接得出结果。

在这里插入图片描述

2.2计算总误差,这里总误差就是损失函数(Loss function),用的是经典的均方误差(MSE),在这个例子中,我们计算设定的目标值是0.05和0.95,与前向传播输出的0.73492和0.77955存在一定的误差,根据MSE公式分别计算E1和E2相加得出最后总误差。

在这里插入图片描述

2.3反向传播(Back Propagation)计算
现在计算在w5对E1的贡献情况(请回看最前面例子的神经网络图),回归一下链式求导公式,根据链式求导公式,对链式每一个部分求导计算,根据梯度下降迭代定义,新的权重w5更新,为0.45187,同理,对w6、w7、w8进行更新,分别为0.55073、0.71056、0.81081(常见的y=ax+b,自变量x的变化引起y的变化,这里链式求导是将里面变化情况进行了进一步的分解,)

在这里插入图片描述
在这里插入图片描述

再次对w1、w2、w3、w4进行权重更新,这次链式求导会更长,对w1进行演示,这里总误差是由E1和E2构成,w1均受E1和E2的影响,因此分别进行计算,最后进行加总。
w1对E1的贡献

在这里插入图片描述

w1对E2的贡献

在这里插入图片描述

w1对E1和E2影响进行汇总,梯度下降迭代更新w1在这里插入图片描述
2.4计算完所有新权重w,需要用这些新权重更新所有旧权重,权重更新一次,一个反向传播就完成了。再次基于前向传播,计算新的输出值,计算总误差,再次更新权重,一直持续到损失值收敛到最小值。
理解反向传播3个基本关键点1.神经网络基本构造和计算;2.理解梯度下降,梯度迭代是如何定义,以及为什么要这样定义 3.理解反向传播中链式求导和梯度下降迭代关系,线性回归其实可以看成是一个简化版的神经网络
  • 12
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
传播算法(forward propagation)和反向传播算法(backpropagation)都是神经网络中常用的算法。 传播算法是指通过神经网络的输入层,逐层往后进行计算,最终得到网络输出的过程。在这个过程中,每个神经元都会接收到上一层的输出,并将其与自身的权重进行运算,再通过激活函数进行处理,最终得到该神经元的输出,作为下一层神经元的输入。这样一直进行到输出层,得到神经网络的输出。 反向传播算法是指通过计算误差函数对神经网络中每个参数的梯度,然后根据梯度下降的方法来更新参数,从而使误差函数最小化的过程。在这个过程中,我们首先通过传播算法得到神经网络的输出,然后将输出与真实标签比较,计算误差,并通过误差反向传播的方式,计算每个参数对误差的贡献,最终利用梯度下降法来更新参数。 相同点: - 传播反向传播都是神经网络训练中必不可少的步骤。 - 两者都是通过对神经网络中每个参数的计算来不断修正参数,从而使神经网络的输出更接近真实标签。 不同点: - 传播是从输入层到输出层的一种单向传递,而反向传播是从误差反向传递回输入层,进行梯度计算和参数更新。 - 传播是在训练过程中每次计算神经网络输出时都会执行的,而反向传播仅在训练时进行,用于计算参数梯度和更新参数。 - 传播的计算速度比反向传播快,因为传播只需要单向传递计算,而反向传播需要进行梯度计算和参数更新,计算量更大。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值