Convolutional Neural Networks(2):Sparse Interactions, Receptive Field and Parameter Sharing
Sparse Interactions, Receptive Field and Parameter Sharing是整个CNN深度网络的核心部分,我们用本文来具体分析其原理。
首先我们考虑Feedforward Neural Network,L层的输出矩阵,等于L层的输入矩阵与L层的权重矩阵做矩阵乘法,而后进行非线性变换。也就是说,L层的每一个输出数据,与L层的每一个输入数据都有关系。若输入数据是m维,输出数据是n维,则存在m*n个权重项来表征输入与输出间的关系。所以,Forward-propagation的时间复杂度是O(m*n)。
根据在机器学习方面的实际经验看来,weight过多导致的问题主要有:难以训练,overfitting等。所以CNN引入Sparse Interactions来解决稠密权重(Dense Weight)的问题。以一个核宽度为3的网络来举例:下一层的输出S3,只与3个输入x2,x3,x4有关。

x2,x3,x4称为s3的Receptive Field,这其实是一个从神经科学舶来的概念。这里引用wikipedia关于Receptive Field的一段原文吧:
“Work by Hubel and Wiesel in the 1950s and 1960s showed that cat and monkey visual cortexes contain neurons that individually respond to small regions of the visual field. Provided the eyes are not moving, the region of visual space within which visual stimuli affect the firing of a single neuron is known as its receptive field. Neighboring cells have similar and overlapping receptive fields. Receptive field size and location varies systematically across the cortex to form a complete map of visual space. The cortex in each hemisphere represents the contralateral visual field.”
在位于枕叶(Occiptal Lobe)的大脑视觉皮质(Visual Cortex)中,存在一些神经元,每个单独的神经元对应一个Receptive Field。这也是Biological Neural Network在图像处理方面启发Artificial Neural Network的地方。如果仅仅到此为止,我们的确降低了模型的复杂度,并且把Weight Matrix缩小至k*n,k是kernel的大小。也就是说,在下一层中共有n个neurons,每一个neuron仅仅与上一层的k个值有关。
但Weight Sharing概念的引入,则将模型进一步简化,从而达到:weight的个数仅仅与kernel的大小有关。对于Kernel 和 Weight Sharing,可以这样理解:L层与L-1层之间并没有固定的连接线,而是采取动态绑定,在两层之间存在一个小小的window,称为kernel。透过该窗口可以看到原图像的一小部分,随着窗口不断从左到右,从上到下滑动,整个图片都被扫描。而扫描到的图片区,和kernel来做卷积,生成feature map。而整张图片,共享的weight其实就是kernel的值,如果kernel改变,整张图的扫描结果(feature map)将会改变。过程如下图:


另一种理解方式如下图,实际情况也非动态扫描,而是存在权重相同的通路:

Convolutional Neural Networks(2):Sparse Interactions, Receptive Field and Parameter Sharing的更多相关文章
- [转]An Intuitive Explanation of Convolutional Neural Networks
An Intuitive Explanation of Convolutional Neural Networks https://ujjwalkarn.me/2016/08/11/intuitive ...
- An Intuitive Explanation of Convolutional Neural Networks
https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/ An Intuitive Explanation of Convolu ...
- Understanding the Effective Receptive Field in Deep Convolutional Neural Networks
Understanding the Effective Receptive Field in Deep Convolutional Neural Networks 理解深度卷积神经网络中的有效感受野 ...
- 机器视觉:Convolutional Neural Networks, Receptive Field and Feature Maps
CNN 大概是目前 CV 界最火爆的一款模型了,堪比当年的 SVM.从 2012 年到现在,CNN 已经广泛应用于CV的各个领域,从最初的 classification,到现在的semantic se ...
- 卷积神经网络用于视觉识别Convolutional Neural Networks for Visual Recognition
Table of Contents: Architecture Overview ConvNet Layers Convolutional Layer Pooling Layer Normalizat ...
- 卷积神经网络LeNet Convolutional Neural Networks (LeNet)
Note This section assumes the reader has already read through Classifying MNIST digits using Logisti ...
- [C6] Andrew Ng - Convolutional Neural Networks
About this Course This course will teach you how to build convolutional neural networks and apply it ...
- A Beginner's Guide To Understanding Convolutional Neural Networks(转)
A Beginner's Guide To Understanding Convolutional Neural Networks Introduction Convolutional neural ...
- (转)A Beginner's Guide To Understanding Convolutional Neural Networks Part 2
Adit Deshpande CS Undergrad at UCLA ('19) Blog About A Beginner's Guide To Understanding Convolution ...
随机推荐
- vue+element Form键盘回车事件页面刷新解决
问题描述:如下代码所示,使用element-ui 中的el-form组件对table进行条件查询,当查询条件仅有一项时,使用@keyup.enter.native事件绑定回车事件,出现点击回车后,浏览 ...
- D Makoto and a Blackboard
Makoto and a Blackboard time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- nextSibling 属性与 nextElementSibling 属性的异同
不同点: nextSibling 属性返回元素节点之后的下一个兄弟节点(包括文本节点.注释节点): nextElementSibling 属性只返回元素节点之后的下一个兄弟元素节点(不包括文本节点.注 ...
- websocket无法注入bean问题解决方案
websocket服务端往往需要和服务层打交道,因此需要将服务层的一些bean注入到websocket实现类中使用,但是呢,websocket实现类虽然顶部加上了@Component注解,依然无法通过 ...
- Smarty模板引擎模板文件.tpl和.html的区别
在WEB开发中,PHP作为业务逻辑,HTML作为表现逻辑.但是在Smarty一些文档中可以看到模板文件的拓展名是.tpl,而不是.html,其实所谓的.tpl就是.html. 模版文件可以用任意的扩展 ...
- ideamaven版的MBG逆向工程
一.简介 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类. 支持基本的增删改查,以及QBC风格的条件查询. 但是表连接.存储 ...
- Conference - open source drives IOT from device to edge
Open source drives IOT from device to edge 以下都是针对IOT领域的项目: ACRN A Big Little Hypervisor for IoT Deve ...
- bzoj5118 Fib数列2 二次剩余+矩阵快速幂
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5118 题解 这个题一看就是不可做的样子. 求斐波那契数列的第 \(n\) 项,\(n \leq ...
- SpringMVC的@ResponseBody注解简介
SpringMVC简介 SpringMVC也叫Spring Web MVC 属于展示层框架.是Spring框架的一部分. 核心组件类DispatherServlet springMVC是围绕Dispa ...
- VUE的系统指令
1. -text原样渲染,渲染文本 2.-html HTML渲染页面 举例: <!doctype html> <html lang="en"> < ...