卷积神经网络是一种特殊的神经网络结构,是自动驾驶汽车、人脸识别系统等计算机视觉应用的基础,其中基本的矩阵乘法运算被卷积运算取代。它们专门处理具有网格状拓扑结构的数据。例如,时间序列数据和图像数据可以看作是一个二维像素网格。

历史

卷积神经网络最初是由福岛核电站在1980年引入的,当时名为Neocognitron。它的灵感来自于Hubel和Weisel提出的神经系统的层次模型。但由于其复杂的无监督学习算法,即无监督学习,该模型并不受欢迎。1989年,Yann LeCun利用反向传播和Neocognitron的概念提出了一种名为LeNet的架构,该架构被美国和欧洲用于手写的邮政编码识别。邮政服务。Yann LeCun进一步研究了这个项目,最终在1998年发布了LeNet-5——第一个引入了我们今天在CNN仍然使用的一些基本概念的现代卷积神经网络。他还发布了MNIST手写数字数据集,这可能是机器学习中最著名的基准数据集。在20世纪90年代,计算机视觉领域转移了它的焦点,许多研究人员停止了对CNN架构的研究。神经网络的研究经历了一个寒冷的冬天,直到2012年,多伦多大学的一组研究人员在著名的ImageNet挑战赛中进入了一个基于CNN的模型(AlexNet),最终以16.4%的错误率赢得了比赛。此后,卷积神经网络不断向前发展,基于CNN的体系结构不断赢得ImageNet, 2015年,基于卷积神经网络的体系结构ResNet的误差率超过人类水平的5.1%,误差率为3.57%。

卷积的误称

在CNN中广泛使用的卷积运算是用词不当的。严格地说,所使用的操作是相关,而不是卷积。这两个操作符都有一点不同,我们将分别讨论它们,以理解它们之间的区别。

互相关

相关是在图像上移动滤波掩码(通常称为核)并计算每个位置的乘积和的过程。相关是滤波器位移的函数。换句话说,相关的第一个值对应滤波器的零位移,第二个值对应一个位移,以此类推。

数学公式:

图3给出了使用F滤波器与图像I的一维互相关运算的数学公式。假设F具有奇数个元素会很方便,因此我们可以假设F随其中心移动。我们说F有2N 1的元素,这些索引从-N到N,F(0)是中心元素。

类似地,我们可以将这个概念扩展到下图所示的2d情况。基本思想是一样的,除了图像和滤波器现在是2D。我们可以假设我们的滤波器有奇数个元素,所以它由一个(2N 1)x(2N 1)矩阵表示。

二维的相关运算非常简单。我们只是取一个给定大小的滤波器,然后把它放在与滤波器大小相同的图像的一个局部区域上。我们继续这个操作,在整个图像中移动相同的滤波器。这也帮助我们实现了两个非常受欢迎的属性:

  1. 平移不变性:我们的视觉系统应该感知、响应或检测相同的物体,而不管它出现在图像的什么地方。
  2. 局部性:我们的视觉系统聚焦于局部区域,而不考虑图像的其他部分发生了什么。

互相关函数具有一个特性,当它应用于离散的单位脉冲(一个二维矩阵,其中只有一个1,其他都是0)时,得到的结果是滤波器的副本,但旋转了180度。

卷积:

卷积运算与互相关运算非常相似,但有细微的区别。在卷积运算中,首先将核翻转180度,然后应用于图像。卷积的基本性质是将一个核与一个离散的单位脉冲进行卷积,在脉冲的位置上得到一个核的拷贝。

我们在互相关部分看到,一个互相关操作产生一个脉冲的拷贝,但是旋转了180度。因此,如果我们预先旋转滤波器并执行相同的乘积滑动和运算,我们应该能够得到期望的结果。

数学公式:
利用核函数F对图像I进行的卷积运算由一维的公式给出。卷积就像相关一样,只是我们在互相关之前先把滤波器翻转一下

在二维卷积的情况下,我们水平和垂直翻转滤波器。这可以写成:

卷积运算同样遵循平移不变性局部性的性质。

注意:
尽管这两个操作稍有不同,但是所使用的核是否对称并不重要。

结论:

在这篇文章中,我们简要讨论了卷积神经网络的历史和一些特性。我们讨论了卷积这个错误的说法,即在各种文本中经常提到的卷积运算其实是互相关运算。这种差别很细微,但却很有用,每个进入、练习或经验丰富的计算机视觉领域的人都应该知道。

引用

  1. Deep Learning book by Ian Goodfellow and Yoshua Bengio and Aaron Courville.
  2. Digital Image Processing by Rafael C. Gonzalez.
  3. Dive into Deep Learning by Aston Zhang, Zack C. Lipton, Mu Li and Alex J. Smola.
  4. Correlation and Convolution by David Jacobs.
  5. Figure 9 taken from https://towardsdatascience.com/applied-deep-learning-part-4-convolutional-neural-networks-584bc134c1e2.
  6. https://spatial-lang.org/conv
  7. The meme is taken from 7. https://www.mihaileric.com/posts/convolutional-neural-networks/.

欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/

欢迎关注PyTorch官方中文教程站:
http://pytorch.panchuang.net/

OpenCV中文官方文档:
http://woshicver.com/

深入理解卷积网络的卷积相关推荐

  1. 卷积网络和卷积神经网络_卷积神经网络的眼病识别

    卷积网络和卷积神经网络 关于这个项目 (About this project) This project is part of the Algorithms for Massive Data cour ...

  2. 卷积网络和卷积神经网络_CNTK-卷积神经网络

    卷积网络和卷积神经网络 CNTK-卷积神经网络 (CNTK - Convolutional Neural Network) In this chapter, let us study how to c ...

  3. 卷积网络和卷积神经网络,卷积神经网络三大特点

    前馈神经网络.BP神经网络.卷积神经网络的区别与联系 一.计算方法不同1.前馈神经网络:一种最简单的神经网络,各神经元分层排列.每个神经元只与前一层的神经元相连.接收前一层的输出,并输出给下一层.各层 ...

  4. 吴恩达神经网络和深度学习-学习笔记-30-相关符号和计算+单层卷积网络+简单卷积网络示例

    卷积相关的符号和计算 单层卷积网络 首先执行线性函数,然后所有元素相乘做卷积. 具体做法是运用线性函数,再加上偏差,然后应用激活函数Relu. 也即是说,通过神经网络的一层,把一个6×6×3维度的a[ ...

  5. 4.1)深度卷积网络:卷积神经网络基础

    目录 1)Computer vision 2)Edge detection example(理解) 3)More edge detection 4)Padding(重点) 5)Strided conv ...

  6. Gram矩阵与卷积网络中的卷积的直观理解

    Gram矩阵其实是一种度量矩阵.矩阵分析中有这样的定义. 设 V V是nn维欧式空间 ϵ1,⋯,ϵn \mathbf{\epsilon_1, \cdots, \epsilon_n }是它的一个基, g ...

  7. 基于三维卷积网络的时空特征学习

    摘要 本文提出了一种基于大规模监督视频数据集的深三维卷积网络(3D卷积网)的时空特征学习方法.我们的研究结果有三方面:1)三维卷积网比2d卷积网更适用于时空特征学习:2)在所有层中具有小3×3×3卷积 ...

  8. 【CV】膨胀卷积详解以及时间卷积网络TCN论文笔记和源码实现

    这篇博文分为两部分.第一部分详细讲解了TCN模型(Temporal Convolutional Network)中涉及的1D卷积,因果卷积,膨胀卷积中设计的计算,非常值得一看,有醍醐灌顶的作用.第二部 ...

  9. 从一维卷积、因果卷积(Causal CNN)、扩展卷积(Dilation CNN) 到 时间卷积网络 (TCN)

    来源: AINLPer微信公众号(每日干货分享!!) 编辑: ShuYini 校稿: ShuYini 时间: 2022-09-30 引言 卷积神经网络 (CNN) 尽管通常与图像分类任务相关,但经过改 ...

最新文章

  1. 关于node-sass安装失败的解决办法
  2. 0728pm 控制器
  3. npm和yarn的区别,我们该如何选择?
  4. php js跨域上传文件,Jquery实现跨域异步上传文件步骤详解
  5. 当OpenOrg和OpenGov发生冲突时
  6. Python机器学习:KNN算法02scikit-learn中的机器学习算法封装
  7. Windows 下安装 MySQL 及使用可视化工具执行 SQL 脚本过程记录
  8. Android SDK环境变量配置(windows和Linux)
  9. js存取cookie以及设置cookie储存时间
  10. Pycharm导入已有的Project
  11. 英国第一位重要的浪漫主义诗人
  12. 商贸批发进销存管理软件,仓库条码管理,库存管理。采购入库单,供应商档案管理。
  13. 懂车帝上配置高的国产车为什么那么便宜?
  14. 操作系统 --- 磁盘调度算法
  15. 双系统linux触摸板不能用,windows系统与ubuntu双系统导致笔记本触摸板失灵的解决办法(非输入代码)...
  16. Keras深度学习实战(11)——可视化神经网络中间层输出
  17. # Odoo丨Odoo框架源码研读一:前后端交互
  18. js绘制超炫酷3D化学元素周期表
  19. 手机控?这两款神器能让你远离手机
  20. Xcode Embedded Binaries动态添加库

热门文章

  1. 阿里云的认证是不是最好的?考起来难不难?
  2. EXPLAIN语法详解
  3. STM32CubeMx移植DSP库 傅立叶变化(FFT)测试
  4. 项目实战总结以及接入U-APM
  5. 练习-任意输入n个从小到大的整数的数列,然后输入一个整数插入到数列中,使数列保持从小到大的顺序
  6. vue-路由篇页面跳转和页面参数传递
  7. 读书杂抄之《挪威的森林》
  8. GB2312与utf16、utf8的汉字对照表
  9. node.js基于微信小程序的外卖订餐系统 uniapp 小程序
  10. 什么是i人,mbti中的i型人格是怎么样的