CNN入门讲解:什么是采样层(pooling)

CNN入门讲解:什么是采样层(pooling)

首发于卷积神经网络(CNN)入门讲解

各位看官老爷们

好久不见

这里是波波给大家带来的CNN卷积神经网络入门讲解

每周我将给大家带来绝对原创,脑洞大开,幽默风趣的深度学习知识点入门讲解

希望大家多多支持,多多关注

麻烦大家给我点个赞,就是那种让我看起来,写的还不错的样子!

拜托了!!o(´^`)o

微信公众号:follow_bobo


今天是平安夜,希望大家未来的日子里平平安安


今年第一次圣诞节在新加坡过

先让我们来看看新加坡的圣诞

看看就好了

上一次我们讲到哪了

嗯,对了,讲到卷积输出了,输出的特征图(feature map)到了采样(pooling,有些也叫subsample)层手上,

采样层实际上就是一个特征选择的过程

假设我们用边缘滤波器去卷积输入图片,得到的特征值矩阵如下:


其实采样层(pooling)非常好理解,我们这里特指maxpooling

什么是maxpooling 呢

实际操作就是在四个方格里选最大的那个,对,就是9

这个矩阵就是特征图

数字的含义,你可以理解为能代表这个特征的程度

比如上一层卷积层的卷积核或者说过滤器是边缘过滤器

9的意思就代表在这个区域,这一块部位最符合边缘特征

Maxpooling 就是在这个区域内选出最能代表边缘的值,也就是9,然后丢掉那些没多大用的信息

为什么要这么做

举个例子

下面四个美女,如果非要你选,你娶谁

你肯定会选最漂亮的(最符合的特征)


其他的你会想要吗?

不想了吧


我相信这个选择应该有标准答案了,如果你选的不是标准答案

不好意思

这位同学,我教不了你,你不用往下看了


‘那个,我要是想把4个都娶了呢’(不做maxpooling)

这位同学,要求挺多啊

首先你娶回4个,她们会各种勾心斗角,让你崩溃(overfitting)

然后你会有巨大的经济压力,身体也吃不消(参数过多导致运算量大)

最后可能还会难以平衡婆(上一次卷积层)媳或者母子(下一层卷积层)关系(无法满足模型结构需求)

现在,你还想娶4个吗


池化是怎么进行的呢

非常类似卷积层的卷积核

你就可以理解为卷积核每空两格做一次卷积,卷积核的大小是2x2, 但是卷积核的作用是取这个核里面最大的值(即特征最明显的值),而不是做卷积运算



池化层还有什么性质

可以一定程度提高空间不变性,比如说平移不变性,尺度不变性,形变不变性

对,一定程度上

为什么会有空间不变性呢

因为上一层卷积本身就是对图像一个区域一个区域去卷积

因此对于CNN来说

重要是单独区域的特征,以及特征之间的相对位置(而不是绝对位置)

图像细微的变换

经过卷积,maxpooling之后,输出结果和原来差别可能不算大,或者没有差别


比如平移不变性(translation invariant)

意思就是图像经过一个小小的平移之后,依然产生相同的池化特征

这个小小的平移要注意了

这个平移是在你的池化矩阵的范围

对于单个像素,有8个变换的方向(上、下、左、右、左上、左下、右上、右下),如果最大层是在2*2的窗口上面实现,这8个可能的配置中,有3个可以准确的产生和平移前相同的结果(filter size 2x2)


说明鲁棒性还行

为什么我们想要平移不变性

举个例子:

‘2’的位置发生了变化,我们仍然希望分类器能正确分别出他们



Pooling 层说到底还是一个特征选择,信息过滤的过程,也就是说我们损失了一部分信息,这是一个和计算性能的一个妥协,随着运算速度的不断提高,我觉得这个妥协会越来越小。

现在有些网络都开始少用或者不用pooling层了


关于,average pooling

实际上就是把filter 里面的所以值求一个平均值

特征提取的误差主要来自两个方面:

(1)邻域大小受限;

(2)卷积层权值参数误差。

目前主流上对于average pooling 和max-pooling 的主要区别在于

average -pooling能减小第一种误差,更多的保留图像的背景信

max-pooling能减小第二种误差,更多的保留纹理信息


平安夜还看我的教程的

多半是单身狗

当然,平安夜写教程的,多半也是

那么

祝点赞的各位,女朋友长得和里面最漂亮的一样


编辑于 2018-04-23

文章被以下专栏收录