0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何去理解CNN卷积层与池化层计算?

电子工程师 来源:51CTO博客gloomyfish 作者:gloomyfish 2021-04-06 15:13 次阅读

概述

深度学习中CNN网络是核心,对CNN网络来说卷积层与池化层的计算至关重要,不同的步长、填充方式、卷积核大小、池化层策略等都会对最终输出模型与参数、计算复杂度产生重要影响,本文将从卷积层与池化层计算这些相关参数出发,演示一下不同步长、填充方式、卷积核大小计算结果差异。

一:卷积层

卷积神经网络(CNN)第一次提出是在1997年,杨乐春(LeNet)大神的一篇关于数字OCR识别的论文,在2012年的ImageNet竞赛中CNN网络成功击败其它非DNN模型算法,从此获得学术界的关注与工业界的兴趣。毫无疑问学习深度学习必须要学习CNN网络,学习CNN就必须明白卷积层,池化层等这些基础各层,以及它们的参数意义,从本质上来说,图像卷积都是离散卷积,图像数据一般都是多维度数据(至少两维),离散卷积本质上是线性变换、具有稀疏与参数重用特征即相同参数可以应用输入图像的不同小分块,假设有3x3离散卷积核如下:

pIYBAGBsCaaAXhtpAAAVeBDiS9Q778.png

假设有

5x5的图像输入块

步长为1(strides=1)

填充方式为VALID(Padding=VALID)

卷积核大小filter size=3x3

则它们的计算过程与输出如下

100017588-59694-2.png

假设这个时候我们修改步长为2、填充方式为SAME,卷积核大小不变(strides=2 Padding=SAME filter size=3x3),则计算过程与输出变为如下:

100017588-59695-3.png

最终输出得到的结果我们可以称为featuremap,CNN的深度多数时候是指featuremap的个数,对多维度的输入图像计算多个卷积核,得到多个featuremap输出叠加,显示如下:

100017588-59696-4.png

上述输入为5x5x2,使用卷积核3x3,输出3x3x3,填充方式为VALID,计算如果填充方式改为SAME则输出为5x5x3。可以看出填充方式对输出结果的影响。

二:小卷积核VS大卷积核

在AlexNet中有有11x11的卷积核与5x5的卷积核,但是在VGG网络中因为层数增加,卷积核都变成3x3与1x1的大小啦,这样的好处是可以减少训练时候的计算量,有利于降低总的参数数目。关于如何把大卷积核替换为小卷积核,本质上有两种方法。

1. 将二维卷积差分为两个连续一维卷积

二维卷积都可以拆分为两个一维的卷积,这个是有数学依据的,所以11x11的卷积可以转换为1x11与11x1两个连续的卷积核计算,总的运算次数:

11x11 = 121次

1x11+ 11x1 = 22次

2.将大二维卷积用多个连续小二维卷积替代
可见把大的二维卷积核在计算环节改成两个连续的小卷积核可以极大降低计算次数、减少计算复杂度。同样大的二维卷积核还可以通过几个小的二维卷积核替代得到。比如:5x5的卷积,我们可以通过两个连续的3x3的卷积替代,比较计算次数

5x5= 25次

3x3+ 3x3=18次

三:池化层

在CNN网络中卷积池之后会跟上一个池化层,池化层的作用是提取局部均值与最大值,根据计算出来的值不一样就分为均值池化层与最大值池化层,一般常见的多为最大值池化层。池化的时候同样需要提供filter的大小、步长、下面就是3x3步长为1的filter在5x5的输入图像上均值池化计算过程与输出结果

100017588-59697-5.png

改用最大值做池化的过程与结果如下:

100017588-59698-6.png

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 卷积
    +关注

    关注

    0

    文章

    95

    浏览量

    18509
  • cnn
    cnn
    +关注

    关注

    3

    文章

    352

    浏览量

    22213
  • vgg
    vgg
    +关注

    关注

    1

    文章

    11

    浏览量

    5195
  • 池化
    +关注

    关注

    0

    文章

    4

    浏览量

    1101
