斋藤康毅5-误差反向传播法

误差反向传播法----一个能够高效计算权重参数的梯度的方法
可以通过数学式和计算图来理解

5.1计算图


从左向右计算,计算结果从左向右传递,称为正向传播

    5.1.2局部计算

计算图的特征是可以传递“局部计算”获得最终结果。而对于全局发生了什么,局部并不关心


计算图可以集中精力于局部计算,无论全局的计算有多么复杂,都可以传递局部计算来获得复杂全局的结果。

    5.1.3为什么用计算图解题

1.可以通过局部计算简化复杂的全局
2.可以保存中间计算结果
3.可以通过反向传播高效计算导数


“支付金额“关于苹果的价格的导数”的值是2.2。这意味着,如果苹果的价格上涨1日元,最终的支付金额会增加2.2日元

5.2链式法则

反向传播传递局部导数的原理为链式法则
反向传播的例子:


如图所示,反向传播的计算顺序是,将信号E乘以节点的局部导数image,然后将结果传递给下一个节点
什么是链式法则?
类似复合函数求偏导数的过程
image
image
image

 5.2.3 链式法则和计算图


反向传播的计算顺序是,先将节点的输入信号乘以节点的局部导数(偏导数),然后再传递给下一个节点

5.3反向传播

5.3.1加法节点的反向传播

考虑z=x+y
image
反向传播将从上游传过来的导数:heavy_multiplication_x:1,输入的值会原封不动流向下一个节点

5.3.2乘法节点的反向传播

考虑z=xy
image
乘法的反向传播会将上游的值乘以正向传播时的输入信号的翻转值后传递给下游
正向传播时信号是x的话,反向传播时则是y;正向传播时信号是y的话,反向传播时则是x

5.3激活函数层的实现

5.5.1ReLu层

激活函数relu表示
image
求导
image
正向传播x>0,那么反向传播会将上游的值直接传给下游。
正向传播x<=0,反向传播中传给下游的信号停在此处

5.5.2sigmoid层

sigmoid函数
image
计算图表示


通过反向传播的计算可得

5.6 Affine/softmax层的实现

5.6.1affine层

    神经网络的正向传播中,为了计算加权信号的总和,使用了矩阵的乘积运算
    矩阵的乘积运算的要点是使对应维度的元素个数一致


    现在将这里进行的求矩阵的乘积与偏置的和的运算用计算图表示出来。

    现在我们来考虑计算图的反向传播,以矩阵为对象的反向传播,按矩阵的各个元素进行计算时,步骤和以标量为对象的计算图相同
image
    WT的T表示转置
image

5.7.1误差反向传播的全貌图