CNN中Conv层和Pooling层的区别是什么?

时间:2017-04-19 02:36:39

标签: neural-network conv-neural-network

汇总可以被视为卷积,无论它是最大/平均,对吧?

不同之处在于conv具有优化参数,但汇集不对,对吧? - 例如在学习期间,池中过滤的权重不会改变。

我也想知道转化和合并的目标之间的区别。

为什么我们使用每一层? 如果我们不使用每一层,会发生什么?

3 个答案:

答案 0 :(得分:5)

卷积层

卷积层用于使用感知域检测输入字段中多个子区域中的(多个)模式。

合并图层

汇集层用于逐步减小表示的空间大小,减少网络中的参数数量和计算量,从而控制过度拟合。

直觉是特征的确切位置不如其相对于其他特征的粗略位置重要。

另外,你说在学习过程中,过滤池中的过滤器的权重没有改变,不一定要有权重。例如,在MAX_POOLING图层中,不需要权重:

enter image description here

所以我真的不明白你的意思,并且转化为了优化的参数,我认为你让它们转过身来。

答案 1 :(得分:2)

差异可以概括为 (1) 如何计算它们以及 (2) 用于什么。

  1. 您如何计算它们

以矩阵 (5x5) 的输入数据为例 - 考虑 5 x 5 像素的图像-。池化层和卷积层是应用于每个输入“像素”的操作。让我们在图像中心取一个像素(为了避免讨论角落会发生什么,稍后详细说明),并为 (3x3) 的池化层和卷积层定义一个“核”。

池化层:你在输入像素上叠加池化核(图中你把蓝色矩阵的中心放在黑色X_00上面,取最大值。 >

卷积层:将卷积核叠加在输入像素上(图中橙色矩阵的中心放在黑色 X_00 的顶部),然后执行元素乘法然后求和,如图所示。

卷积系数,F_..,它们来自哪里?它们是在训练网络时学习的。对于 maxpooling,您不必学习任何东西,只需取最大值。您可以认为 maxpooling 就像一个卷积,但具有固定系数,而不是求和,取最大值。

您对每个输入元素执行此操作。输入图像拐角会发生什么,取决于您的选择:丢弃边/角、垫等处的输入元素。此外,您不能逐个像素、跳跃等连续移动...

  1. 用于max_pooling 减少输入的大小,并对数据进行某种汇总,同时为平移变换提供一些不变性(例如,如果对象左右移动,上下移动)。 convul​​tion,根据过滤器系数的条件(例如,一列必须为负,而其他为正)可以被视为允许提取一些模式的过滤器,例如垂直线、水平线等...

input image, max_pool_kernel, conv_kernel

答案 2 :(得分:0)

转换层具有要学习的参数(即,您更新每个步骤的权重),而池化层则没有-仅应用某些给定的函数(例如max-function)。