全连接层 Fully Connected Layer 一般位于整个卷积神经网络的最后,负责将卷积输出的二维特征图转化成一维的一个向量,由此实现了端到端的学习过程(即:输入一张图像或一段语音,输出一个向量或信息)。全连接层的每一个结点都与上一层的所有结点相连因而称之为全连接层。 由于其全相连的特性,一般全连接层的参数也是最多的。
全连接层的主要作用就是将前层(卷积层、池化层等层)计算得到的特征整合成一个值,其优点在于减少特征位置对于分类结果的影响,提高了整个网络的鲁棒性。
如上图所示,一个网络在全连接层之前,生成了 5×3×3
的特征映射,我们需要只需要使用5个卷积核去和激活函数的输出进行卷积运算,再将五个输出的值相加,即可得到一个全连接层的输出值。如果结果是N维的向量,则需要 N×5
个 3×3
的卷积核。再加上求和运算对应的权值,参数的数量是非常大的,所以一般只在网络的之后使用全连接层。
卷积神经网络(CNN)由输入层、卷积层、激活函数、池化层、全连接层组成,即 (INPUT-CONV-RELU-POOL-FC)。
例如,输入图像是32 * 32 * 3
,3是它的深度(即R、G、B),卷积层是一个5 * 5 * 3
的filter(过滤器),这里注意:感受野的深度必须和输入图像的深度相同。通过一个filter与对入图像进行卷积,我们可以得到一个28*28*1
的特征图。
全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。
由于其全相连的特性,一般全连接层的参数也是最多的。全连接层的权重矩阵是固定的,即每一次feature map的输入必须都得是一定的大小(即与权重矩阵正好可以相乘的大小),所以网络一开始输入图像的尺寸必须固定,才能保证传送到全连接层的feature map的大小跟全连接层的权重矩阵匹配。
下图中连线最密集的2个地方就是全连接层,这很明显的可以看出全连接层的参数的确很多。
在前向计算过程,也就是一个线性的加权求和的过程,全连接层的每一个输出都可以看成前一层的每一个结点乘以一个权重系数W,最后加上一个偏置值b得到,即 。如上图中第一个全连接层,输入有5044个神经元结点,输出有500个结点,则一共需要5044*500=400000个权值参数W和500个偏置参数b。
1、对上一层的输出(即当前层的输入)求导
2、对权重系数W求导
3、对偏置系数b求导
省略具体的数学步骤,具体的计算细节可以点击这个链接
还有一个很生动的讲解:戳这里