论文笔记《Notes on convolutional neural networks》
这是个06年的老文章了,但是很多地方还是值得看一看的.
一、概要
主要讲了CNN的Feedforward Pass和 Backpropagation Pass,关键是卷积层和polling层的BP推导讲解。
二、经典BP算法
前向传播需要注意的是数据归一化,对训练数据进行归一化到 0 均值和单位方差,可以在梯度下降上改善,因为这样可以防止过早的饱,这主要还是因为早期的sigmoid和tanh作为激活函数的弊端(函数在过大或者过小的时候,梯度都很小),等现在有了RELU和batch normalization这两个神器,基本上对梯度消失的问题有了不错的解决。然后是BP算法,论文里面稍微难理解的是公式5的推导,
(引用的这里的翻译http://www.cnblogs.com/shouhuxianjian/p/4529202.html):
网络中我们需要后向传播的“ 误差”可以被认为是关于有偏置项扰动的每个单元的 “敏感性”。也就是说:
(公式4)
因为,所以偏置的敏感性其实等于一个单元的所有输入产生的误差偏导。下面的就是从高层到低层的BP:
(公式5)
因为左边是输入X的误差偏导,有因为,所以要前面的误差偏导乘上第l+1个W在乘上激活函数的偏导,这个如果对BP算法有所了解的话应该很好理解。

这里的“o” 表示是 逐原始相乘的。对于公式2中的误差函数,输出层神经元的敏感性如下:
(公式6)
最后,关于某个给定的神经元的更新权重的delta-rule就是对那个神经元的输入部分进行复制,只是用神经元的delta进行缩放罢了(其实就是如下面公式7的两个相乘而已)。在向量的形式中,这相当于输入向量(前层的输出)和敏感性向量的外积:
(公式7)
(公式8)
三、CNN
Sub-sampling的好处是来减少计算时间并且逐步的建立更深远的空间和构型的不变性,后面一点说的很拗口,我的理解还是对平移和缩放不变性的confidence吧。
1.计算梯度
这里论文就很不讲道理了,直接摆公式,什么都没有...卷积层和polling层的反向传播还是相当重要的,这里推荐一篇博文http://www.cnblogs.com/tornadomeet/p/3468450.html,里面对CNN的BP算法讲的很好,基本上推完这四个问题,CNN的BP算法就有了一定的了解了
博客里面比较难理解的是这个图:

也就是把卷积核旋转180度以后,从做左到右,再从上到下,计算得到每个值,跟feadforward pass的卷积不同,因为那个其实是一个相关的操作...只不过以卷积的形式表现了出来,这个才是正统的卷积处理。
这里需要理清一下这四个问题,首先是输出的误差敏感项,这个直接看推导就行了,然后是卷积层的下一层为pooling层时,求卷积层的误差敏感项,因为反向传播的时候,输出会比输入小,所以梯度在传递的时候和传统BP算法不一样,所以如何得到卷积层的误差敏感项就是这个问题考虑的。第三个问题考虑的是pooling层下面接卷积层,这个是因为我们要得到pooling层的误差敏感性,依靠的是卷积核的误差敏感项求的,同样是因为scale 的问题,所以需要去考虑。最后一个问题就是卷积层本身,在得到输出的误差敏感性之后,怎么得到W的,这个只要用相关的操作就可以得到,简单的理解是l层i和l+1层j之间的权值等于l+1层j处误差敏感值乘以l层i处的输入,而卷积的操作是一个累加的过程,所以BP的时候,也需要相关的操作得到。
四、combine
论文最后讲的几个feature map融合的想法也很好的理解,我的问题是,这个feature map不是一直作为多通道输出的么,为什么需要去融合,后来很多知名的net好像也并没有用到这个方法,是不是只是一次尝试?
论文笔记《Notes on convolutional neural networks》的更多相关文章
- 《Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition》论文笔记
论文题目:<Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition> 论文作者:Qibin ...
- [place recognition]NetVLAD: CNN architecture for weakly supervised place recognition 论文翻译及解析(转)
https://blog.csdn.net/qq_32417287/article/details/80102466 abstract introduction method overview Dee ...
- 论文笔记系列-Auto-DeepLab:Hierarchical Neural Architecture Search for Semantic Image Segmentation
Pytorch实现代码:https://github.com/MenghaoGuo/AutoDeeplab 创新点 cell-level and network-level search 以往的NAS ...
- 论文笔记——Rethinking the Inception Architecture for Computer Vision
1. 论文思想 factorized convolutions and aggressive regularization. 本文给出了一些网络设计的技巧. 2. 结果 用5G的计算量和25M的参数. ...
- 论文笔记:Fast Neural Architecture Search of Compact Semantic Segmentation Models via Auxiliary Cells
Fast Neural Architecture Search of Compact Semantic Segmentation Models via Auxiliary Cells 2019-04- ...
- 论文笔记:ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware
ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware 2019-03-19 16:13:18 Pape ...
- 论文笔记:DARTS: Differentiable Architecture Search
DARTS: Differentiable Architecture Search 2019-03-19 10:04:26accepted by ICLR 2019 Paper:https://arx ...
- 论文笔记:Progressive Neural Architecture Search
Progressive Neural Architecture Search 2019-03-18 20:28:13 Paper:http://openaccess.thecvf.com/conten ...
- 论文笔记:Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation
Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation2019-03-18 14:4 ...
- 论文笔记系列-DARTS: Differentiable Architecture Search
Summary 我的理解就是原本节点和节点之间操作是离散的,因为就是从若干个操作中选择某一个,而作者试图使用softmax和relaxation(松弛化)将操作连续化,所以模型结构搜索的任务就转变成了 ...
随机推荐
- cin对象的一些常用方法使用总结
>> 最初定义的是右移,当但是出现在 cin >>中的时候这个符号被重载了,变成了一个流操作,在用户通过键盘输入信息的时候,所有内容都会先直接存储在一个叫输入缓冲区的的地方,c ...
- 整理好的一些mysql表详细操作
一.创建表的完整语法#语法:create table 库名.表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件]);约束条件:是 ...
- 50 道 CSS 基础面试题及答案
1 介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin 低版本IE盒子模型:宽 ...
- PHP 根据IP获取地理位置
/** * 根据用户IP获取用户地理位置 * $ip 用户ip */ function get_position($ip){ if(empty($ip)){ return '缺少用户ip'; } $u ...
- JavaScript事件对象与事件的委托
事件对象 包含事件相关的信息,如鼠标.时间.触发的DOM对象等 js默认将事件对象封装好,并自动的以参数的形式,传递给事件处理函数的第1个参数,如下: document.getElementsByTa ...
- WIFI共享大师无法开启发射功能
1.打开服务(ctrl+R)输入services.msc 2.将关于wifi的服务打开 这里有windows移动热点服务和WLAN开头的服务
- python3.7 json模块
#!/usr/bin/env python __author__ = "lrtao2010" #python3.7 json模块 ''' 要在不同的编程语言之间传递对象,就必须把对 ...
- python爬虫入门八:多进程/多线程
什么是多线程/多进程 引用虫师的解释: 计算机程序只不过是磁盘中可执行的,二进制(或其它类型)的数据.它们只有在被读取到内存中,被操作系统调用的时候才开始它们的生命期. 进程(有时被称为重量级进程)是 ...
- 8 REST Framework 实现Web API 1
1 参考博客: http://blog.csdn.net/SVALBARDKSY/article/details/50548073 2 准备工作 1. 环境 Python: Python 3.5 D ...
- Python虚拟机类机制之填充tp_dict(二)
填充tp_dict 在Python虚拟机类机制之对象模型(一)这一章中,我们介绍了Python的内置类型type如果要完成到class对象的转变,有一个重要的步骤就是填充tp_dict对象,这是一个极 ...