深度学习卷积神经网络最大池化运算(代码片段)

夜未涣 夜未涣     2022-12-06     658

关键词:

文章目录


前言

在卷积神经网络示例中,我们注意到,在每个MaxPooling2D层之后,特征图的尺寸都会减半。例如:在第一个MaxPooling2D层之前,特征图的尺寸是26 * 26,但最大池化运算将其减半为13 * 13。这就是最大池化的作用:对特征图进行下采样,与步进卷积类似。


提示:以下是本篇文章正文内容,下面案例可供参考

一、最大池化

最大池化是从输入特征图中提取窗口,并输出每个通道的最大值。它的概念与卷积类似,但是最大池化使用的硬编码的max张量运算对局部图块进行变换, 而不是使用学到的线性变换(卷积核)。最大池化与卷积的最大不同之处在于,最大池化通常使用2 * 2的窗口和步幅2,其目的是将特征图下采样2倍。与此相对的是,卷积通常使用3 * 3窗口和步幅1。

二、为什么要对特征图进行下采样

我们为什么要用这种方式对特征图下采样呢?为什么不删除最大池化层,一直保留较大的特征图?我们来这么做试一下。这时模型的卷积基如下所示:

model_no_max_pool = models.Sequential()
model_no_max_pool.add(layers.Conv2D(32,(3,3),activation='relu',input_shape=(28,28,1)))
model_no_max_pool.add(layers.Conv2D(64,(3,3),activation='relu',input_shape=(28,28,1)))
model_no_max_pool.add(layers.Conv2D(64,(3,3),activation='relu',input_shape=(28,28,1)))
print(model_no_max_pool.summary())

该模型的架构如下:

这种架构的问题如下:

  • 这种架构不利于特征的空间层次结构。第三层的3 * 3窗口中只包含初始输入的7 * 7窗口中所包含的信息。卷积神经网络学到的高级模式相对于初始输入来说仍然很小,这可能不足以学会对数字进行分类(你可以试试仅通过7像素*7像素的窗口观察图像来识别其中的数字)。我们需要让最后一个卷积层的特征包含输入的整体信息。
  • 最后一层的特征图对每个样本共有22 * 22 * 64=30976个元素。这太多了,如果你将其展平并在上面添加一个大小为512的Dense层,那一层将会有1580万个参数。这对于这样一个小模型来说太多了,会导致严重的过拟合。

简而言之,使用下采样的原因,一是减少需要处理的特征图的元素个数,二是通过让连续卷积层的观察窗口越来越大(即窗口覆盖原始输入的比例越来越大),从而引入空间过滤器的层级结构。
注意,最大池化不是实现这种下采样的唯一方法。你已经知道,还可以在前一个卷积层中使用步幅来实现。此外,你还可以使用平均池化来代替最大池化,其方法是将每个局部输入图块变换为取该图块各通道的平均值,而不是最大值。但最大池化的效果往往比这些替代方法更好。简而言之,原因在于特征中往往编码了某种模式或概念在特种图的不同位置是否存在(因此得名特征图),而观察不同特征的最大值而不是平均值能够给出更多的信息。因此,最合理的子采样策略是首先生成密集的特征图(通过无步进的卷积),然后观察特征每个小图块上的最大激活,而不是查看输入的稀疏窗口(通过步进卷积)或对输入图块取平均,因为后两种方法可能导致错过或淡化特征是否存在的信息。

深度学习笔记-vgg(池化)(代码片段)

...xNet(重复的VGG块)使用可重复使用的卷积块来构建深度卷积神经网络不同的卷积块个数和超参数可以得到不同复杂度的变种连续使用数个相同的填充为1、窗口形状为3×33×3的卷积层后接上一个步幅为2、窗口形状为2×22×2的最大池化... 查看详情

卷积神经网络——池化层学习——最大池化(代码片段)

池化层(Poolinglayers)除了卷积层,卷积网络也经常使用池化层来缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性,我们来看一下。先举一个池化层的例子,然后我们再讨论池化层的必要... 查看详情

深度学习与cv教程|卷积神经网络

本文讲解了卷积神经网络的重点知识:卷积层、池化层、ReLU层、全连接层、局部连接、参数共享、最大池化、步长、零填充、经典案例等【对应CS231nLecture5】本文讲解了卷积神经网络的重点知识:卷积层、池化层、ReLU层、全连... 查看详情

深度学习:基于python:第7章卷积神经网络(代码片段)

第7章卷积神经网络第7章卷积神经网络7.1整体结构7.2卷积层7.2.1 全连接层存在的问题7.2.2 卷积运算7.2.3 填充7.2.4 步幅7.2.5 3维数据的卷积运算7.2.6 结合方块思考7.2.7 批处理7.3池化层7.4卷积层和池化层的实现7.4.1 4维数组7... 查看详情

深度学习卷积神经网络(cnn)原理

