CNN卷积核反传分析
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函数自行旋转即可)
CNN卷积核反传分析的更多相关文章
- CNN误差反传时旋转卷积核的简明分析(转)
CNN(卷积神经网络)的误差反传(error back propagation)中有一个非常关键的的步骤就是将某个卷积(Convolve)层的误差传到前一层的池化(Pool)层上,因为在CNN中是2D ...
- 极简反传(BP)神经网络
一.两层神经网络(感知机) import numpy as np '''极简两层反传(BP)神经网络''' # 样本 X = np.array([[0,0,1],[0,1,1],[1,0,1],[1, ...
- Caffe学习笔记(二):Caffe前传与反传、损失函数、调优
Caffe学习笔记(二):Caffe前传与反传.损失函数.调优 在caffe框架中,前传/反传(forward and backward)是一个网络中最重要的计算过程:损失函数(loss)是学习的驱动 ...
- nProtect APPGuard安卓反外挂分析
工具与环境: IDA7.0 JEB2.2.5 Nexus 5 Android 4.4 目录: 一:app简单分析与java层反编译 二: compatible.so反调试与反反调试 三: compat ...
- 6. webshell文件上传分析溯源
这道题也是借助大佬的帮助才成功,具体我们来看: 既然人家扫描发现后台目录有文件上传,我们也不能落后,顺便拿出了传说中的御剑,并进行一波扫描: 发现了几个比较有用的目录,特别是upload1.php跟u ...
- php---文件上传分析
文件上传: 先抄一段:预定义变量$_FILES数组有5个内容: $_FILES['userfile']['name']——客户端机器文件的原名称 $_FILES['userfi ...
- CNN卷积核计算
作者:十岁的小男孩 目录 单层卷积核计算 三维卷积核计算 Padding=Valid&&Same 总结
- Python学习---抽屉框架分析[点赞功能/文件上传分析]0317
点赞功能分析 前台传递过来新闻id[new_id]和session[session内有用户ID和用户之间的信息]到后台 后台News数据库内用户和新闻是多对多的关系,查看第三张表中的内容,判读用户Id ...
- CNN卷积核
一.卷积操作有两个问题: 1. 图像越来越小: 2. 图像边界信息丢失,即有些图像角落和边界的信息发挥作用较少.因此需要padding. 二.卷积核大小通常为奇数 1.一方面是为了方便same卷积pa ...
随机推荐
- shell编程第四天
- elasticsearch数据备份还原
elasticsearch数据备份还原 1.在浏览器中运行http://XXX.XXX.XXX.XXX:9200/_flush,确保索引数据能保存到硬盘中. 2.原数据的备份.主要是elasticse ...
- 在windows上安装redis并设置密码
在windows上安装redis Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案. Redis从它的许多竞争继承来的三个主要特点: Redi ...
- Codeforces.1028F.Make Symmetrical(结论 暴力)
题目链接 \(Description\) \(q\)次操作,每次给定点的坐标\((x,y)\),表示加入一个点\((x,y)\),或删除一个点\((x,y)\),或询问:至少需要在平面中加入多少个点, ...
- How to show color in CSS
转至:https://blog.csdn.net/CallMeQiuqiuqiu/article/details/54743459 http://www.w3school.com.cn/cssref/ ...
- BZOJ1897 : tank 坦克游戏
设$f[i][j][k]$表示坦克位于$(i,j)$,目前打了不超过$k$个位置的最大得分. 初始值$f[1][1][k]$为在$(1,1)$射程内最大$k$个位置的分数总和. 对于每次移动,会新增一 ...
- IDatabaseInitializer<TContext>接口研究
MSDN官方文档 DropCreateDatabaseIfModelChanges<TContext> 如果实体模型变化,那么重新创建数据库 DropCreateDatabaseAlway ...
- jmeter接口测试实例4-学生金币充值
Jmeter实例4:学生金币充值 添加http协议—添加IP.路径.方法,添加cookie管理器,察看结果树如下图所示 输入管理员名称:niuhanyang,输入值,域,如下图所示: 输入必填参数,运 ...
- linux命令之free篇
作业二: 1.free命令查看内存 [root@localhost 桌面]# free total used free shared buffers cachedMem: 1003432 899760 ...
- C#修改文件名方法
static void Main(string[] args) { string srcFileName = @"c:\order.txt"; string destFileNam ...