前向传播(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.理解反向传播中链式求导和梯度下降迭代关系,线性回归其实可以看成是一个简化版的神经网络

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年9月21日
下一篇 2023年9月21日

相关推荐