深度学习—各种卷积

这篇具有很好参考价值的文章主要介绍了深度学习—各种卷积。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.普通卷积

1.1 什么是卷积

卷积是指在滑动中提取特征的过程,我们先从一个小小的权重矩阵,也就是 卷积核(kernel) 开始,让它逐步在二维输入数据上“扫描”。卷积核“滑动”的同时,计算权重矩阵和扫描所得的数据矩阵的乘积,然后把结果汇总成一个输出像素,卷积的过程可以参考下图:
深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn

1.2 什么是padding

当卷积核尺寸大于 1 时,输出特征图的尺寸会小于输入图片尺寸。如果经过多次卷积,输出图片尺寸会不断减小。为了避免卷积之后图片尺寸变小,通常会在图片的外围进行填充(padding),如下图为一个卷积核为3×3、有padding、Stride(每次阴影划过的格子数目)为1时的卷积过程:
深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn

蓝色部分为输入特征图,周围虚线部分为填充的padding,扫过的阴影部分为3*3大小的卷积核,绿色部分为输出特征图。

1.3 什么是卷积核

卷积是为了提取特征,选择不同的卷积核将会提取到不同的特征。卷积核定义了卷积的大小范围,在网络中代表感受野的大小,二维卷积核最常见的就是 3*3 的卷积核。一般情况下,卷积核越大,感受野越大,看到的图片信息越多,所获得的全局特征越好。但大的卷积核会导致计算量的暴增,计算性能也会降低

传统图像处理一般叫滤波器,而在深度学习中叫卷积核。

1.3.1 单通道模式

所谓的通道数,可以理解为有多少张二维矩阵图
深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn

1.3.2 多通道模式

多通道也很容易理解,最典型的就是处理彩色图片,一般有三个通道(RGB):实际上,一个filter也可以包含多个矩阵,也即kernels,比如一个包含三个kernels的filter,对于输入是三个通道的图像:

深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn这里输入层是一个5 x 5 x 3矩阵,有3个通道,filters是3 x 3 x 3矩阵。首先,filters中的每个kernels分别应用于输入层中的三个通道,执行三次卷积,产生3个尺寸为3×3的通道。

然后,将这三个通道相加(逐个元素相加)以形成一个单个通道(3 x 3 x 1),该通道是使用filters(3 x 3 x 3矩阵)对输入层(5 x 5 x 3矩阵)进行卷积的结果:深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn

卷积核的channel = 输入特征图的channel
输出特征图的channel = 卷积核的个数

在图像处理中,不同的filter可以对图片进行不同的处理,比如滤波有很多类型,包括线性滤波和非线性滤波(详情了解数字图像处理)

1.4 什么是感受野

  • 在卷积神经网络中,决定某一层输出结果中一个元素所对应的输入层的区域大小,被称作感受野(receptive field)。通俗的解释是,输出feature map上的一个单元对应输入层上的区域大小。

  • 深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn

  • 如图所示,共有3个feature map输出。该图说明了2个3✖️3的conv可以代替1个5✖️5的conv层

    • Layer1中方格可看作是一个元素,3✖️3的绿色方格则是一个3✖️3的卷积核
    • Layer2由一个3✖️3的卷积核经过卷积运算输出,输出尺寸是3✖️3(假设stride=1,padding=0)显而易见,layer2中的绿色方格是由layer1中3✖️3的绿色方格所决定的。那么这一位置的感受野就是layer1中的绿色方格区域
    • Layer3由layer2经过3✖️3的conv层输出,只有一个
      深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn
  • 上图可以说明堆叠三个33的卷积核替代77的卷积核,这样就能大大节省参数,在VGG网络中就采用了该方法使得参数量大大降低。详情参考VGG网络详解;

1.5 什么是池化

池化通常有两种:平均池化和最大池化,也还有随机池化
深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn

2. 转置卷积

转置卷积又叫反卷积、逆卷积。不过转置卷积是目前最为正规和主流的名称,因为这个名称更加贴切的描述了卷积的计算过程

为什么人们很喜欢叫转置卷积为反卷积或逆卷积。首先举一个例子,将一个4x4的输入通过3x3的卷积核在进行普通卷积(无padding, stride=1),将得到一个2x2的输出。而转置卷积将一个2x2的输入通过同样3x3大小的卷积核将得到一个4x4的输出,看起来似乎是普通卷积的逆过程。就好像是加法的逆过程是减法,乘法的逆过程是除法一样,人们自然而然的认为这两个操作似乎是一个可逆的过程。但事实上两者并没有什么关系,操作的过程也不是可逆的。

首先从计算机是如何处理卷积开始,在计算机中卷积操作并不是像滑动窗口一样,而是转化为向量进行操作,如下图

  • 普通卷积
    -深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn 计算机操作方式 - 由于我们的3x3卷积核要在输入上不同的位置卷积4次,所以通过补零的方法将卷积核分别置于一个4x4矩阵的四个角落。这样我们的输入可以直接和这四个4x4的矩阵进行卷积,而舍去了滑动这一操作步骤 - 深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn
    进一步的,我们将输入拉成长向量,四个4x4卷积核也拉成长向量并进行拼接,如下图
    深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn
    计算机进行卷积计算方式如下:
    深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn

