【Deep Learning】关于CNN中全连接层的理解

全连接层(FC)在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。

在实际应用中,全连接层存在以下两种情况:
1.全连接层之前是卷积层,也就是说全连接层的输入是最后一层卷积层(如果是标准CNN结构)是H x W x C的输出,全连接层实现的过程可以理解为使用卷积核大小为H x W(h和w分别为前层卷积结果的高和宽)的全局卷积,具体使用多少个卷积核,要根据后面全连接层的神经元结点数而定。

  • 举个栗子(糖炒栗子很好吃!):
    假如最后卷积层的输出是7x7x512(VGG-16),如果后层的全连接层含4096个神经元,则使用卷积核为7x7x512x4096全局卷积来实现这一全连接运算过程。

2.全连接层之前还是全连接层,很容易理解,全连接层后又跟一个全连接层,可以转化为用卷积核为1x1的卷积对前层FC的卷积操作,输出后层FC。

  • 再举个栗子(糖炒山楂也不错!):
    假如前层FC的输出是4096个神经元,后再叠加一个2048个神经元的FC,我们可以把它想象成一个1x1x4096的feature map使用2048个大小为1x1x4096的卷积核进行卷积运算操作。

不过,这里面有个问题,全连接层到底用卷积实现的,还是直接flatten的?
其实两种理解方式的不同,最终得到的效果是一样的,我觉得没必要纠结这一点。
文献《Going Deeper with Contextual CNN for Hyperspectral Image Classification》也提到:

Note that convolving a 1 x 1 x d blob with l filters whose size is 1 x 1 x d can achieve the same effect as fully connecting the 1 x 1 x d input blob to l output nodes.

这里是说,对于1 x 1 x d的特征图,使用1 x 1 x d大小的卷积核去卷积与1 x 1 x d的输入进行全连接操作输出l个神经元效果是相同的。

参考链接:
https://zhuanlan.zhihu.com/p/33841176
https://www.zhihu.com/question/41037974

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值