要说明这个问题,首先要从计算机视觉中的“Hello World”问题说起:MNIST手写数字的分类。给定图像,将其分类。

来自MNIST数据集的图片样本

MNIST数据集中的每个图像都是28x28像素,包含一个居中的灰度数字。

什么是卷积?

首先,介绍一下什么是卷积神经网络。

它是使用卷积层(Convolutional layers)的神经网络,基于卷积的数学运算。

卷积层由一组滤波器组成,滤波器可以视为二维数字矩阵。这是一个示例3x3滤波器:

我们可以将滤波器与输入图像进行卷积来产生输出图像,那么什么是卷积操作呢?具体的步骤如下:

  1. 在图像的某个位置上覆盖滤波器;
  2. 将滤波器中的值与图像中的对应像素的值相乘;
  3. 把上面的乘积加起来,得到的和是输出图像中目标像素的值;
  4. 对图像的所有位置重复此操作。

这个4步描述有点抽象,所以让我们举个例子吧。看下面的4x4灰度图像和3x3滤波器:

图像中的数字表示像素亮度,0是黑色,255是白色。我们将对输入图像和滤波器进行卷积,生成2x2输出图像。

首先,让我们将滤镜覆盖在图片的左上角:

接下来,我们在重叠的图像和滤波器元素之间逐个进行乘法运算,按照从左向右、从上到下的顺序。

把最右列的乘积结果全部相加,得到:

由于滤波器覆盖在输入图像的左上角,因此目标像素是输出图像的左上角像素:

用同样的方式处理图像剩下的区域:

求卷积有何用?

看完了基本概念,你可能会有疑问,对图像求卷积有什么用吗?

我们在前文中使用的那个3x3滤波器,通常称为垂直**索伯滤波器**(Sobel filter):

看看用它来处理知名的Lena照片会得到什么:

看出来了吗?其实,索伯滤波器是是边缘检测器

现在可以解释卷积操作的用处了:用输出图像中更亮的像素表示原始图像中存在的边缘。

你能看出为什么边缘检测图像可能比原始图像更有用吗?

回想一下MNIST手写数字分类问题。在MNIST上训练的CNN可以找到某个特定的数字。比如发现数字1,可以通过使用边缘检测发现图像上两个突出的垂直边缘。

通常,卷积有助于我们找到特定的局部图像特征(如边缘),用在后面的网络中。

填充

在上面的处理过程中,我们用3x3滤波器对4x4输入图像执行卷积,输出了一个2x2图像。

通常,我们希望输出图像与输入图像的大小相同。因此需要在图像周围添加零,让我们可以在更多位置叠加过滤器。3x3滤波器需要在边缘多填充1个像素。

这种方法称之为“相同”填充,因为输入和输出具有相同的大小。而不使用任何填充称为“有效”填充。

池化

图像中的相邻像素倾向于具有相似的值,因此通常卷积层相邻的输出像素也具有相似的值。这意味着,卷积层输出中包含的大部分信息都是冗余的。

如果我们使用边缘检测滤波器并在某个位置找到强边缘,那么我们也可能会在距离这个像素1个偏移的位置找到相对较强的边缘。但是它们都一样是边缘,我们并没有找到任何新东西。

池化层解决了这个问题。这个网络层所做的就是通过减小输入的大小降低输出值的数量。

池化一般通过简单的最大值、最小值或平均值操作完成。以下是池大小为2的最大池层的示例:

