【深度学习】CNN 中 1x1 卷积核的作用

最近研究 GoogLeNet 和 VGG 神经网络结构的时候,都看见了它们在某些层有采取 1x1 作为卷积核,起初的时候,对这个做法很是迷惑,这是因为之前接触过的教材的例子中最小的卷积核是 3x3 ,那么,1x1 的卷积核有什么意义呢?

最初应用 1x1 卷积核的神经网络是 Network In Network,然后 GoogLeNet 和 VGG 也不约而同的更正了。

他们在论文中解释,大概有下面 2 个意义。

1、增加网络的深度

这个就比较好理解了,1x1 的卷积核虽小,但也是卷积核,加 1 层卷积,网络深度自然会增加。

其实问题往下挖掘,应该是增加网络深度有什么好处?为什么非要用 1x1 来增加深度呢?其它的不可以吗?

其实,这涉及到感受野的问题,我们知道卷积核越大,它生成的 featuremap 上单个节点的感受野就越大,随着网络深度的增加,越靠后的 featuremap 上的节点感受野也越大。因此特征也越来越抽象。

但有的时候,我们想在不增加感受野的情况下,让网络加深,为的就是引入更多的非线性。

而 1x1 卷积核,恰巧可以办到。

我们知道,卷积后生成图片的尺寸受卷积核的大小和跨度影响,但如果卷积核是 1x1 ,跨度也是 1,那么生成后的图像大小就并没有变化。

但通常一个卷积过程包括一个激活函数,比如 Sigmoid 和 Relu。

所以,在输入不发生尺寸的变化下,却引入了更多的非线性,这将增强神经网络的表达能力。

2、升维或者是降维

大家可以看下面这张图:

我们可以直观地感受到卷积过程中:卷积后的的 featuremap 通道数是与卷积核的个数相同的

所以,如果输入图片通道是 3,卷积核的数量是 6 ,那么生成的 feature map 通道就是 6,这就是升维,如果卷积核的数量是 1,那么生成的 feature map 只有 1 个通道,这就是降维度。

值得注意的是,所有尺寸的卷积核都可以达到这样的目的。

那为什么要用 1x1 呢

原因就是数据量的大小,我们知道在训练的时候,卷积核里面的值就是要训练的权重,3x3 的尺寸是 1x1 所需要内存的 9 倍,其它的类似。所以,有时根据实际情况只想单纯的去提升或者降低 feature map 的通道,1x1 无疑是一个值得考虑的选项。

【深度学习】CNN 中 1x1 卷积核的作用的更多相关文章

  1. CNN中的卷积核及TensorFlow中卷积的各种实现

    声明: 1. 我和每一个应该看这篇博文的人一样,都是初学者,都是小菜鸟,我发布博文只是希望加深学习印象并与大家讨论. 2. 我不确定的地方用了"应该"二字 首先,通俗说一下,CNN ...

  2. 深度学习-CNN+RNN笔记

    以下叙述只是简单的叙述,CNN+RNN(LSTM,GRU)的应用相关文章还很多,而且研究的方向不仅仅是下文提到的1. CNN 特征提取,用于RNN语句生成图片标注.2. RNN特征提取用于CNN内容分 ...

  3. 寻找下一款Prisma APP:深度学习在图像处理中的应用探讨(阅读小结)

    原文链接:https://yq.aliyun.com/articles/61941?spm=5176.100239.bloglist.64.UPL8ec 某会议中的一篇演讲,主要讲述深度学习在图像领域 ...

  4. 深度学习 CNN CUDA 版本2

    作者:zhxfl 邮箱:zhxfl##mail.ustc.edu.cn 主页:http://www.cnblogs.com/zhxfl/p/4155236.html 第1个版本blog在这里:http ...

  5. 如何可视化深度学习网络中Attention层

    前言 在训练深度学习模型时,常想一窥网络结构中的attention层权重分布,观察序列输入的哪些词或者词组合是网络比较care的.在小论文中主要研究了关于词性POS对输入序列的注意力机制.同时对比实验 ...

  6. CNN中1x1 卷积的处理过程及作用

    参看:https://blog.csdn.net/ybdesire/article/details/80314925

  7. 深度学习——CNN

    整理自: https://blog.csdn.net/woaidapaopao/article/details/77806273?locationnum=9&fps=1 思想 filter尺寸 ...

  8. 小刘的深度学习---CNN

    前言: 前段时间我在树莓派上通过KNN,SVM等机器学习的算法实现了门派识别的项目,所用到的数据集是经典的MNIST.可能是因为手写数字与印刷体存在一些区别,识别率并是很不高.基于这样的情况,我打算在 ...

  9. 深度学习网络中numpy多维数组的说明

    目前在计算机视觉中应用的数组维度最多有四维,可以表示为 (Batch_size, Row, Column, Channel) 以下将要从二维数组到四维数组进行代码的简单说明: Tips: 1) 在nu ...

随机推荐

  1. 【JZOJ5431】序列操作

    description 一开始有n个非负整数hi,接下来会进行m次操作,第i次操作给出一个数c[i],要求你选出c[i]个大于零的数并将它们减去1. 问最多可以进行多少轮操作后无法操作(即没有c[i] ...

  2. 云HBase备份恢复,为云HBase数据安全保驾护航

    摘要: 介绍了阿里云HBase自研备份恢复功能的基本背景以及基本原理架构和基本使用方法.   云HBase发布备份恢复功能,为用户数据保驾护航.对大多数公司来说数据的安全性以及可靠性是非常重要的,如何 ...

  3. iOS开发之SceneKit框架--SCNGeometry.h

    1.SCNGeometry简介 SCNGeometry负责呈现三维模型的类,它管理者物体的形状.纹理等.它可以由SCNGeometrySource和SCNGeometryElement来构造, 一个S ...

  4. 关于Unity中脚本

    脚本编译: Unity可以把脚本编译为DLL,DLL将在运行时编译运行.这样可以提高执行 的速度,比传统的JavaScritp快20倍. 脚本具体的编译需要以下4步. 1: 所有的"Stan ...

  5. idea从github中pull或者push成功之后ssm项目全部controller报红色下划线的解决方案

    某次从github上pull下来之后,报出如下一堆红色波浪线错误 解决方法: 在随便一个红色波浪线处,按下alt+enter,点击add maven dependency, 选中所有,点击添加即可,此 ...

  6. UVA-699-The Falling Leaves-二叉树+递归

    Each year, fall in the North Central region is accompanied by the brilliant colors of the leaves on ...

  7. HYNB Round 8: 2016 ICPC Amritapuri Regionals

    HYNB Round 8: 2016 ICPC Amritapuri Regionals A - Tim and BSTs 做法 经典的树 DP 问题. \(dp[u][i]\) 表示考虑以 u 为根 ...

  8. 面试系列24 dubbo负载均衡策略和集群容错策略

    (1)dubbo负载均衡策略 1)random loadbalance 默认情况下,dubbo是random load balance随机调用实现负载均衡,可以对provider不同实例设置不同的权重 ...

  9. MFC注册热键

    注册热键. 当用户点击注册的快捷键时,做出相应的响应. 定义 ALT+M键为测量按钮响应函数: 头文件中定义: #define ID_HOTKEY1 10001 在初始化函数中加入注册热键函数: if ...

  10. JAVA-第一课 环境的配置

    首先 我们需要 下载java的开发工具包 jdk  jdk 的下载地址::http://www.oracle.com/technetwork/java/javase/downloads/index.h ...