卷积神经网络之全连接层

往期回顾:

神经网络之卷积和池化(一)
神经网络之卷积和池化(二)


大多数内容来源于 :卷积神经网络中的全连接层

全连接层的作用是: 连接所有的特征,将输出值送给分类器 (如softmax分类器),其将卷积输出的二维特征图转化成 (N * 1)一维的一个向量。
卷积神经网络之全连接层_第1张图片
最后的两列小圆球就是两个全连接层,在最后一层卷积结束后,又进行了一次池化操作,输出了20个 12*12 的图像(20指最后一层的厚度),然后通过了一个全连接层变成了 1*100 的向量(第一个全连接层神经元的个数是100)。

该操作其实就是用 100 个 20 * 12 * 12(20指的是池化层的厚度)的卷积核卷积出来的 (即每一个神经元有相应的卷积核,都可以进行卷积和池化操作,从而得到一张完整的图片 ),对于输入的每一张特征图,都使用一个和图像大小一样的核卷积进行点积运算,这样整幅图就变成了一个数了,如果厚度是20就是那20个核卷积完了之后相加求和。这样就能把一张图高度浓缩成一个数了。

全连接层的弊端

全连接的参数实在是太多了,如果这张图里就有20 * 12 * 12 * 100个参数,前面随便一层卷积,假设卷积核是7*7的,厚度是64,参数的个数才是7 * 7 * 64,所以现在的趋势是尽量避免全连接,目前主流的一个方法是全局平均值。也就是最后那一层的feature map(最后一层卷积的输出结果),直接求平均值。有多少种分类就训练多少层,这十个数字就是对应的概率或者叫置信度。

理解全连接层

卷积神经网络之全连接层_第2张图片

它是怎么样把3x3x5的输出,转换成1x4096的形式?

这里,我们可以理解为相当于它在中间做了一个卷积,如下图
卷积神经网络之全连接层_第3张图片
从上图我们可以看出,我们用一个 3x3x5 的 filter 去卷积激活函数的输出,得到的结果就是一个fully connected layer 的一个神经元的输出,这个输出就是一个值。因为我们有4096个神经元,我们实际就是用一个3x3x5x4096的卷积层去卷积激活函数的输出。

如果对内容有不同的理解,欢迎讨论

你可能感兴趣的:(#,卷积神经网络专题,卷积神经网络,神经网络,深度学习)