卷积神经网络反向传播直观理解


前言

刚开始接触机器学习或者深度学习的时候,学到反向传播的时候总是感觉很抽象,看了知乎和一些教材后还是感觉不够直观,后来看到一处介绍后豁然开朗,在此做下笔记方便查阅,全文不涉及公式推导,仅作为直观理解,待理解后再去推导公式就很轻松了。文章开头有个正向传播的举例,其目的是为了和下文的反向传播做对比。文中的图像来源于《深度学习入门-基于Python的理论与实现》。


目录

前言

一、正向传播

二、反向传播

1.加法节点的反向传播

2.乘法节点的反向传播(主要使用)

3.回到苹果例子

总结

参考文献


一、正向传播

正向传播很好理解,即从神经网络的输入层(左边),依次计算到输出层(右边)。注意:本文不再赘述链式法则等基础知识。

举个例子(以书中原文为例,下文同理):太郎在超市买了2 个100 日元一个的苹果,消费税是10%,请计算支付金额。

我们对此作出传播图有:

可得支付金额为:100*2*1.1=220(円)


二、反向传播

如图所示,反向传播的计算顺序是,将信号E乘以节点的局部导数\frac{\partial y}{\partial x},然后将结果传递给下一个节点。这里所说的局部导数是指正向传播中y=f(x)的导数,也就是y 关于x的导数\frac{\partial y}{\partial x}。比如,假设y=f(x)=x^{2},则局部导数为x=2x。把这个局部导数\frac{\partial y}{\partial x}=2x乘以上游传过来的值(本例中为E),然后传递给前面的节点。


1.加法节点的反向传播

z=x+y举例:

       \frac{\partial z}{\partial x}=1

      \frac{\partial z}{\partial y}=1

有:


2.乘法节点的反向传播(主要使用)

z=xy为例:

      \frac{\partial z}{\partial x}=y

      \frac{\partial z}{\partial y}=x

有:


3.回到苹果例子

如前所述,乘法节点的反向传播会将输入信号翻转后传给下游。从上图可知,苹果的价格的导数是2.2,苹果的个数的导数是110,消费税的导数是200。这可以解释为,如果消费税和苹果的价格增加相同的值,则消费税将对最终价格产生200 倍大小的影响,苹果的价格将产生2.2 倍大小的影响。不过,因为这个例子中消费税和苹果的价格的量纲不同,所以才形成了这样的结果(消费税的1 是100%,苹果的价格的1 是1 日元)。


总结

对于以乘法构成的神经网络,方向传播的直观理解就是求偏导数。若是两输入的,则是交换传递参数。对于多输入则按到链式法则来依次求偏导即可


参考文献

[1]斋藤康毅.深度学习入门-基于Python的理论与实现[M].中国工信出版集团:北京,2019.6:121-135.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值