购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3.2 反卷积操作

通常卷积会造成分辨率降低。如图2.5所示,上方2×2的矩阵是输出,下方4×4的矩阵是输入,在一个卷积核大小为3×3的矩阵的作用下,经过步长为1的卷积后,4×4的输入矩阵变为了2×2大小的输出矩阵。

反卷积则与之相反,它也是通过在输入图像上按一定步长滑动来获得输出的,但要实现的是分辨率的增加。例如,反卷积可以实现从2×2的输入矩阵变为4×4的输出矩阵,如图2.6所示,每次取输入特征平面中的一个值,然后在大小为3×3的卷积核的作用下,分配到输出大小为3×3的区域。

图2.5 卷积示意

图2.6 反卷积示意

一个用于分类任务的深层神经网络通过卷积来不断抽象学习,实现分辨率的降低,最后得到一个较小的特征平面(Featuremap),通常大小为5×5或7×7。图像分割任务则需要恢复图片,使其与原尺度大小一样,即需要由较小尺度的特征平面来恢复图片尺度,这是一个上采样的过程。正是由于这个过程正好是卷积的逆操作,因此其通常称为反卷积。

实际上并没有反卷积这样的操作,在现在的深度学习框架中,反卷积通常有两种实现方式:一种是以双线性插值为代表的插值法,另一种是转置卷积。

1.插值法

假如已经知道4个点: Q 11 =( x 1 y 1 ), Q 12 =( x 1 y 2 ), Q 21 =( x 2 y 1 ), Q 22 =( x 2 y 2 ),如果要知道任意点的值 Q x y ),则可以采用插值法。

首先对 x 方向进行线性插值:

然后再对 y 方向进行线性插值:

先对 y 方向再对 x 方向进行线性插值也能得到同样的结果。

从上面的结果可以看出,这并不是一个线性的插值,而是两个线性插值的融合,这是非常常用的一种提升图像分辨率的算法。

2.转置卷积

转置卷积(Transposed Convolution)也称为反卷积,其实际上仍是一个卷积操作。在Caffe等开源框架中,反卷积的实现与卷积使用同样的代码。

在实际运用时,转置卷积首先需要计算上采样的倍率,也就是用输出尺寸除以输入尺寸,如上面例子中为4/2,即两倍的上采样。得到了上采样倍率,再根据步长的大小和边界补充的方式对初始输入进行变换,然后使用与卷积一样的方法进行参数学习。 X0gS4S0Q1MaxvRqX51/MZvF6OMsi1rGK2MdGOUcYHxO6szOlN2eTtbPP3UWJjoFd

点击中间区域
呼出菜单
上一章
目录
下一章
×