全连接层替换为卷积层

原博客地址:https://blog.csdn.net/qq_31347869/article/details/89484343
以下为博主个人整理内容
在学习FCN时的一些疑惑

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

对于传统的 CNN(即包含全连接层),一个确定的网络其输入图像的大小是固定的,比如 CaffeNet 的输入须是 227227。但对于更大的图像,在检测时就需要裁剪出很多 227227 的小图像分别送入 CNN 网络中,使得检测任务十分耗时且数据容易出错。所以针对较大的图像想要改变这种被固定输入的CNN。

为何CNN网络需要输入固定大小图像呢?

主要原因是因为全连接层的存在,当全连接层与前一层连接时,全连接层的权重是不变的,所以输入的图片大小不能变。而卷积层可以让卷积网络在一张更大的输入图片上滑动,得到每个区域的输出,这样就突破了输入尺寸的限制,就获得了目标的位置信息。可以高效地对测试图像做滑动窗式的预测,可以高效的检测多个目标和给出位置信息。

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

为何卷积层和全连接层可以相互转化?

让我们来回顾一下全连接网络和卷积网络
基础知识:https://www.zybuluo.com/hanbingtao/note/485480

全连接神经网络之所以不太适合图像识别任务,主要有以下几个方面的问题:

  • 参数数量太多,扩展性差。考虑一个输入10001000像素的图片(一百万像素,现在已经不能算大图了),输入层有10001000=100万节点。假设第一个隐藏层有100个节点(这个数量并不多),那么仅这一层就有(1000*1000+1)*100=1亿参数。我们看到图像只扩大一点,参数数量就会多很多,因此它的扩展性很差。
    -没有利用像素之间的位置信息。对于图像识别任务来说,每个像素和其周围像素的联系是比较紧密的,和离得很远的像素的联系可能就很小了。如果一个神经元和上一层所有神经元相连,那么就相当于对于一个像素来说,把图像的所有像素都等同看待,这不符合前面的假设。当我们完成每个连接权重的学习之后,最终可能会发现,有大量的权重,它们的值都是很小的(也就是这些连接其实无关紧要)。努力学习大量并不重要的权重,这样的学习必将是非常低效的。
  • 网络层数限制。我们知道网络层数越多其表达能力越强,但是通过梯度下降方法训练深度全连接神经网络很困难,因为全连接神经网络的梯度很难传递超过3层。因此,我们不可能得到一个很深的全连接神经网络,也就限制了它的能力。

那么,卷积神经网络又是怎样解决这个问题的呢?主要有三个思路:

  • 局部连接 这个是最容易想到的,每个神经元不再和上一层的所有神经元相连,而只和一小部分神经元相连。这样就减少了很多参数。
  • 权值共享 一组连接可以共享同一个权重,而不是每个连接有一个不同的权重,这样又减少了很多参数。
  • 下采样 可以使用Pooling来减少每层的样本数,进一步减少参数数量,同时还可以提升模型的鲁棒性。

一个卷积神经网络由若干卷积层、Pooling层、全连接层组成。
在这里插入图片描述
卷积层的特点:稀疏连接,权值共享
全连接层的特点:每个神经元都和上一层的所有神经元相连接
两者的共同点:都是由上一层的输出与参数矩阵相乘从而得到下一层的输入

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

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

全连接层如何变成卷积层

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

1.设置卷积核大小为 77,通道数(厚度)为 512;
说白了其实就是和上一层的 feature map 尺寸一模一样
2.设置 4096 组卷积核;
卷积核组数与全连接输出个数相同
在这里插入图片描述
当这组卷积核作用于输入的 feature map 上时,就能得到一个 1
1*4096 的输出。

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值