deep learning中的pooling是什么意思?

  统计/机器学习 深度学习 人工神经网络    浏览次数: 1254
4

一些neural net里有所谓的pooling layer,请问这里的pooling是什么意思?

谢谢!


 

ZackLi   2017-09-12 07:50



   6个回答 
12

pooling中文叫做池化,常用的pooling方法有最大值法和均值法。

pooling的作用就是对图片中的每个小块(而不是每个点)提取信息。


比如有个4 x 4的矩阵,

如果我们用2 x 2的max pooling,也就是对上面原矩阵中2 x 2的小分块矩阵求最大值,就可以得到如下结果。

如果我们用2 x 2的average pooling,也就是对上面原矩阵中2 x 2的小分块矩阵求均值,就可以得到如下结果。


染盘   2017-10-27 08:36

7

池化实际上是使图片变小来突出特征,节省运算量。

比如2X2池化是把相邻4个点变成一个点,怎么处理呢?

上面说的比较清楚了,一般取最大值,或者平均值。

CNN就是为了图像处理设置的,图像中我们进行池化并不会对图像造成很大损失。

年轻人   2017-11-20 12:24

如果是用CNN做nlp文本的话,还需要pooling吗 - TheOne   2017-12-04 15:22
如果用cnn做nlp的问题,那也是需要pooling的 - 染盘   2017-12-05 09:57
4

手册里有

池化

数据科学小K   2018-09-24 09:58

4

pooling是池化的意思,一般在神经网络中有常见的两种池化方式

池化层

在通过卷积层获得输入的特征时,我们需要做的利用这么特征继续做分类运算。但是针对多个卷积核下的输出特征,依旧会面临着超庞大的参数运算,为了解决这个问题,我们依旧需要减少参数量。在使用卷积层时,是因为卷积运算可以有效的从输入中提取特征,我们可以对特征做再统计。这一再统计既要能够反映原输入的特征,又要能够降低数据量,我们很自然的想到了取平均值、最大值。这也是池化操作。


池化层原理

从CNN的总体结构上来看,在卷积层之间往往会加入一个池化层(pooling layer).池化层可以非常有效地缩小图片的尺寸。从而减少最后全连接层的参数,在加快计算速度的同时也防止了过拟合的产生。

池化层前向传播过程类似于卷积层的操作一样,也是通过移动一个类似滤波器的结构完成的,不同于卷积层的是,池化层的滤波器计算不是加权求和,而且求区域内的极大值或者平均值。 

一 使用最多的是最大值操作的池化层,又称最大池化层(max pooling),计算图像区域内最大值,提取纹理效果较好. 


二  使用平均值操作的池化层,又称平均池化层(mean pooling),计算图像区域的平均值,保留背景更好  



evan   2018-09-27 21:05

2

以图片的二维pooling为例,它是用于降低二维向量的维度。常用的pooling方法有max pooling, average pooling等。以2乘2的max pooling为例,它就是仅仅保留每个2乘2的窗口中数值最大的那个元素。

machine learner   2017-09-15 04:33

1

max pooling可以看做是2x2的非线性filtering(取max)再1/2下采样(down sample),用于提取一个2x2块的信息。最主要目的是

1.在空间上减小数据量,减少计算量

2加入空间平移不变性,减少过拟合。平移小于1个像素,不影响结果。

pooling只能用在Image/Region classification这类以区域为单位的任务。对于以像素为单位的任务(regression / restoration/ deconvolution)最好不用pool,因为在空间上的信息被压缩(down sample)后很难恢复,或者是能靠训练数据得到先验知识中去猜。

Zealing   2018-10-02 02:57



  相关主题

关于神经网络的性能   1回答

神经网络中的gradient check是什么意思?   2回答

神经网络中的Dropout和Bagging   1回答

前馈神经网络如何选择隐藏层的数量   2回答

神经网络中的dense和sparse是什么意思?   2回答

dropout rate一般设置多大?   3回答

深度学习和人工神经网络是一回事吗?   1回答

训练神经网络中经常提到的epoch是什么意思   2回答

mac电脑怎么用ssh远程控制Linux服务器查看可视化结果   1回答

pytorch 的交叉熵损失总是报错,同样的结构改成MSELoss就没有问题   1回答

keras.models.Sequential()是一种什么模型   1回答

用神经网络做二元分类,输出层用Sigmoid还是Softmax?   3回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!