CNN误差反传时旋转卷积核的简明分析

由 demi 于 星期二, 2018-09-04 17:31 发表
cnn(卷积神经网络)的误差反传(error back propagation)中有一个非常关键的的步骤就是将某个卷积(convolve)层的误差传到前一层的池化(pool)层上,因为在cnn中是2d反传,与传统神经网络中的1d反传有点细节上的不同,下面通过一个简单的例子来详细分解一下这个反传步骤。
假设在一个cnn网络中,p代表某个池化层,k代表卷积核,c代表卷基层,首先来看一下前向(feed forward)计算,从一个池化层经过与卷积核(kernel)的运算得到卷积层:
将前向计算的步骤进行分解,可以得到以下公式:
下面根据这个前向计算的步骤来分解出反向传播的步骤:
首先要确定误差传播的目的地,从deltac到deltap,所以先从deltap1开始分析
从前面的前向计算过程中可以找出p1参与了c中哪些元素的计算,并且可以根据对应的前向计算得出反向传播的计算公式:
依次类推,还有如下公式:
对于p2
对于p3
对于p4
对于p5
一直可以推到p9
总结这9个反向传播的公式到一起:
进一步可以发现,这9个公式可以用如下的卷积过程来实现:
至此,从计算的细节上解释了为什么反向传播的时候要把卷积核旋转180°,并采用full的形式来进行卷积运算。
(注:上文所说的“卷积”被认为是一种不会180°旋转第二个因子的的计算过程,实际上matlab中的的conv2(a,b)会自动180°旋转b,换句话说,在matlab中实现这个步骤的时候不用提前旋转,留给conv2函数自行旋转即可)
本文转自:csdn - zy3381,转载此文目的在于传递更多信息,版权归原作者所有。
原文链接:https://blog.csdn.net/zy3381/article/details/44409535

如何解开机密码
接地电阻的间接测量法
华为荣耀V9将发布,最痛苦的不是友商而是华为Mate9用户
可编程逻辑控制器使用哪些软件语言?
紫外线消毒在家用净水器中的应用分析
CNN误差反传时旋转卷积核的简明分析
CPU的计算能力是怎么来的?开关如何变成的CPU?
跌宕起伏的40年,世界杯直播与通信技术的不解情缘
智能制造是制造业转型升级主攻方向
SAFE Identity为医疗保健行业引入IoMT认证
并联和串联基准电压源的工作原理
信号链设计器的各项特性演示介绍
接线基础知识:单极与双极
苹果14苹果plus低调降价 满4000减250元
锂离子电池的结构与工作原理
“迷雾”不迷路,助力雾天安全驾驶!艾睿车载红外热成像系统IR-Pilot
像素传感器将会有成绩?
老陆:合宙的价值从哪里来?从更能满足客户的需求里来
职场“内卷”利器?华为云这款轻量应用服务器助力开发者效率翻倍
为什么现在的笔记本越做越像手机?