我们将一个1x16的行向量乘以16x4的矩阵,得到了1x4的行向量。那么反过来将一个1x4的向量乘以一个4x16的矩阵是不是就能得到一个1x16的行向量呢?
没错,这便是转置卷积的思想。

形象化的理解转置卷积过程可以参考形象化理解转置卷积

3. 空洞卷积

Dilated/Atrous Convolution(中文叫做空洞卷积或者膨胀卷积) 或者是 Convolution with holes,从字面上就很好理解,是在标准的 convolution map 里注入空洞,以此来增加 receptionfield。相比原来的正常convolution,dilated convolution 多了一个 hyper-parameter 称之为 膨胀率(dilation rate),指的是kernel的间隔数量(e.g. 正常的 convolution 是 dilatation rate1)

  • 普通卷积
    深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn

  • 膨胀卷积
    深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn

大部分图像分割的框架都是经历一系列的卷积和下采样的模块之后,再不断与之前卷积结果跨层融合经历一系列卷积和上采样模块的过程,只不过大家融合的方式不尽相同,FCN是逐像素直接相加,U-NET是通道维度拼接,DFAnet是矩阵相乘,但大体框架是一样的,主要还是因为之前的下采样降低了图片的分辨率,而我们只能采用这种方法既能及时补充细节信息又能恢复原始图片分辨率。论文在介绍中,大胆提出这些问题的根源在于池化、下采样层的存在,而它们的存在并不是必要的。

膨胀卷积的好处:

  • 扩大感受野:在deep net中为了增加感受野且降低计算量,总要进行降采样(pooling或s2/conv),这样虽然可以增加感受野,但空间分辨率降低了。为了能不丢失分辨率(持怀疑态度),且仍然扩大感受野,可以使用空洞卷积。这在检测,分割任务中十分有用。一方面感受野大了可以检测分割大目标,另一方面分辨率高了可以精确定位目标。
  • 捕获多尺度上下文信息:空洞卷积有一个参数可以设置dilation rate,具体含义就是在卷积核中填充dilation rate-1个0,因此,当设置不同dilation rate时,感受野就会不一样,也即获取了多尺度信息。多尺度信息在视觉任务中相当重要啊。

论文:Multi-Scale Context Aggregation by Dilated Convolutions
论文创新点:
 (1)丢掉池化、下采样模块;
 (2)构建一种新的卷积网络结构 — 膨胀卷积;
 (3)提出了一种既可以结合上下文信息,又不降低分辨率的模型。

4. 组卷积

分组卷积(Group Convolution)顾名思义,在对特征图进行卷积的时候, 组卷积是把输入特征图在通道方向分成若干组,对每一组的特征分别做卷积后再拼接起来,以减少参数数量,提高运算速度

分组卷积(Group Convolution) 起源于2012年的 AlexNet - 《ImageNet Classification
with Deep Convolutional Neural Networks》。由于当时硬件资源的限制,因为作者将Feature
Maps分给多个GPU进行处理,最后把多个GPU的结果进行融合

深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn

depthwise separable convolution可视作一种特殊的组卷积,使每一个分组只包含一个通道。

在分组卷积中,filters被拆分为不同的组,每一个组都负责具有一定深度的传统 2D 卷积的工作。下图的例子表示得更清晰一些:

  • 传统卷积
    深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn
  • 分组卷积
    深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn
    上图表示的是被拆分为2个filters的分组卷积,每组filters有Dout/2个filter,每组filter的深度与输入特征图的深度一半相等,即Din/2;两组分别做卷积,最后再相加堆叠到输出层,得出深度为Dout的输出特征图。

标准2D卷积:w × h × Din × Dint

分组卷积:w × h × Din/2× Din/2 × 2

好!看出来差别了吧!参数量减少到原来的1/2!当Group为4的时候,参数量减少到原来的1/4

5. 深度可分离卷积

分组卷积和深度可分离卷积中使用的深度卷积之间的某些联系和差异。如果filters组的数量与输入层通道的数量相同,则每个filter的深度 Din/Din=1,这与深度卷积中的filters深度相同。

5.1 DepthWise Convolution

深度可分离卷积是由Depthwise(DW)卷积与Pointwise(PW)卷积组成。该结构和常规卷积类似,可用来提取特征,但相比常规卷积,其参数量和运算成本较低,所以在一些轻量级网络中经常用到此结构,如MobileNet、ShuffleNet。
不同于常规卷积操作,Depthwise卷积的一个卷积核负责一个通道,一个通道只被一个卷积核卷积
深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn

