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的更多相关文章

  1. [转]An Intuitive Explanation of Convolutional Neural Networks

    An Intuitive Explanation of Convolutional Neural Networks https://ujjwalkarn.me/2016/08/11/intuitive ...

  2. An Intuitive Explanation of Convolutional Neural Networks

    https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/ An Intuitive Explanation of Convolu ...

  3. Understanding the Effective Receptive Field in Deep Convolutional Neural Networks

    Understanding the Effective Receptive Field in Deep Convolutional Neural Networks 理解深度卷积神经网络中的有效感受野 ...

  4. 机器视觉:Convolutional Neural Networks, Receptive Field and Feature Maps

    CNN 大概是目前 CV 界最火爆的一款模型了,堪比当年的 SVM.从 2012 年到现在,CNN 已经广泛应用于CV的各个领域,从最初的 classification,到现在的semantic se ...

  5. 卷积神经网络用于视觉识别Convolutional Neural Networks for Visual Recognition

    Table of Contents: Architecture Overview ConvNet Layers Convolutional Layer Pooling Layer Normalizat ...

  6. 卷积神经网络LeNet Convolutional Neural Networks (LeNet)

    Note This section assumes the reader has already read through Classifying MNIST digits using Logisti ...

  7. [C6] Andrew Ng - Convolutional Neural Networks

    About this Course This course will teach you how to build convolutional neural networks and apply it ...

  8. A Beginner's Guide To Understanding Convolutional Neural Networks(转)

    A Beginner's Guide To Understanding Convolutional Neural Networks Introduction Convolutional neural ...

  9. (转)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 ...

随机推荐

  1. Acwing.835. Trie字符串统计(模板)

    维护一个字符串集合,支持两种操作: “I x”向集合中插入一个字符串x: “Q x”询问一个字符串在集合中出现了多少次. 共有N个操作,输入的字符串总长度不超过 105105,字符串仅包含小写英文字母 ...

  2. AcWing 154. 滑动窗口(模板)

    (https://www.acwing.com/problem/content/156/) 给定一个大小为n≤106n≤106的数组. 有一个大小为k的滑动窗口,它从数组的最左边移动到最右边. 您只能 ...

  3. C++11常用特性总结

    非原创,转载出处 http://www.cnblogs.com/feng-sc C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于 ...

  4. 行人重识别(ReID) ——技术实现及应用场景

    导读 跨镜追踪(Person Re-Identification,简称 ReID)技术是现在计算机视觉研究的热门方向,主要解决跨摄像头跨场景下行人的识别与检索.该技术能够根据行人的穿着.体态.发型等信 ...

  5. PgSQL · 特性分析 · PG主备流复制机制

    原文地址:http://mysql.taobao.org/monthly/2015/10/04/ PostgreSQL在9.0之后引入了主备流复制机制,通过流复制,备库不断的从主库同步相应的数据,并在 ...

  6. Spring Cloud Stream监听已存在的Queues/Exchanges

    环境准备 rabbitmq已运行,端口5672,控制台web端口15672,用户名密码guest/guest 引入spring cloud stream依赖 compile('org.springfr ...

  7. 模块(os模块)

    一.模块 一个python文件就是一个模块. 模块可分为: 1.标准模块:python自带的模块是标准模块,可以直接import进行使用的. eg:import json.import random. ...

  8. java selenium常用API汇总

    (WebElement.iFrame.select.alert.浏览器窗口.事件.js)     一 WebElement相关方法 1.点击操作 WebElement button = driver. ...

  9. 股票交易 (单调队列优化DP)

    股票交易 $ solution: $ 这道题以前就写了,题目很好,但自己没有发题解,来补一篇: 首先,题目出得很有迷惑性,但我们不难想到状态要设天数,和自己手上的股票数目(因为这两个就是充要信息).而 ...

  10. mysql服务设置远程连接

    一.前期准备 1.虚拟机/物理机    mysql环境(非本机)2.本机 navicat软件(验证远程连接) 二 .mysql配置 1.在远程主机的本机   使用root用户连接mysql mysql ...