反卷积
一个用于分类任务的深度神经网络通过卷积来不断抽象学习,实现分辨率的降低,最后得到一个较小的FeatureMap,即特征图,通常大小为5×5或者7×7。而图像分割任务需要恢复与原尺寸大小一样的图片,所以需要从这个较小尺度的特征图回复原始图片尺寸,这是一个上采样过程。由于这个过程与卷积正好是对应的逆操作,所以通常称为反卷积。反卷积通常有几种实现方式,一种是双线性插值为代表的插值法,一种是转置卷积。
1.双线性插值
假如我们已经知道四个点,Q11=(x1,y1),Q12=(x1,y2),Q21=(x2,y1),Q22=(x2,y2),如果要知道任一点的值Q(x,y),则可以采用插值法。
首先对x方向进行线性插值:
f(x,y1)≈x2−x1x2−xf(Q11)+x2−x1x−x1f(Q21)(1)
f(x,y2)≈x2−x1x2−xf(Q12)+x2−x1x−x1f(Q22)(2)
然后再对y方向也进行线性插值:
f(x,y)≈y2−y1y2−yf(x,y1)+y2−y1y−y1f(x,y2)(3)
先对y方向进行线性插值,再对x方向进行线性插值也能得到相同的结果。
2.转置卷积
反卷积也被称为转置卷积,即Transposed Convolution,实际上仍然是一个卷积操作。在caffe等框架中,反卷积的实现与卷积使用的是同样的代码。
卷积如图:

图1.卷积操作
反卷积如图:

图2.反卷积操作
[参考文档]
[1]言有三.深度学习之图像识别核心技术与案例实战[M].北京:机械工业出版社,2019:110-112.