来自 Google Brain 的 Augustus Odena 等人的文章“Deconvolution and Checkerboard Artifacts“的部分内容 1。
1. 更好的上采样
图像生成网络的上采样部分通常用反卷积网络,不合理的卷积核大小和步长会使反卷积操作产生棋盘效应 (checkerboard artifacts)。
为避免棋盘效应,有两种方法可替换常规的反卷积(卷积的转置)。与反卷积不同,上采样方法本身不应有棋盘效应。理想的方法将会更远离棋盘效应。
直观地看,假设生成的图像中包含1只黑猫。黑猫身体部分的像素颜色应平滑过渡,或极端地说,该部分应全为黑色。实际生成的图像中该部分却有深深浅浅的近黑方块组成,很像棋盘的网格,即棋盘效应。
第一种方法是用到的反卷积核的大小可被步长整除,从而避免重叠效应。与最近成功用于图像超分辨率的技术“子像素卷积”(sub-pixel convolution)等价。
另一种方法是从卷积操作中分离出对卷积后更高分辨率的特征图上采样来计算特征。例如,可以先缩放图像(最近邻插值或双线性插值),再卷积。貌似是个自然的方法。
反卷积与不同缩放卷积方法都是线性操作,并可用矩阵去解释。对于每个输出窗口,反卷积操作的输入唯一,缩放卷积会以阻碍高频棋盘效应的方式来隐式地集中权重(weight-tying)。
后面为猜测部分。
2. 反卷积
从反卷积矩阵 ⎡⎣⎢⎢⎢acbacb⎤⎦⎥⎥⎥ 来看,卷积应该为 [ac0b] ,则卷积的转置为 [a0cb] ;步长为2,可整除反卷积大小。
3. 缩放卷积
缩放卷积为线性操作:假设原图像为
A
,经过插值后的图像为
C 为卷积操作的卷积核。此时为上采样,理解为反卷积操作中的卷积核。(1) 最近邻缩放卷积
⎡⎣⎢⎢⎢a+bacb+ca+bacb+c⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢acbacb⎤⎦⎥⎥⎥+⎡⎣⎢⎢⎢bacbac⎤⎦⎥⎥⎥发现,插值增量图像表示的矩阵为原图像表示的矩阵下移1行。可将原图像矩阵看成环形队列(队列最后1行的输出送入队列的第1行)。
(2) 双线性缩放卷积
⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢a+b2a2(?)c+b2b+c2+a2a+b2a2c2c+b2b+c2+a2c2⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢acbacb⎤⎦⎥⎥⎥+⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢b2a2(?)c2b2a2c2⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥+⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢b2a2c2b2a2c2⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥发现,插值增量图像可细分为原图像表示的矩阵下移1行后乘以 12 与原图像表示的矩阵上移1行后乘以 12 。
4. 注意
(?)部分的元素为原文中的矩阵的缺失部分。所以,可能仍未理解 Augustus Odena 的本意。有误导之嫌,仅供娱乐~ Σ(⊙▽⊙”a