全连接层的每一个节点都与上一层每个节点连接,是把前一层的输出特征都综合起来,所以该层的权值参数是最多的。例如在VGG16中,第一个全连接层FC1有4096个节点,上一层POOL2是7*7*512 = 25088个节点,则该传输需要4096*25088个权值,需要耗很大的内存。
由于可以把全连接层看成卷积层的一个特例,比如VGG16,POOL2到FC1层是全连接的,把pool2的输出节点按向量排列,即有25088个维,每一维大小为1*1,卷积核可以看成num_filters = 4096,channal = 25088,kernel_size = 1,stride=1,no pad。
1.前向传播
下面用一个简单的网络具体介绍一下推导过程
其中,x1、x2、x3为全连接层的输入,a1、a2、a3为输出,
可以写成如下矩阵形式:
2.反向传播
由于全连接层可以看出卷积层的一个特例,详细反向传播过程可以参考卷积层(Convolution Layer)。