首页 理论教育反向传播的路径和权值变化

反向传播的路径和权值变化

【摘要】:首先计算w5这一路径,这里需要一个方法来计算w5对总误差的影响,刚好导数的意义是描述参数变化对函数造成影响的变化率,或者叫斜率。本例中我们把学习率η设定为50%,也就是0.5,于是w5的权值将被调整为我们用类似的方法把所有的权值都调整一遍:得到如下计算结果:w5值变化: 0.3 =〉 0.257 722 924 637 365 85。w6值变化: 0.35 =〉 0.307 509 195 210 186 9。w7值变化: 0.4 =〉 0.413 242 963 882 813。w8值变化: 0.45 =〉 0.463 309 912 957 708 74。w3值变化:0.15 =〉 0.14970092750954914。

现在我们从模型的右侧开始向左侧计算,目标是要使得总误差值变小,这个过程其实就是修正模型的过程。首先计算w5这一路径,这里需要一个方法来计算w5对总误差的影响,刚好导数的意义是描述参数变化对函数造成影响的变化率,或者叫斜率。所以我们想知道w5对总误差带来的变化率可以通过求w5的偏导来计算。然而单纯去算是算不出的,要使用链式法则来分解计算步骤(宏观上看这些中间变量都可以被约分约掉),下面我们就将这个问题分为等式(3)右侧的三部分去求解:

第一部分的输出对于总误差的影响,由于我们不关心o2的输出,所以o2相关的误差可设为0,然后利用求导公式就可以算出

在式(4)中代入之前的数据可以求得

第二部分,这里其实就是对于激活函数来说,o1输出对它的影响,由于激活函数是sigmoid,其求导公式推导如下:

由式(5)可以得到第二部分的值:

第三部分,w5对于线性方程的影响,其求导结果就是w5的斜率:

现在,按式(3)把三部分的结果值相乘,就可以求得w5对于总误差的影响:

根据w5对于总误差的影响,就可以对w5的权值做出调整。本例中我们把学习率η设定为50%,也就是0.5,于是w5的权值将被调整为

我们用类似的方法把所有的权值都调整一遍:

得到如下计算结果(“=〉”前后分别表示调整前、调整后的权值):

w5值变化: 0.3 =〉 0.257 722 924 637 365 85。

w6值变化: 0.35 =〉 0.307 509 195 210 186 9。

w7值变化: 0.4 =〉 0.413 242 963 882 813。

w8值变化: 0.45 =〉 0.463 309 912 957 708 74。

到目前为止,神经网络中一半路径的权值均已得到修正,其余w1、w2、w3和w4权值的修正,我们以w1为例,依然通过链式法则求偏导来计算w1对总误差的影响:(www.chuimin.cn)

然而式(6)里等号右侧第一部分描述的是h1节点对于总误差的影响,但由于h1是隐含层,无法直接求出。这时将问题再进行细分,可以看到模型中这个h1节点可以影响o1,也可以影响o2,所以这个过程可以看作h1对o1、o2的影响之和,于是我们可以这样计算:

式(7)等号右侧的第一部分其实又可以分为两个小部分,我们以计算o1为例。在计算的时候有一个技巧,o1输出对于Eo1

的影响其实就等于o1输出对于Etotal的影响,所以可以用之前算过的值直接代入;由于outo1是线性方程,h1对于outo1的影响就等于其斜率w5

其中,

o2的计算方法与o1相同,因此代入之前求得的值就可以求解第一部分:

第二部分就是对sigmoid函数求导。代入式(5)可以求得

第三部分是对线性函数求导:

此时将三部分结果值相乘,并加入学习率,最终求得

我们将其余的权重进行求解:

得到如下计算结果(“=〉”前后分别表示调整前、调整后的权值):

w1值变化:0.1 =〉 0.09955139126432372。

w3值变化:0.15 =〉 0.14970092750954914。

w2值变化:0.2 =〉 0.19946451178121935。

w4值变化:0.25 =〉 0.24964300785414623。