对CNN中pooling的理解

自己在看论文的过程中结合网上的一些资料,对pooling的一些理解汇总如下,以供参考:
1、pooling主要是在用于图像处理的卷积神经网络中,但随着深层神经网络的发展,pooling相关技术在其他领域,其他结构的神经网络中也越来越受关注。
2、卷积神经网络中的卷积层是对图像的一个邻域进行卷积得到图像的邻域特征,亚采样层就是使用pooling技术将小邻域内的特征点整合得到新的特征。pooling确实起到了整合特征的作用。
3、pooling的结果是使得特征减少,参数减少,但pooling的目的并不仅在于此。pooling目的是为了保持某种不变性(旋转、平移、伸缩等),常用的有mean-pooling,max-pooling和Stochastic-pooling三种。
4、对这三种pooling的分别介绍:
4.1 mean-pooling,即对邻域内特征点只求平均:假设pooling的窗大小是2x2, 在forward的时候,就是在前面卷积完的输出上依次不重合的取2x2的窗平均,得到一个值就是当前mean pooling之后的值。backward的时候,把一个值分成四等分放到前面2x2的格子里面就好了。举例:

forward: [1 3; 2 2] -> [2]
backward: [2] -> [0.5 0.5; 0.5 0.5]

4.2 max-pooling,即对邻域内特征点取最大。forward的时候你只需要把2x2窗子里面那个最大的拿走就好了,backward的时候你要把当前的值放到之前那个最大的位置,其他的三个位置都弄成0。举例:

forward: [1 3; 2 2] -> 3
backward: [3] -> [0 3; 0 0]

据相关理论,特征提取的误差主要来自两个方面:(1)邻域大小受限造成的估计值方差增大;(2)卷积层参数误差造成估计均值的偏移。一般来说,mean-pooling能减小第一种误差,更多的保留图像的背景信息,max-pooling能减小第二种误差,更多的保留纹理信息。
4.3 Stochastic-pooling则介于两者之间,通过对像素点按照数值大小赋予概率,再按照概率进行亚采样,在平均意义上,与mean-pooling近似,在局部意义上,则服从max-pooling的准则。
stochastic pooling方法非常简单,只需对feature map中的元素按照其概率值大小随机选择,即元素值大的被选中的概率也大。而不像max-pooling那样,永远只取那个最大值元素。有关于stochastic pooling理解的例子与代码详见Stochastic Pooling简单理解
5、pooling原因一是仿照人的视觉系统进行降维(降采样),用更高层的抽象表示图像特征,这一部分内容从Hubel&wiesel视觉神经研究到Fukushima提出,再到LeCun的LeNet5首次采用并使用BP进行求解,是一条线上的内容,原始推动力其实就是仿生,仿照真正的神经网络构建人工网络。
6、至于pooling为什么可以这样做,是因为:我们之所以决定使用卷积后的特征是因为图像具有一种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适用。因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计。这个均值或者最大值就是一种聚合统计的方法。
7、做窗口滑动卷积的时候,卷积值就代表了整个窗口的特征。因为滑动的窗口间有大量重叠区域,出来的卷积值有冗余,进行最大pooling或者平均pooling就是减少冗余。减少冗余的同时,pooling也丢掉了局部位置信息,所以局部有微小形变,结果也是一样的。就像图片上的字母A,局部出现微小变化,也能够被识别成A。而加上椒盐噪音,就是字母A上有很多小洞,同样的能够被识别出来。而平移不变性,就是一个特征,无论出现在图片的那个位置,都会识别出来。所以平移不变性不是pooling带来的,而是层层的权重共享带来的。
8、对池化后平移不变性的理解见池化后的平移不变性.

参考资料:
http://www.zhihu.com/question/23437871/answer/24696910
http://www.cnblogs.com/tornadomeet/p/3432093.html
http://blog.csdn.net/zhoubl668/article/details/24801103
http://www.zhihu.com/question/34898241

欢迎补充!

  • 12
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CNN的下采样函数通常被称为池化函数,它的作用是减小特征图的尺寸,从而减小模型的计算复杂度和内存消耗。在卷积神经网络,通过不断的卷积操作,可以提取出越来越复杂的特征,但同时也增加了特征图的尺寸,这会导致训练过程需要更多的计算资源。因此,我们可以通过对特征图进行下采样,来减小特征图的尺寸,从而降低模型的计算复杂度和内存消耗。另外,下采样函数还可以增强模型的鲁棒性,减少过拟合的风险。常见的下采样函数包括最大池化和平均池化。 ### 回答2: CNN下采样函数的作用是减小输入特征图的尺寸,同时减少参数数量,提高模型的计算效率和泛化能力。 在CNN,下采样函数通常由池化层来实现。常见的下采样方式有最大池化(Max Pooling)和平均池化(Average Pooling)两种。 下采样函数主要有以下几个作用: 1. 特征压缩:通过减小输入特征图的尺寸,可以将输入的空间信息进行压缩,从而减少模型参数的数量。这对于大型深度神经网络非常重要,因为过多的参数会导致计算资源的浪费和过拟合的问题。 2. 位置不变性:下采样函数在特征图上进行滑动操作,每个操作窗口内的特征都经过池化运算得到相应的输出。因此,无论物体出现在图像的哪个位置,池化层可以保证提取到相应特征的位置不变性,这对于物体分类任务非常有帮助。 3. 抗噪能力:下采样函数能够一定程度上减小输入特征图的噪声。通过将输入区域内的特征值进行汇总操作,可以抑制噪声对模型的干扰,提高模型的鲁棒性。 总而言之,CNN下采样函数的作用是通过压缩特征图、减少参数数量、提高计算效率、增强位置不变性和抗噪能力等方面,为模型的特征提取和模型整体性能的提升做出贡献。 ### 回答3: CNN (Convolutional Neural Network) 下采样函数的作用是在卷积层后面的网络结构,通过减少特征图(feature map)的尺寸和数量来降低计算复杂度。下采样也被称为池化(Pooling)操作。 下采样函数通常通过滑动窗口的方式,对每个窗口的特征值进行汇聚操作,将窗口内的特征值合并为一个较小的值。常见的下采样方式包括最大池化(Max Pooling)和平均池化(Average Pooling)。 下采样函数的作用主要有以下几点: 1. 降低维度:由于卷积层会增加特征图的数量,每个特征图的尺寸也会增大。而使用下采样函数可以减小特征图的尺寸,从而降低整个网络的参数数量和计算复杂度,使得网络更快速地进行训练和推理。 2. 提取主要特征:下采样函数可以保留窗口内最重要的特征值,而滤除冗余信息。通过提取主要特征,下采样函数可以有助于网络更好地学习和理解图像的关键特征,提高网络对不同样本的泛化能力。 3. 平移不变性:下采样函数使用的池化操作采样的特征在整个特征图上具有平移不变性。即无论是在左上角还是右下角出现的相同特征,在进行下采样后,它们可以被合并为同一个特征,从而使模型更具鲁棒性。 总结而言,CNN下采样函数的作用是通过降低特征图的尺寸和数量,减少参数数量和计算复杂度,同时提取主要特征和增强平移不变性,以改善网络的性能和泛化能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值