我一直试图理解DeConvNet中的非池化和反卷积是如何工作的。
非池化
在非池化阶段,激活值被恢复到最大激活选择的位置,这一点是合理的,但是剩余的激活值该怎么办呢?这些剩余的激活值是否也需要恢复,或者以某种方式进行插值,或者在非池化图中直接填充为零?
反卷积
在卷积部分(即卷积层、ReLU、池化)之后,通常会有多个特征图输出,这些特征图将被视为后续层(反卷积等)的输入通道。如何将这些特征图结合起来,以获得与原始输入相同分辨率的激活图?
回答:
1 非池化。
在关于非池化的原始论文中,剩余的激活值被设为零。
2 反卷积。
反卷积层只是其对应卷积层的转置。例如,如果卷积层的形状是[height, width, previous_layer_fms, next_layer_fms]
,那么反卷积层的形状将是[height, width, next_layer_fms, previous_layer_fms]
。卷积层和反卷积层的权重是共享的!(例如参见这篇论文)