正向传播和反向传播演示示例

神经网路正向传播需要输入的值乘以权重,并且加上偏执值,再通过激活函数的值得到输出结果,反向传播过程,则是通过链式求导法则,通过与损失函数值比较进行权值更新。

正向传播

如图 ,计算图通过节点和箭头来表示。这里,“+”表示加法,变量 和 写在各自的箭头上。像这样,在计算图中,用节点表示计算,处理结果有序(本例中是从左到右)流动。这就是计算图的正向传播。
总结:
正向传播是:上层输入的值乘以权重,并且加上偏执值,再通过激活函数的值得到输出结果。
使用计算图,可以直观地把握计算过程。另外,这样也可以直观地求梯度。这里重要的是,梯度沿与正向传播相反的方向传播,这个反方向的传播称为反向传播。
在这里插入图片描述
在这里插入图片描述

链式求导法则

理解误差反向传播法的关键是链式法则。链式法则是复合函数的求导法则,其中复合函数是由多个函数构成的函数。

反向传播计算以此图为例:
在这里插入图片描述
前向传播过程为,输入层---->隐藏层----->输出层,
1.输入层---->隐藏层:
(1)隐藏层的输入(h1,h2):
在这里插入图片描述
(2)隐含层(h1,h2)的输出(使用sigmoid激活函数为例)
在这里插入图片描述
2.隐含层------>输出层:

(1)输出层(o1,o2)的输入:
在这里插入图片描述
(2)输出层(o1,o2)的输出:
在这里插入图片描述
反向传播:
计算总误差:
在这里插入图片描述
此例子有o1和o2两个输出,所以总误差是这两个输出误差之和:
在这里插入图片描述
隐含层---->输出层的权值(w5,w6,w7,w8)更新:
想知道w5,w6,w7,w8对整体误差产生了多少影响,可以用整体误差对w5,w6,w7,w8求偏导求出:

在这里插入图片描述
下图直观展示了误差如何进行反向传播:
在这里插入图片描述
w5:
在这里插入图片描述
w6:
在这里插入图片描述
w7:

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

向前每一层传播是相同的计算方法

输入层------>隐含层的权值(w1,w2,w3,w4)更新:
方法其实与隐含层------>输出层的差不多,但是隐含层---->输出层计算总误差对w5的偏导时,是从out(o1)------->net(o1)-------->w5。而在隐含层之间的权值更新时,是out(h1)------>net(h1)------>w1。
在这里插入图片描述
偏差计算公式:

在这里插入图片描述
w1:
在这里插入图片描述
w2:
在这里插入图片描述
w3:

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

引用:链接: link

扫描二维码关注公众号,回复: 15192829 查看本文章

猜你喜欢

转载自blog.csdn.net/dream_home8407/article/details/128492115