深度学习之 11 空洞卷积的实现

本文是接着上一篇深度学习之 11 卷积神经网络实现_水w的博客-CSDN博客

目录

空洞卷积

1 优点与适用性

2 存在的问题

◼ 空洞卷积存在网格效应

◼ 远距离的点之间的信息可能不相关

◼ 解决方法

◼ 满足HDC条件的空洞卷积叠加演示:dilation rate [1, 2, 5] with 3 x 3 kernel

3 使用PyTorch实现空洞卷积

◼ 空洞卷积的实现 实现dilation为1,2,5的三层空洞卷积

◼ 空洞卷积实验结果

空洞卷积

  • 灰色部分为卷积核权重,与左侧相同;白色部分为空,值为0
  • dilation rate:空洞率,空洞卷积权 重值的 间隔 为dilation rate – 1
  • 当空洞率为1时,退化为普通卷积
  • 空洞后的卷积核的空间(感受野)大

深度学习之 11 空洞卷积的实现

深度学习之 11 空洞卷积的实现

1 优点与适用性

◼ 在不增加参数的情况下 增大感受野, 适用于图片size较大,或需要快速感受全局信息的情况
◼ 通过设置不同的dilation rate捕获 多尺度 上下文信息,适用于需要捕获图片的多层次的情况,如语义分割等。

卷积核为大小2,四层卷积,普通卷积可以覆盖 5个像素点, 而使用空洞卷积可以覆盖 16个像素点

深度学习之 11 空洞卷积的实现

但是因为空洞卷积的特殊性,我们其实并不能够项普通卷积一样拿来就用。

2 存在的问题

空洞卷积存在网格效应
远距离的点之间的信息可能不相关

空洞卷积存在网格效应

三层空洞卷积 dilation=2

只获取到了一些点的信息, 并没有获取到全部的信息。实际上就算我们不断的继续堆叠最顶点的这个点,只用到了部分结点,我们还是不能够获取到全部底层的信息。

右侧的序列上, 如果我们不进行填充,那么在3层之后就已经到头了,没有办法再进行卷积了。

深度学习之 11 空洞卷积的实现

远距离的点之间的信息可能不相关

空洞卷积虽然是被设计用来捕获更 远距离 的信息的,但是这样一味的使用大的dalition就会 忽略掉近距离的信息 ,如何能 同时处理远距离信息和临近区域的信息 是设计好空洞卷积的关键之一。

点B明显与 近距离点A更相关,与左上角的点C 关系不大,如果dalition过大则容易 忽略点A的信息而降低模型效果。

深度学习之 11 空洞卷积的实现

深度学习之 11 空洞卷积的实现

满足HDC条件的空洞卷积叠加演示:dilation rate [1, 2, 5] with 3 x 3 kernel

深度学习之 11 空洞卷积的实现

深度学习之 11 空洞卷积的实现

深度学习之 11 空洞卷积的实现

3 使用PyTorch实现空洞卷积

深度学习之 11 空洞卷积的实现

空洞卷积的实现实现dilation为1,2,5的三层空洞卷积

直接套用之前实现的普通卷积的代码,定义了这3层卷积,对每一层卷积都指定它的空洞率分别为1,2和5,然后在这个前向传播的过程中也是和之前的过程是一致的,这里不过多叙述。

深度学习之 11 空洞卷积的实现

空洞卷积实验结果

  • 模型在训练集上可以达到一个较低的loss和较高的准确率;
  • 在大约40轮后测试集的Loss就处于波动状态甚至有些上升,说明模型出现了过拟合;
  • 测试集的平均准确率达到了82.92%,说明当前模型在cifar-10上进行分类的效果良好;

使用空洞卷积之后,测试集的loss曲线在大概40轮左右的时候,就不再下降了,甚至有点稍微上升的情况,就说明在40轮的时候,模型可能有点过拟合。那么最后我们这个测试集的准确率也到了82%左右,而对于之前设计的普通卷积的准确率大概是不到80%,。

深度学习之 11 空洞卷积的实现

但是并不能够说明这个空洞卷积在任何时候都比普通卷积都要好。需要依据任务和数据的不同,效果也会有所差距。

Original: https://blog.csdn.net/qq_45956730/article/details/126166121
Author: 水w
Title: 深度学习之 11 空洞卷积的实现

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/688797/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球