计算机系统应用教程网站

网站首页 > 技术文章 正文

深度学习深度学习(十七)卷积层的另外一个类型-池化

btikc 2024-10-09 08:40:40 技术文章 12 ℃ 0 评论

我们复习一下,之前的卷积层,每一层都有很多个卷积窗口(filter),他用于对图形的特征进行过滤和捕获。而他的结果,将是会让窗口呈现出来的深度会越来越深。

但问题来了,越来越深,而每次输出的窗口没有变化。这样就会产生越来越大的数据,同时,计算数据也会越来越大,而这不仅仅是计算资源的问题,同时因为越来越深,也会导致学习会过拟合(过拟合概念,出门左转,参见我之前的文章)。怎么解决?

解决的方法,就要压缩所创建结果的维度,即让数据变小。其实这个是可以从直观上可以理解的。参见之前的卷积窗口,还记的我们用抽象汽车边界特征的filter吗,其实进行一次这种抽象后,所生成的数据,也并不是所有数据是有效的数据,中间有大量的无效数据,在翻译成图片就可以看到,有大量的黑色色块图片。

好了,实施的方法,就是池化。池化的目标就是要降低输出图片的维度!

池化,有两个方法,一个是最大池化,我们先看看这个怎么实现:

最大池化和卷积窗口实现原理一样,他有一个池化窗口,同时每次移动一个或多格像素,和卷积窗口一样,这样这个窗口就把原来图片全部遍历完了。而计算很简单,就是没移动一个窗口时,取出窗口中的所有值,然后只保留和输出这里面最大的那个值:

比如,这个是上一个卷积层的结果,有深度为三的三个切面。我们定义一个2*2的池化窗口。

如此,所有独立的切面都按此方法,池化成新的切面数据,如下图:


如此,池化窗口将所有的切面遍历完后,将出现新的一层:

看到效果了吗,这就是池化,经过池化层后,其结果是深度不变但是维度是降低了。

好,我们看看另外一个池化方法:平均池化。

平均池化他没有池化窗口,他很暴力,方法是,每一切面只保留和输出这个切面的平均值:

其效果就是:

可以看到,这个池化更彻底,每个深度只保留了一个数据。

我们大部分时候,用的是最大池化,这样温和一点。

到目前为止,关于卷积网络的两个类型的层我们都已经描述完,下面我们会整合这两个卷基层以及之前的展平成,来看看最终卷积网络是怎么做到图像识别的。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表