对深度学习卷积操作的理解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Katherine_hsr/article/details/81151385

本文介绍对了对卷积核、滤波器、通道等概念的理解。

二维卷积

二维卷积就是卷积核(指的是一个小的权值矩阵)在二维输入数据上滑动遍历整张图片,对当前输入的部分元素进行矩阵乘法,将一个二维矩阵转换为另一个二维矩阵,然后将结果输出,输出特征实际上是在输入数据相同位置上的加权和。下图是一个标准的卷积:
这里写图片描述
从上面的描述可知,卷积核的尺寸直接决定了生成新的特征是汇合了多少个输入特征,在上图中,我们输入的特征为5*5, 输出数据为(5-3+1)*(5-3+1)=3*3. 如果我们使用标准的全连接层,就会产生一个25*9=225 个参数的权值矩阵,每个输出都是所有输入数据的加权求和。使用卷积操作我们只用9个参数来实现这个变换,每个输出特性不用查看每个输入特征,而只是查看大致相同位置的输入特征。

常用的卷积技术

  1. Padding
    在下面的动画中可以看到卷积核在滑动过程中边缘基本上会被裁剪掉,因为边缘上的像素永远不在卷积核的中心,但是我们通常需要让输出尺寸等于输入尺寸,所以边缘被裁减掉会使输入尺寸丢失。为了解决这个问题,padding使用一些假像素(通常是0)来填充边缘,同事延伸到边缘外的假像素,从而产生与输入相同大小的输出。
    这里写图片描述
  2. Striding
    在运行卷积层时我们通常希望输出尺寸比输入尺寸更低,在增加信道数量的同时将空间尺寸减小。其中一种方法是使用池化层,例如使用2*2的网格的平均值、最大值、最小值将空间维度减小。还有一种方式是striding,基本思想是改变卷积核移动的歩长跳过一些像素。Stride是1表示的是一个标准卷积模式,stride是2表示卷积核移动的歩长是2,跳过相邻像素,图像缩小为原来的1/2,stride是3表示卷积核移动的歩长是3,跳过两个相邻像素,图像缩小为原来的1/3。下面图片描述的是一个歩长为2的卷积操作。
    这里写图片描述

多通道版本

上面图像中描述的都是单通道的图像,在实际应用中大多数输入图像都是3通道的,通道数只会增加网络深度,通常会将图像的通道视作一个整体,强调其整体的一面而不关注各自的差异。
这里写图片描述
滤波器和卷积核的区别:仅在1通道的情况下,滤波器和卷积核是等价的,但是在一般情况下,这两个概念是不同的。每个滤波器是卷积核的集合,图层的每个输入通道都有一个唯一的卷积核,卷积层中的每个滤波器都只输出一个通道,他们是这样实现的:滤波器的每个卷积核在各自的输入通道上滑动,产生各自的计算结果,一些内核可能比其他内核具有更大的权重,以便某些内核更强调某些输入通道。例如,滤波器的红色通道卷积核可能比其他通道的卷积核有更大的权重,因此红色通道特征的反应要强于其他通道。
这里写图片描述
做完卷积操作后滤波器的卷积核各自产生一个对应的通道输出,然后每个通道处理的结果汇总在一起形成一个通道,最后整个滤波器产生一个总的输出通道。
这里写图片描述
在实际应用过程中通常需要对每个输出滤波器增加偏置以便产生最终的输出通道。
这里写图片描述
其他数量滤波器的生成都和单滤波器相同:每个滤波器使用不同的卷积核集合和具有上述过程的标量偏差项来处理输入数据,最终产生一个输出通道。然后将它们连接在一起以产生总输出,其中输出通道的数量是过滤器的数量。在输出数据送入另一个卷积层之前,通常还要应用非线性激活函数。重复上述操作即可完成网络的搭建。

猜你喜欢

转载自blog.csdn.net/Katherine_hsr/article/details/81151385
今日推荐