如何理解卷积神经网络(CNN)中的卷积和池化?相关推荐

  1. 卷积神经网络CNN中1×1卷积作用理解

    0.引言 研究 GoogLeNet 和 VGG 神经网络结构的时候,都看见了它们在某些层有采取 1x1 作为卷积核,在最开始看到的AlexNet中都是出现了卷积核是 3x3和5×5的.那么,1x1 的 ...

  2. [人工智能-深度学习-24]:卷积神经网络CNN - CS231n解读 - 卷积神经网络基本层级

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:[人工智能-深度学习-23]:卷积神经网络CNN - CS231n解读 - 卷积神经网络基本层级_ ...

  3. python 图像卷积_[卷积神经网络(CNN)中的卷积核到底是如何提取图像特征的(python实现图像卷积运算)]...

    1.前言 我们知道,卷积核(也叫滤波器矩阵)在卷积神经网络中具有非常重要的作用.说白了,CNN主要作用在于提取图像的各种特征图(feature maps). CNN主要是通过卷积运算来完成特征提取的. ...

  4. 详细解释卷积神经网络CNN中卷积层以及BN层的参数

    问题的提出 在做关于python的卷积神经网络的项目中,发现了一个卷积层加一个BN层竟然一共有6个参数.百思不得其解. if batch_norm:layers += [nn.Conv2d(in_ch ...

  5. CNN中的采样和池化心得

    神经网络中,其实池化也是采样. 采样层是使用 pooling的相关技术来实现的,目的就是用来降低特征的维度并保留有效信息,一定程度上避免过拟合.但是pooling的目的不仅仅是这些,他的目的是保持旋转 ...

  6. CNN中的卷积操作与参数共享

    文章目录 (一)局部连接与卷积 1.1图像的局部相关 什么是卷积? 1.3 不同的卷积核(filter) (二)CNN中的参数共享 2.1 图像底层特征的位置无关性 2.2 示例(一维向量) (三)参 ...

  7. CNN中的卷积的作用及原理通俗理解

    文章目录 一.卷积有什么用? 二.卷积是怎么提取特征的? 一.卷积有什么用? 卷积作用是为了进行特征提取 因为输入的信息中可能只有一小部分是对我们解决问题有帮助的,这些信息比较关键,这时候只提取这部分 ...

  8. 深度学习(四):卷积神经网络(CNN)模型结构,前向传播算法和反向传播算法介绍。

    在前面我们讲述了DNN的模型与前向反向传播算法.而在DNN大类中,卷积神经网络(Convolutional Neural Networks,以下简称CNN)是最为成功的DNN特例之一.CNN广泛的应用 ...

  9. cnn卷积神经网络三大特点,什么是卷积神经网络CNN

    1.卷积神经网络算法是什么? 一维构筑.二维构筑.全卷积构筑. 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Fe ...

  10. 深度学习:卷积神经网络CNN入门

    作者:机器之心 链接:https://www.zhihu.com/question/52668301/answer/131573702 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业 ...

最新文章

  1. 大数处理之一(加法和乘法)
  2. Android--SensorEventListener和AudioManager实现根据条件转换手机震动和响铃
  3. springboot读取linux文件_SpringBoot读取Resource下文件的几种方式
  4. [UTCTF2020]Cube Crypto
  5. oc---类方法load和initialize的区别
  6. ADS-B显示终端5.9
  7. Java加密与解密的艺术~RSA实现
  8. excel格宽度转html像素,使列表框的列宽自动适应内容的宽度?(已有思路但需解决转换成像素问题)...
  9. Controller的生命周期是Transient还是PerWebRequest?
  10. dell 恢复出厂系统
  11. Stealing Harry Potter's Precious HDU - 4771 (状压+bfs)
  12. QT Andriod U盘检测
  13. 2010年计算机考研选择题解析,2009-2010计算机考研真题及答案(含选择题解析)WORD高清晰版.pdf...
  14. keras训练过程中发生的一些报错及其解决办法
  15. 计算机硬件和软件英语,计算机组成与设计:硬件/软件接口(英文版 原书第5版 ARM版)...
  16. 50个SQL语句练习题
  17. WinHttp.WinHttpRequest.5.1
  18. 7-8 病毒感染检测 (10分)
  19. SLAM学习资料收集
  20. 电脑开机黑屏一串英文_电脑开机黑屏一串英文怎么办

热门文章

  1. 《MFC dialog中加入OpenGL窗体》
  2. Direct3D 11.1新特性曝光
  3. UVA 11210 Chinese Mahjong
  4. 中石油训练赛 - Historical Maths(二分)
  5. CodeForces - 1339E Perfect Triples(打表找规律)
  6. 数据模型与决策_数据模型与决策复习资料拿走不用客气
  7. Transformer论文解读
  8. java e.getmessage() null_Java e.getMessage 错误信息为null
  9. react滑动切换tab动画效果_[React Native]react-native-scrollable-tab-view(入门篇)
  10. codeforces 数论分析题