深度学习—各种卷积

1.普通卷积

1.1 什么是卷积

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

1.2 什么是padding

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

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

1.3 什么是卷积核

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

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

1.3.1 单通道模式

所谓的通道数,可以理解为有多少张二维矩阵图
在这里插入图片描述

1.3.2 多通道模式

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

在这里插入图片描述这里输入层是一个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矩阵)进行卷积的结果:在这里插入图片描述

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

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

1.4 什么是感受野

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

  • 在这里插入图片描述

  • 如图所示,共有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层输出,只有一个
      在这里插入图片描述
  • 上图可以说明堆叠三个33的卷积核替代77的卷积核,这样就能大大节省参数,在VGG网络中就采用了该方法使得参数量大大降低。详情参考VGG网络详解;

1.5 什么是池化

池化通常有两种:平均池化和最大池化,也还有随机池化
在这里插入图片描述

2. 转置卷积

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

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

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

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

我们将一个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)

  • 普通卷积
    在这里插入图片描述

  • 膨胀卷积
    在这里插入图片描述

大部分图像分割的框架都是经历一系列的卷积和下采样的模块之后,再不断与之前卷积结果跨层融合经历一系列卷积和上采样模块的过程,只不过大家融合的方式不尽相同,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的结果进行融合

在这里插入图片描述

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

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

  • 传统卷积
    在这里插入图片描述
  • 分组卷积
    在这里插入图片描述
    上图表示的是被拆分为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卷积的一个卷积核负责一个通道,一个通道只被一个卷积核卷积
在这里插入图片描述

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

指标参数:
在这里插入图片描述

5.2 Pointwise Convolution

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

在这里插入图片描述
指标参数:
在这里插入图片描述

  • 11
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 深度学习是一种以模型来了解数据的机器学习技术,它利用多层神经网络来学习复杂的数据,从而实现自动的特征提取和分类等功能。卷积神经网络是一种深度学习技术,它利用卷积运算来学习图像和视频信息,实现对图像和视频的自动分析、识别和分类等功能。 ### 回答2: 深度学习是人工智能领域中的一种学习方法,旨在模拟人脑神经网络的工作原理。它通过建立多层的神经网络结构,利用大量数据进行训练,自动提取和学习特征,从而实现对复杂数据的分析和处理。深度学习的目标是通过不断优化网络结构和参数,使得网络能够自动地从数据中学习到更加高层次、抽象的特征表示。 而卷积神经网络(Convolutional Neural Network,CNN)是深度学习中的一种重要网络结构。CNN主要用于处理具有网格结构的数据,例如图像、视频等。它通过卷积操作和池化操作,对输入数据进行特征提取和降维处理。卷积操作通过滑动的卷积核对数据进行卷积运算得到感知层,用于提取局部特征。而池化操作则通过降采样的方式减少数据维度,提高计算效率。 卷积神经网络的优势主要体现在以下几个方面:首先,卷积操作使得网络能够有效地利用输入数据的空间结构信息,从而减少参数数量,提高网络的泛化能力;其次,卷积神经网络通过多层结构,逐渐提取抽象的特征表示,能够处理具有复杂结构和高维度的数据;最后,卷积神经网络在图像识别、目标检测、语音识别等任务上表现出色,并在多个领域取得了重大突破。 总的来说,深度学习是一种模拟人脑神经网络的学习方法,通过建立多层网络结构从数据中获取高层次、抽象的特征表示。而卷积神经网络作为深度学习中的一种网络结构,在处理具有网格结构数据时具有重要作用,通过卷积和池化操作能够从图像等数据中提取特征、降维处理,广泛应用于图像识别、目标检测等领域。 ### 回答3: 深度学习是一种机器学习的方法,通过多层次的神经网络来学习和提取数据的特征。它模拟了人脑中神经元之间的信息传递和处理过程,具有优秀的自适应能力和泛化能力。 深度学习的核心是神经网络,而卷积神经网络(Convolutional Neural Network, CNN)是深度学习中的一类神经网络结构。它专门应用于处理图像和语音等具有结构化数据的任务。 卷积神经网络的特点是层次化的结构,通常由输入层、卷积层、池化层和全连接层等组成。其中,卷积层通过卷积操作对输入图像进行特征提取,可以捕捉到不同位置的局部特征。而池化层则通过降采样的方式减少计算量,提高特征的不变性。 卷积神经网络通过反向传播算法进行训练,不断调整网络参数以使得网络输出与真实标签之间的误差最小化。训练过程中需要大量的标注数据和计算资源,但是在训练完成后,卷积神经网络可以快速地对新的输入进行预测。 深度学习卷积神经网络在计算机视觉领域取得了很大的成功,例如图像分类、目标检测、人脸识别等任务。它们不仅可以自动地提取出图像中的关键特征,还可以学习到更加复杂的特征表示。此外,深度学习卷积神经网络也在自然语言处理、语音识别等领域得到广泛应用。 尽管深度学习卷积神经网络在很多任务上表现出色,但是其模型复杂度高、计算资源需求大,且对标注数据的依赖程度较高。因此,研究者们一直在努力寻求更高效的算法和更好的架构来解决这些问题,以进一步提升深度学习卷积神经网络的性能和应用范围。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值