深度学习——为什么将全连接层替换为卷积层?

卷积和全连接

卷积层的特点:稀疏连接,权值共享
全连接层的特点:每个神经元都和上一层的所有神经元相连接

两者的共同点:都是由上一层的输出与参数矩阵相乘从而得到下一层的输入

所以我们得以得到结论,全连接层和卷积层实际上是可以相互转换的

举个例子:
最后一个卷积层的输出为 7*7*512,即每个 feature map 的大小为 7*7,共有 512 个 feature map,然后通过一个全连接层得到了 1*1*4096 的输出,如下图所示:
在这里插入图片描述

全连接到卷积

将全连接层转换为卷积层的关键就在卷积核参数的设置上,仍然用上面的例子:

  1. 设置卷积核大小为 7*7,通道数(厚度)为 512;[ 说白了其实就是和上一层的 feature map 尺寸一模一样 ]
  2. 设置 4096 组卷积核;
    在这里插入图片描述

当这组卷积核作用于输入的 feature map 上时,就能得到一个 1*1*4096 的输出。

由于卷积核大小和输入的 feaure map 一模一样,就保证了转换后的卷积层的运算结果和之前的全连接层是一样的。

探究原因

为什么要将全连接层变为卷积层?

对于传统的 CNN(即包含全连接层),一个确定的网络其输入图像的大小是固定的,比如 CaffeNet 的输入须是 227*227,那么对于更大的图像,在检测时就需要裁剪出很多 227*227 的小图像分别送入 CNN 网络中,使得检测任务十分耗时。

而网络需要输入固定大小图像的主要原因就是有全连接层,当把全连接层替换成了卷积层后,就可以不限制输入图像的大小,一次性输入网络即可获得一张图片所有位置的检测目标概率,形成一幅 heatmap。

固定大小是说送入网络训练的每一个数据大小需要一样,可以全都是 227*227,也可以全都是 224*224,只要统一就行。
这样要求的原因是全连接层与前一层连接时,参数数量需要预先设定好。不同于卷积操作,卷积核的参数数量就是卷积核大小,它与前一层的 feature map 多大没有关系,但是全连接层的参数是随着前一层 feature map 的大小变化而变化的,当输入图像大小不同,全连接层之前得到的 feature map 大小也不一样,那么全连接层的参数数量就不能确定,所以必须固定输入图像的大小。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值