池化层的作用总结:

池化层的作用总结:池化层的作用总结:在卷积神经网络中通常会在相邻的卷积层之间加入一个池化层,池化层可以有效的缩小参数矩阵的尺寸,从而减少最后连接层的中的参数数量。所以加入池化层可以加快计算速度和防止过拟合的作用。池化的原理或者是过程:pooling是在不同的通道上分开执行的(就是池化操作不改变通道数),且不需要参数控制。然后根据窗口大小进行相应的操作。一般有maxpooling、averagepoolin...

池化层的作用总结:

在卷积神经网络中通常会在相邻的卷积层之间加入一个池化层,池化层可以有效的缩小参数矩阵的尺寸,从而减少最后连接层的中的参数数量。所以加入池化层可以加快计算速度和防止过拟合的作用。

池化的原理或者是过程pooling是在不同的通道上分开执行的(就是池化操作不改变通道数),且不需要参数控制。然后根据窗口大小进行相应的操作。 一般有max poolingaverage pooling等。

1.池化层主要的作用

(1)首要作用,下采样(downsamping)

(2)降维、去除冗余信息、对特征进行压缩、简化网络复杂度、减小计算量、减小内存消耗等等。各种说辞吧,总的理解就是减少参数量。

(3)实现非线性(这个可以想一下,relu函数,是不是有点类似的感觉?)。

(4)可以扩大感知野。

(5)可以实现不变性,其中不变形性包括,平移不变性、旋转不变性和尺度不变性。

参考链接:
[1] https://zhuanlan.zhihu.com/p/27642620
[2] https://www.zhihu.com/question/36686900
[3] https://blog.csdn.net/LIYUAN123ZHOUHUI/article/details/61920796

2.池化主要有哪几种:

1)一般池化(General Pooling):
其中最常见的池化操作有平均池化、最大池化:

平均池化(average pooling):计算图像区域的平均值作为该区域池化后的值。

最大池化(max pooling):选图像区域的最大值作为该区域池化后的值。

(2)重叠池化(OverlappingPooling):
重叠池化就是,相邻池化窗口之间有重叠区域,此时一般sizeX > stride。

(3)空金字塔池化(Spatial Pyramid Pooling)
空间金字塔池化的思想源自 Spatial Pyramid Model,它将一个pooling变成了多个scale的pooling。用不同大小池化窗口作用于上层的卷积特征。也就是说 spatital pyramid pooling layer就是把前一卷积层的feature maps的每一个图片上进行了3个卷积操作,并把结果输出给全连接层。其中每一个pool操作可以看成是一个空间金字塔的一层。(具体的细节可以看下面的参考链接,讲的比较详细)

这样做的好处是,空间金字塔池化可以把任意尺度的图像的卷积特征转化成相同维度,这不仅可以让CNN处理任意尺度的图像,还能避免cropping和warping操作,导致一些信息的丢失,具有非常重要的意义。

参考链接:
[1] https://blog.csdn.net/juronghui/article/details/78648806
[2] https://blog.csdn.net/yzf0011/article/details/75212513
[3] https://blog.csdn.net/u011534057/article/details/51219959

部分引用自链接:https://blog.csdn.net/XX_123_1_RJ/article/details/86677482

Max pooling的操作如下,整个图谱骗被切割成多个不重叠的同样大小的小块,然后在每个小块中提出最大的value,舍弃其他节点保持原有的平面结构走中得到output。其中Max pooling在不同的depth下单独操作的。

preview

为什么要用Max pooling?Max pooling的物理意义是什么?

img

假设有一个224x224x64的矩阵,为了减少参数集的设置,所以提取其中关键特征(最大值)缩减到112x112x64的矩阵,即一个下采样的过程,虽然对信息的准确度曹成了损失,但是在运算效率和渐变过程中起到了作用。

同时,在对于图像的卷积过程中,只存在少量的有用信息,大部分信息属于冗余信息,,如遇信息的来源主要是来自卷积的逐步操作。

所以采用Max pooling的作用就是避免较多的冗余信息的介入。 Max pooling还有类似“选择句”的功能。假如有两个节点,其中第一个节点会在某些输入情况下最大,那么网络就只在这个节点上流通信息;而另一些输入又会让第二个节点的值最大,那么网络就转而走这个节点的分支。

些输入情况下最大,那么网络就只在这个节点上流通信息;而另一些输入又会让第二个节点的值最大,那么网络就转而走这个节点的分支。

但是Max pooling也有不好的地方。因为并非所有的抓取都像上图的例子。有些周边信息对某个概念是否存在的判定也有影响。 并且Max pooling是对所有的Feature Maps进行等价的操作。就好比用相同网孔的渔网打鱼,一定会有漏网之鱼。

本文来源夜游神fff,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/209307
0
   

发表评论