Depthwise卷积完成后的特征图数量与输入层的通道数相同,无法扩展特征图数目。而且这种运算对输入层的每个通道独立进行卷积运算,没有有效地利用不同通道在相同空间位置上的特征信息。因此需要Pointwise卷积来将这些特征图进行组合生成新的特征图。

指标参数:
深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn

5.2 Pointwise Convolution

Pointwise Convolution的运算与常规卷积运算非常相似,它的卷积核的尺寸为 1×1×M,M为上一层的通道数。所以这里的卷积运算会将上一步的map在深度方向上进行加权组合,生成新的Feature map。有几个卷积核就有几个输出Feature map。(卷积核的shape即为:1 x 1 x 输入通道数 x 输出通道数)

深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn
指标参数:
深度学习卷积,机器学习/深度学习,深度学习,计算机视觉,cnn文章来源地址https://www.toymoban.com/news/detail-717704.html

到了这里,关于深度学习—各种卷积的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kears-4-深度学习用于计算机视觉-使用预训练的卷积网络

    本篇学习记录主要包括:《Python深度学习》的第5章(深度学习用于计算机视觉)的第3节(使用预训练的卷积神经网络)内容。 相关知识点: 预训练模型的复用方法; 预训练网络 (pretrained network) 是一个保存好的网络,之前已经在大型数据集上完成训练。理论上数据集足够大

    2024年02月11日
    浏览(34)
  • 计算机视觉与深度学习-卷积神经网络-卷积&图像去噪&边缘提取-图像去噪 [北邮鲁鹏]

    计算机视觉与深度学习-04-图像去噪卷积-北邮鲁鹏老师课程笔记 噪声点,其实在视觉上看上去让人感觉很难受,直观理解就是它跟周围的像素点差异比较大,显得比较突兀,视觉看起来很不舒服,这就是噪声点。 黑丝像素和白色像素随机出现 白色像素随机出现 使用高斯卷积

    2024年02月07日
    浏览(30)
  • 【计算机视觉|生成对抗】用深度卷积生成对抗网络进行无监督表示学习(DCGAN)

    本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 标题: Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks 链接:[1511.06434] Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks (arxiv.org) 近年来,卷积网络(CNNs)的监督学习

    2024年02月13日
    浏览(48)
  • 深度学习与计算机视觉的新技术:从卷积神经网络到Transformer

    深度学习是一种人工智能技术,它旨在模拟人类大脑中的神经网络,以解决复杂的问题。计算机视觉是人工智能的一个分支,旨在让计算机理解和解析人类视觉系统中的图像和视频。深度学习与计算机视觉的结合,使得计算机在处理图像和视频方面具有强大的能力。 在过去的

    2024年02月02日
    浏览(38)
  • 深度学习基础入门篇[8]::计算机视觉与卷积神经网络、卷积模型CNN综述、池化讲解、CNN参数计算

    计算机视觉作为一门让机器学会如何去“看”的学科,具体的说,就是让机器去识别摄像机拍摄的图片或视频中的物体,检测出物体所在的位置,并对目标物体进行跟踪,从而理解并描述出图片或视频里的场景和故事,以此来模拟人脑视觉系统。因此,计算机视觉也通常被叫

    2024年02月05日
    浏览(62)
  • Keras-4-深度学习用于计算机视觉-卷积神经网络对 MNIST 数字进行分类:

    本篇学习记录主要包括:《Python深度学习》的第5章(深度学习用于计算机视觉)的第1节(卷积神经网络简介)内容。 相关知识点: 密集层 (Dense层、全连接层) 和 卷积层的区别在于: Dense层从输入特征空间中学到的是全局模式;而卷积层学到的是局部模式 (学到的是卷积核大

    2024年02月11日
    浏览(38)
  • python 机器视觉 车牌识别 - opencv 深度学习 机器学习 计算机竞赛

    🔥 优质竞赛项目系列,今天要分享的是 🚩 基于python 机器视觉 的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:3分 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 车牌识别其实是个经典的机器视觉任务了,

    2024年02月06日
    浏览(41)
  • 计算机竞赛 python 机器视觉 车牌识别 - opencv 深度学习 机器学习

    🔥 优质竞赛项目系列,今天要分享的是 🚩 基于python 机器视觉 的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:3分 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 车牌识别其实是个经典的机器视觉任务了,

    2024年02月12日
    浏览(47)
  • 计算机竞赛 机器视觉目标检测 - opencv 深度学习

    🔥 优质竞赛项目系列,今天要分享的是 🚩 机器视觉 opencv 深度学习目标检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/dancheng

    2024年02月07日
    浏览(48)
  • 计算机视觉+深度学习+机器学习+opencv+目标检测跟踪(代码+视频)

    计算机视觉、深度学习和机器学习是当今最热门的技术,它们被广泛应用于各种领域,如自动驾驶、医学图像分析、安防监控等。而目标检测跟踪技术则是计算机视觉中的一个重要分支,它可以帮助我们在图像或视频中自动识别和跟踪特定的目标。 下面我们来一一介绍这些技

    2024年02月01日
    浏览(94)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包