美文网首页Python3机器学习工具癖想法
Python3机器学习实践:卷积神经网络篇三 池化

Python3机器学习实践:卷积神经网络篇三 池化

作者: AiFany | 来源:发表于2019-05-13 14:50 被阅读54次
image.png

池化(Pooing)操作的对象是单通道的数字矩阵,也就是对该矩阵某一个邻域内的数字集合进行采样。主要有3种形式:一般池化,重叠池化和金字塔池化。

一、池化类型

  • 一般池化

池化窗口的尺寸为n*n,一般情况下池化窗口都是正方形的。步长等于n。此时池化窗口之间是没有重叠的。对于超出数字矩阵范围的,只计算范围内的或者范围外的用0填充在计算。本文只介绍最大值池化,均值池化,随机池化。下面给出图示:

  • 最大值池化

池化窗口范围内的最大值作为采样的输出值。

image
  • 均值池化

池化窗口范围内的平均值作为采样的输出值,也就是普通均值池化。或者将范围内的数字归一化,每个数字与该范围内的数字之和的比例作为该数字的权重,然后原始数字和对应权重的乘积的和作为最终的输出值,也就是加权平均。下图中的示例是前者。

image
  • 随机池化

池化窗口范围内的数字,采用轮盘赌的方式进行采样,就是值较大的数字成为采样输出值的概率较大。

  • 重叠池化

池化窗口之间有重叠。也就是步长大于等于1小于n,计算和一般池化是一样的。

  • Spatial Pyramid Pooling 空间金字塔池化

空间金字塔池化,简称SPP,又名空间金字塔匹配。BP神经网络(全连接神经网络)中要求的输入维度必须是一致的,卷积神经网络中的网络也包括全连接层。因此需要将尺寸大小不一样的图片(经过多层卷积池化后的结果),转换为同样的尺寸,作为全连接神经网络的输入。如果利用裁剪可能会丧失很多的边缘信息,而SPP可以很好的解决这个问题。

空间金字塔池化就是首先把图片看成1块,对这1块进行最大值池化,得到1个值,分成4块,对这4块分别进行最大值池化,得到4个值;分成16块,对这16块分别进行最大值池化,得到16个值,以此类推。这样就可以保证对于不同尺寸的图片而言,最终得到的值的个数是一样的。因为是最大值池化,超出范围的用不用0填充不会影响结果。

下面给出2个不同尺寸的图片,进行空间金字塔池化的结果。

image

二、池化作用

  1. 降低了图片尺寸,也就是增大了感受野。感受野就是数字矩阵中的一个数字所对应的原图中的区域大小。因为池化是在某个范围内选择一个数字,也就是让这个数字代表这个范围内的所有的像素得值。这样做虽然也丢失了一些图片信息,但是同时增加了鲁棒性。

  2. 增加平移不变性。图片中某个目标单纯的位置的移动,不应该影响识别结果。而池化捕捉的恰好是目标的特征,并不是目标所在的位置,因此增加了平移不变性。

  3. 提升训练速度。因为在保留特征信息的前提下,降低了图片的尺寸。

三、池化对比

  • 原图
image
  • 池化后
image

项目地址卷积神经网络CNN,扫描下方二维码或者微信公众号直接搜索”Python范儿“,关注微信公众号pythonfan, 获取更多实例和代码。

pythonfan.jpg

相关文章

  • CS231n 卷积神经网络: 架构, 卷积/池化层(上)

    卷积神经网络: 架构, 卷积/池化层(上) 卷积神经网络: 架构, 卷积/池化层(上) 卷积神经网络(CNNs/C...

  • Python3机器学习实践:卷积神经网络篇三 池化

    池化(Pooing)操作的对象是单通道的数字矩阵,也就是对该矩阵某一个邻域内的数字集合进行采样。主要有3种形式:一...

  • 卷积神经网络

    参考博客: 卷积神经网络_(1)卷积层和池化层学习 - outthinker - 博客园 卷积神经网络(CNN)模...

  • CS231n 卷积神经网络: 架构, 卷积/池化层(下)

    卷积神经网络: 架构, 卷积/池化层(下) 卷积神经网络: 架构, 卷积/池化层(下)2.CNNs中的各种层(接上...

  • 卷积神经网络

    卷积神经网络 卷积神经网络2 池化层 激活层 全连接层 过拟合

  • MachineLearning

    一、卷积&池化 卷积 卷积能抽取特征 多层卷积能抽取复杂特征 卷积神经网络每层的卷积核权重是由数据驱动学习得来,不...

  • 再战机器学习—卷积神经网络

    卷积神经网络 卷积神经网络可能是离我们最近的神经网络,遍布在计算机视觉应用。通常卷积神经网络是由卷积层、池化层和全...

  • Pooling 小结

    在卷积神经网络中,我们经常会碰到池化操作,而池化层往往在卷积层后面,通过池化来降低卷积层输出的特征向量,同时改善结...

  • 卷积神经网络(CNN)学习笔记

    卷积神经网络(CNN) 1.神经网络结构示意图如下 相比于普通的神经网络,卷积神经网络多了卷积层以及池化层,还增加...

  • 深度学习|Keras识别MNIST手写数字(CNN)

    材料和方法 今天继续使用MNIST数据。方法:这次使用的方法为卷积神经网络(CNN)。卷积神经网络通过卷积层,池化...

网友评论

    本文标题:Python3机器学习实践:卷积神经网络篇三 池化

    本文链接:https://www.haomeiwen.com/subject/nsnlaqtx.html