收藏 人收藏

    评论

    相关推荐

    关于卷积神经网络,这些概念你厘清了么~

    这个小型网络,用于描述网络的方程中也具有32个偏置和32个权重。 CIFAR神经网络是一种广泛用于图像识别的CNN。它主要由两种类型的组成:卷积
    发表于 10-24 13:56

    cnn常用的几个模型有哪些

    1998年提出。它主要用于手写数字识别,包括卷积和全连接。 AlexNet:Alex
    的头像 发表于 07-11 14:58 821次阅读

    卷积神经网络的基本概念、原理及特点

    的基本概念、原理、特点以及在不同领域的应用情况。 一、卷积神经网络的基本概念 卷积神经网络是一种深度学习算法,它由多层卷积
    的头像 发表于 07-11 14:38 1048次阅读

    神经网络中的卷积与全连接

    在深度学习中,卷积神经网络(Convolutional Neural Network, CNN)是一种特别适用于处理图像数据的神经网络结构。它通过卷积
    的头像 发表于 07-11 14:18 5634次阅读

    卷积神经网络中的作用

    在深度学习领域,卷积神经网络(Convolutional Neural Network, CNN)以其卓越的图像处理和计算机视觉能力而广受欢迎。CNN由多个
    的头像 发表于 07-03 15:58 1685次阅读

    卷积神经网络实现示例

    分类。 1. 卷积神经网络的基本概念 1.1 卷积(Convolutional Layer) 卷积
    的头像 发表于 07-03 10:51 439次阅读

    卷积神经网络分类方法有哪些

    ,包括基本原理、常见架构、优化策略、应用场景等。 1. 卷积神经网络的基本原理 卷积神经网络是一种前馈神经网络,其核心思想是通过卷积提取输入数据的局部特征,并通过
    的头像 发表于 07-03 09:40 465次阅读

    卷积神经网络计算过程和步骤

    卷积(Convolutional Layer) 卷积卷积神经网络的核心组成部分,它通过卷积
    的头像 发表于 07-03 09:36 570次阅读

    卷积神经网络的组成部分有哪些

    卷积、激活函数、全连接、损失函数、优化算法等,并探讨它们在
    的头像 发表于 07-03 09:31 1002次阅读

    cnn卷积神经网络分类有哪些

    卷积神经网络概述 卷积神经网络(Convolutional Neural Network,简称CNN)是一种深度学习模型,由多层卷积
    的头像 发表于 07-03 09:28 623次阅读

    卷积神经网络可以通过输出反推到输入吗

    卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习模型,广泛应用于图像识别、视频分析、自然语言处理等领域。CNN通过卷积
    的头像 发表于 07-03 09:17 638次阅读

    卷积神经网络每一的作用

    卷积神经网络(Convolutional Neural Networks,简称CNN)是一种深度学习算法,广泛应用于图像识别、自然语言处理等领域。本文将详细介绍卷积神经网络每一的作用
    的头像 发表于 07-02 15:28 1397次阅读

    CNN模型的基本原理、结构、训练过程及应用领域

    (Convolutional Layer),它通过卷积运算提取输入数据的特征,然后通过(Pooling Layer)和全连接(Ful
    的头像 发表于 07-02 15:26 3535次阅读

    卷积神经网络cnn模型有哪些

    (Convolutional Layer) 卷积CNN的核心,用于提取图像的局部特征。卷积操作通过滑动窗口(滤波器或卷积核)在输入数据上
    的头像 发表于 07-02 15:24 718次阅读

    卷积神经网络cnn的主要作用

    卷积神经网络(Convolutional Neural Network,CNN)是深度学习领域中一种重要的神经网络结构,广泛应用于图像识别、语音识别、自然语言处理等领域。在CNN中,
    的头像 发表于 07-02 14:50 1202次阅读