论文笔记《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(松弛化)将操作连续化,所以模型结构搜索的任务就转变成了 ...
随机推荐
- Python实现屏蔽敏感词
一.需求 1. 有一个文件,里面有一些敏感词汇,用户输入一段话,若包含这些词,就用**代替,并输出 二.实现代码 f = open('lib.txt', 'r') result = '' f1 = i ...
- 面向对象编程 -------JavaScrip
本文摘要:http://www.liaoxuefeng.com/ 一定明白面向对象的两个基本概念: 类:类是对象的类型模板,例如,定义Student类来表示学生,类本身是一种类型,Student表示学 ...
- Angular 2 树节点的上下移动问题
最近在做一个树节点的上下移动然后实现排序的问题.直接看图: 实现已选查询条件的上下移动.结合了primeng 的picklist 组件. 下面是html代码 <p-tabPanel header ...
- CURLOPT_PROGRESSFUNCTION
Author:李强(李祥祥) Date :2012-12-15 17:26 LIBCURL官方网站都没有说清楚道明白进度函数的参数的作用,这点我感觉文档很片面,经总结如下: size_t CUpl ...
- Linux下重要日志及查看方式
1.Linux下重要日志文件介绍 /var/log/boot.log 该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息,如图1所示: 图1 /var/log/boot. ...
- jQuery.each() - jQuery 遍历方法使用介绍
定义和用法 each() 方法规定为每个匹配元素规定运行的函数. 提示:返回 false 可用于及早停止循环. jQuery.each()方法大概有如下几种用法,下面分别进行介绍: 1.选择器.eac ...
- Python 正则表达式 匹配次数
管道可以匹配多个正则表达式中的一个 >>> >>> m=re.search(r'Batman|Tina Fey','Batman and Tina Fey')> ...
- oop 单例模式
- Redis之List类型操作
接口: package com.net.test.redis.base.dao; import java.util.List; /** * @author *** * @Time:2017年8月10日 ...
- 笔记-python-lib-内置函数
笔记-python-lib-内置函数 注:文档来源为Python3.6.4官方文档 1. built-in functions abs(x) 返回绝对值 all(iterable) re ...