CNN中的采样和池化

之前学习神经网络总是感觉采样就是池化,经过后来的学习发现,其实采样还真是池化。

采样层是使用 pooling的相关技术来实现的,目的就是用来降低特征的维度并保留有效信息,一定程度上避免过拟合。但是pooling的目的不仅仅是这些,他的目的是保持旋转、平移、伸缩不变形等。

采样有最大值采样,平均值采样,求和区域采样和随机区域采样等。池化也是这样的,比如最大值池化,平均值池化,随机池化,求和区域池化等。

mean-pooling,即对邻域内特征点只求平均,max-pooling,即对邻域内特征点取最大。根据相关理论,特征提取的误差主要来自两个方面:(1)邻域大小受限造成的估计值方差增大;(2)卷积层参数误差造成估计均值的偏移。一般来说,mean-pooling能减小第一种误差,更多的保留图像的背景信息,max-pooling能减小第二种误差,更多的保留纹理信息。Stochastic-pooling则介于两者之间,通过对像素点按照数值大小赋予概率,再按照概率进行亚采样,在平均意义上,与mean-pooling近似,在局部意义上,则服从max-pooling的准则。

LeCun的“Learning Mid-Level Features For Recognition”对前两种pooling方法有比较详细的分析对比,如果有需要可以看下这篇论文。


部分参考:http://blog.youkuaiyun.com/wonengguwozai/article/details/51248995

### 卷积下采样池化采样的区别 #### 区别概述 卷积神经网络(CNN)中的两种常见的下采样方法分别是卷积下采样池化采样。这两种方法虽然都能达到减小特征图尺寸的目的,但在机制上有显著差异。 #### 实现方式 ##### 卷积下采样 卷积下采样通过设置较大的步幅(stride)或使用较小的感受野(kernel size),使得每次滑动窗口移动的距离大于1,从而减少了输出特征图的空间分辨率。这种方式不仅能够缩小特征图的尺度,而且可以学习到更复杂的模式识别能力[^4]。 ```python import torch.nn as nn conv_downsample = nn.Conv2d(in_channels=64, out_channels=128, kernel_size=3, stride=2, padding=1) output = conv_downsample(input_tensor) ``` ##### 池化采样 相比之下,池化采样并不涉及权重的学习过程;而是基于局部区域内的统计特性来进行简化表示。最常用的两种形式为最大池化(Max Pooling)平局池化(Average Pooling)[^2]: - **最大池化**:选取每个局部区域内最大的响应值作为该位置的新特征; - **平均池化**:计算局部区域内所有元素的均值并以此更新新特征。 ```python max_pool_layer = nn.MaxPool2d(kernel_size=2, stride=2) avg_pool_layer = nn.AvgPool2d(kernel_size=2, stride=2) max_pooled_output = max_pool_layer(input_tensor) avg_pooled_output = avg_pool_layer(input_tensor) ``` #### 应用场景 对于不同的任务需求,选择合适的下采样策略至关重要: - 当希望保留更多的空间信息并且允许模型自适应地调整不同通道间的关系时,则更适合采用卷积下采样的方案。 - 如果目标是快速缩减数据规模、增强对输入变换(如位移)的鲁棒性以及控制过拟合风险,则应优先考虑应用池化操作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值