The value of knowledge lies not in possession, but in share.

0%

把全连接层转化为卷积层

全连接层可以视作一种特殊的卷积过程,本文将主要介绍如何把全连接层连接的过程转化为卷积的过程。

全连接层和卷积层之间唯一的不同就是卷积层中的神经元只与输入数据中的一个局部区域连接,并且在卷积列中的神经元共享参数。

首先以ALexNet为例,其网络结构如下所示:

  1. 特征图和全连接层相连。

    AlexNet经过五次卷积并池化后得到$6\times6\times256$ 的特征图,下一层为$1\times4096$ 的全连接层,这个过程可以看做将$ 6\times6\times256$ 的特征图与4096个$6\times6\times256$的卷积核进行卷积操作,最终得到$ 1\times1\times4096$的特征图,等价与为$1\times4096$ 的全连接层。

  2. 全连接层和全连接层相连。

    接着上面的全连接层,其下一层仍然为$1\times4096$ 的全连接层,通过第1步得到了$1\times1\times4096$的特征图,本次全连接过程可以看做存在4096个$1\times1\times4096$个卷积核,依次和$1\times1\times4096$的特征图进行卷积操作。

下面使用形象化的例子来说明全连接层如何转化为全卷积层。

将一个$6\times6\times256$ 的特征图通过全连接层输出一个$1\times4$的特征向量如下图所示:

FCNtoCNN

通过转换矩阵 $W_{4\times4}$便可以实现上述功能,具体的计算过程如下所示:

FCNtoCNN02

将$ 2\times2\times1$ 的特征图与4个$2\times3\times1$的卷积核进行卷积操作,便能够得到$ 1\times1\times4$的特征向量。

FCNtoCNN03

🍭支持一根棒棒糖吧!