首页 > 其他 > 详细

反向求导

时间:2021-09-01 20:53:03      阅读:18      评论:0      收藏:0      [点我收藏+]

1.2 神经网络的反向求导

在上一节中, 我们大致对神经网络的梯度更新有了了解,其中最核心的部分就是求出损失函数对权重 ????????wijl 的导数。由于网上大多数资料都是生搬硬套,因此我们以计算 ??1W1 的导数为例,对整个反向求导过程进行细致的剖析。如下图所示:

技术分享图片

其中,????????wjkl 表示从第 ??l 层的第 ??j 个节点到第 ??+1l+1 层中的第 ??k 个节点的权重,根据前向传播的计算我们可以得到:

 

????????(??311??211+??321??212)??111??1,????????????111=(??311??211+??321??212)??1;????????(??311??211+??321??212)??121??2,????????????121=(??311??211+??321??212)??2????????(??311??221+??321??222)??112??1,????????????112=(??311??221+??321??222)??1;????????(??311??221+??321??222)??122??1,????????????122=(??311??221+??321??222)??2????????(??311??231+??321??232)??113??1,????????????113=(??311??231+??321??232)??1;????????(??311??231+??321??232)??123??2,????????????123=(??311??231+??321??232)??2yout~(w113w112+w213w122)w111x1,?yout?w111=(w113w112+w213w122)x1;yout~(w113w112+w213w122)w211x2,?yout?w211=(w113w112+w213w122)x2yout~(w113w212+w213w222)w121x1,?yout?w121=(w113w212+w213w222)x1;yout~(w113w212+w213w222)w221x1,?yout?w221=(w113w212+w213w222)x2yout~(w113w312+w213w322)w131x1,?yout?w131=(w113w312+w213w322)x1;yout~(w113w312+w213w322)w231x2,?yout?w231=(w113w312+w213w322)x2

 

用矩阵表示为:

 

??????1=?????????????????????111????????????112????????????113????????????121????????????122????????????123?????????=([??311??211+??321??212??311??221+??321??222??311??221+??321??232][??1??2])??=(??3??2??)???L?W1=[?yout?w111?yout?w211?yout?w121?yout?w221?yout?w131?yout?w231]=([w113w112+w213w122w113w212+w213w222w113w212+w213w322]⊙[x1x2])T=(W3W2⊙X)T

 

因此,整个反向传播的过程如下:

首先计算:??????3=????????????(????????????3)??=????????????[????????????311,????????????312]??=????????????(??2)???L?W3=?L?yout⊙(?yout?W3)T=?L?yout⊙[?yout?w113,?yout?w123]T=?L?yout⊙(Z2)T

然后计算:??????2=????????????(????????????2???2???2)??=????????????(????????????2??1)??=????????????(??3??1)???L?W2=?L?yout(?yout?Z2⊙?Z2?W2)T=?L?yout(?yout?Z2⊙Z1)T=?L?yout(W3⊙Z1)T

最后计算:??????1=????????????(????????????2???2???1???1???1)??=??????1(??3??2??)???L?W1=?L?yout(?yout?Z2?Z2?Z1⊙?Z1?W1)T=?L?W1(W3W2⊙X)T

为了方便计算,反向传播通过使用计算图的形式在 Tensorflow,PyTorch 等深度学习框架中实现,将上述过程绘制成计算图如下:

技术分享图片

根据计算图,可以轻而易举地计算出损失函数对每个变量的导数。

反向求导

原文:https://www.cnblogs.com/miutic/p/15207507.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!