【深度学习】卷积神经网络原理1.卷积神经网络的组成2.卷积层2.1卷积运算过程3.padding-零填充3.1ValidandSame卷积3.2奇数维度的过滤器4.stride-步长5.多通道卷积5.1多卷积核(多个Filter)6.卷积总结7.池化层(Pooling)8.全连接层9.总... 查看详情

cnn中池化层的作用?池化有哪些操作?(代码片段)

...化对于输入的图片,选择某种方式对其进行压缩,以加快神经网络的运算速度。这里说的某种方式,其实就是池化的算法,比如最大池化或平均池化。在卷积神经网络中通常会在相邻的卷积层之间加入一个池化层,池化层可以有... 查看详情

智能视觉食用指南(代码片段)

智能视觉食用指南卷积神经网络卷积运算边缘检测填补padding卷积步长3D卷积三类神经层卷积层池化层全连接层深度卷积网络目标检测人脸识别风格迁移卷积神经网络在《深度学习食用指南》里,我们做了一个神经网络,... 查看详情

深度学习卷积神经网络(代码片段)

...大小3池化层(Pooling)3.1最大池化3.2平均池化4全连接层5卷积神经网络的构建5.1数据加载5.2数据处理5.3模型搭建5.4模型编译5.5模型训练5.6模型评估6总结1CNN网络的构成利用全连接神经网络对图像进行处理存在以下两个问题:需要... 查看详情

keras深度学习实战——卷积神经网络的局限性(代码片段)

Keras深度学习实战(9)——卷积神经网络的局限性0.前言1.卷积神经网络的局限性2.情景1——训练数据集图像尺寸较大3.情景2——训练数据集图像尺寸较小4.情景3——在训练尺寸较大的图像时使用更大池化小结系列链接0.... 查看详情

手写数字识别-卷积神经网络cnn(06-2)(代码片段)

卷积和池化在深度学习中的作用是对图像和文本信息提取特征的常用方式,特别是在分类领域卷积:通过不同的卷积核与图像或文本数据矩阵进行矩阵相乘,得到不同特征的若干组训练特征数据池化:池化通常有两种最大池化(... 查看详情

keras深度学习实战——卷积神经网络详解与实现(代码片段)

Keras深度学习实战(7)——卷积神经网络详解与实现0.前言1.传统神经网络的缺陷1.1构建传统神经网络1.2传统神经网络的缺陷2.使用Python从零开始构建CNN2.1卷积神经网络的基本概念2.2卷积和池化相比全连接网络的优势3.使用... 查看详情

cnn卷积神经网络池化层pooling动手学深度学习v2pytorch

Pooling池化层常用的池化层最大池化层平均池化层2.代码实现池化层的效果最主要是通过步幅stride,使得减小位置敏感性。后来的实现,Pooling用的越来越少,因为在channel里面加stride也可以达到一样的效果,并且增... 查看详情

深度学习

深度学习是  多层神经网络上运用各种机器学习算法  解决图像,文本等各种问题的算法集合 深度学习算法:convolutionalNeuralNetworks(CNN)卷积神经网络  卷积网络:由卷积层、池化层、全连接层组成。    其中卷积... 查看详情

深度学习中网络设计的几点经验

1.CNN网络中的池化方式选择  池化方式有两种:1)最大池化;2)平均池化  在实验中我发现,最大池化要比平均池化慢很多,效果也不如平均池化好。所以,池化的方式我们尽量选择平均池化。2.CNN卷积核的设计  卷积的... 查看详情

深度学习基础:8.卷积与池化(代码片段)

从本篇开始,将进入到深度学习的计算机视觉领域,在此之前有必要对传统图像处理方法做个回顾。传统图像处理在我的【计算机视觉】基础图像知识点整理和【计算机视觉】数字图像处理基础知识题这两篇博文中,... 查看详情

「深度学习一遍过」必修8:搭建卷积神经网络lenet-5(代码片段)

...于深度学习的相关问题,并提供一些微不足道的人工神经网络模型设计思路。专栏地址:「深度学习一遍过」必修篇目录1 LeNet-5的网络结构与特点2各层参数详解2.1INPUT层——输入层2.2C1层——卷积层2.3 S2层——池化层... 查看详情

《深入浅出图神经网络》gnn原理解析☄学习笔记卷积神经网络(代码片段)

《深入浅出图神经网络》GNN原理解析☄学习笔记(三)卷积神经网络文章目录《深入浅出图神经网络》GNN原理解析☄学习笔记(三)卷积神经网络卷积与池化信号处理中的卷积单通道卷积多通道卷积池化卷积神经... 查看详情

大厂必考深度学习算法面试题总结(代码片段)

...一,滤波器与卷积核二,卷积层和池化输出大小计算三,深度学习框架的张量形状格式四,Pytorch、Keras的池化层函数理解五,Pytorch和Keras的卷积层函数理解六,softmax回归七,交叉熵损失函数八,感受野理解九,卷积和池化操作... 查看详情