卷积层代替全连接层

为什么卷积层可以“代替”全连接层?

  卷积和全连接的区别大致在于:卷积是局部连接,计算局部信息;全连接是全局连接,计算全局信息。(但二者都是采用的点积运算

  但如果卷积核的kernel_size和输入feature mapssize一样,那么相当于该卷积核计算了全部feature maps的信息,则相当于是一个 k e r n e l _ s i z e ∗ 1 kernel\_size*1 kernel_size1的全连接。

  在全连接层上,相当于是 n ∗ m n*m nm其中 n n n是输入的维度, m m m是输出的维度)的全连接,其计算是通过一次导入到内存中计算完成;如果是在最后一个feature maps上展开后进行的全连接,这里若不进行展开,直接使用 o u t p u t _ s i z e output\_size output_size的卷积核代替,则相当于是 n ∗ 1 n*1 n1的全连接(这里的 n n n就是feature maps展开的向量大小,也就是卷积核的大小 k e r n e l _ s i z e ∗ k e r n e l _ s i z e kernel\_size*kernel\_size kernel_sizekernel_size),使用 m m m个卷积核则可以相当于 n ∗ m n*m nm的全连接层。

 但用卷积层代替全连接层的方式,其卷积核的计算是并行的,不需要同时读入内存中,所以使用卷积层的方式代替全连接层可以加开模型的优化。

为什么(在分类网络上)不能直接用卷积层代替全连接层的方式,使得模型处理不同大小的输入?

  因为卷积层的运算是通过卷积核,说到底也就是点积运算,是需要事先设定参数的大小。
  但如果这种操作用于处理不同size的输入,则实际上每次训练时,该层的参数size是不一样的,也就是模型不能得到训练。
  虽然使用卷积层代替全连接层来处理不同大小输入的模型在整个流程上看起来没什么问题,但根本上,该模型是不能得到良好训练的。(从代替的那层卷积层开始,其后的每一层得到的输入分布其实是一直在变化的,所以波动会比较大。

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
卷积层(Convolutional Layer)在深度学习中主要用于图像识别和处理任务,它不同于全连接层(Fully Connected Layer),其主要特点在于: 1. 局部连接性:卷积层只对输入数据的局部区域(称为感受野)应用滤波器(也称卷积核或过滤器)。这样减少了参数数量,提高了模型的计算效率和对输入空间位置不变性的适应性。 2. 参数共享:每个滤波器在整个输入特征图上共享,这意味着一个滤波器可以捕捉到输入数据中的不同位置的相同特征,避免了过拟合。 3. 空间不变性:通过使用步长(stride)和填充(padding),卷积层可以在不改变输出特征尺寸的情况下保持空间结构,这对于图像数据尤其重要。 卷积层通常用于提取图像特征,然后这些特征会被送入池化层进一步降低维度,最后再通过一系列的全连接层进行分类或回归。因此,相比于全连接层卷积层更适用于处理具有空间结构的数据,如图像,而全连接层则更多地用于将前面的特征映射转换为最终的预测结果。 举例来说,在图像识别任务中[^4]: ```python from keras.layers import Conv2D # 假设我们有一个二维的输入数据(例如图片) x = Input(shape=(28, 28, 1)) # (height, width, channels) conv_layer = Conv2D(32, (3, 3), activation='relu')(x) # 32个3x3的卷积核 ``` 在这个例子中,`Conv2D`函数创建了一个卷积层,它将输入的1维图像转换为32维的特征图,每个特征图代表一种不同的特征模式。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值