1*1的卷积核与Inception
https://www.zhihu.com/question/56024942
https://blog.csdn.net/a1154761720/article/details/53411365
本文介绍1*1的卷积核与googlenet里面的Inception。正式介绍之前,首先回顾卷积网络的基本概念。
1. 卷积核:可以看作对某个局部的加权求和;它是对应局部感知,它的原理是在观察某个物体时我们既不能观察每个像素也不能一次观察整体,而是先从局部开始认识,这就对应了卷积。卷积核的大小一般有1x1,3x3和5x5的尺寸。卷积核的个数就对应输出的通道数,这里需要说明的是对于输入的每个通道,输出每个通道上的卷积核是不一样的。比如输入是28x28x192(WxDxK,K代表通道数),然后在3x3的卷积核,卷积通道数为128,那么卷积的参数有3x3x192x128,其中前两个对应的每个卷积里面的参数,后两个对应的卷积总的个数。
2. 池化(pooling):卷积特征往往对应某个局部的特征。要得到globa的特征需要将全局的特征就行一个aggregation。池化就是这样一个操作,对于每个卷积通道,将更大尺寸(甚至是globa)上的卷积特征进行pooling就可以得到更有全局性的特征。这里的pooling当然就对应了cross region。与1x1的卷积相对应,后者可以看作一个cross channel的pooling操作。pooling的另外一个作用就是升维或者降维,后面我们可以看到1x1的卷积也有相似的作用。
下面从一般卷积过程介绍1x1的卷积,借用[1]中的图来表示卷积的过程:
对于nxn(n>1)的卷积核,我们通常还要考虑pad(边缘补0的个数),stride(每次卷积移动的步长)。但是当尺寸是1x1时,对于single channel而言就相当于对原特征的scala操作;但是我们一般遇到的都是multi-channel的情况,此时我们便可以根据自己的需要定义卷积核的个数,从而进行降(升)维。如上面所说,如果将它看作cross channel的pooling 操作,它还能帮我们得到在同一位置不同通道之间进行特征的aggregation。
总结一下,1x1的卷积核可以进行降维或者升维,也就是通过控制卷积核(通道数)实现,这个可以帮助减少模型参数,也可以对不同特征进行尺寸的归一化;同时也可以用于不同channel上特征的融合。一个trick就是在降维的时候考虑结合传统的降维方式,如PCA的特征向量实现,这样效果也可以得到保证。
以googlenet[3]中的inception模块为例,来说明1x1的卷积如何来减少模型参数。
左边是naive的inception模块,右边是加入1x1 convolution进行降维的inception。按照上面的说法,我们的这层的模型参数与输入的特征维数(28x28x192),卷积核大小以及卷积通道数(包括三种卷积核,分别是1x1x64,3x3x128,5x5x32),右图中在3x3,5x5 convolution前新加入的1x1的卷积核为96和16通道的,在max pooling后加入的1x1卷积为32通道。那么图a该层的参数为(1x1x192x64)+(3x3x192x128)+(5x5x192x32)
图b该层的参数为(1x1x192x64)+(1x1x192x96)+(1x1x192x16)+(3x3x96x128)+(5x5x16x32)+(1x1x192x32).
比较可知,模型参数减少了。
reference
[1]http://blog.csdn.net/stdcoutzyx/article/details/41596663
[2]http://www.caffecn.cn/?/question/136
[3]going deeper with convolutions
1*1的卷积核与Inception的更多相关文章
- Going deeper with convolutions(GoogLeNet、Inception)
从LeNet-5开始,cnn就有了标准的结构:stacked convolutional layers are followed by one or more fully-connected laye ...
- CNN中各类卷积总结:残差、shuffle、空洞卷积、变形卷积核、可分离卷积等
CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量.我下面会对近几年一些具有变革性的工作进行简单盘点,从这些充满革新性的工作中 ...
- 从GoogLeNet至Inception v3
从GoogLeNet至Inception v3 一.CNN发展纵览 我们先来看一张图片: 1985年,Rumelhart和Hinton等人提出了后向传播(Back Propagation,BP)算法( ...
- 图像分类(一)GoogLenet Inception_V1:Going deeper with convolutions
论文地址 在该论文中作者提出了一种被称为Inception Network的深度卷积神经网络,它由若干个Inception modules堆叠而成.Inception的主要特点是它能提高网络中计算资源 ...
- TextBoxes 与 TextBoxes ++
TextBoxes 论文关键idea 本文和SegLink一样,也是在SSD的基础上进行改进的.相比SSD做了以下的改进: 修改了default box的apect ratio,分别为[1 2 3 5 ...
- AI:IPPR的数学表示-CNN稀疏结构进化(Mobile、xception、Shuffle、SE、Dilated、Deformable)
接上一篇:AI:IPPR的数学表示-CNN基础结构进化(Alex.ZF.Inception.Res.InceptionRes). 抄自于各个博客,有大量修改,如有疑问,请移步各个原文..... 前言 ...
- tensorflow+inceptionv3图像分类网络结构的解析与代码实现
tensorflow+inceptionv3图像分类网络结构的解析与代码实现 论文链接:论文地址 ResNet传送门:Resnet-cifar10 DenseNet传送门:DenseNet SegNe ...
- 学习笔记TF032:实现Google Inception Net
Google Inception Net,ILSVRC 2014比赛第一名.控制计算量.参数量,分类性能非常好.V1,top-5错误率6.67%,22层,15亿次浮点运算,500万参数(AlexNet ...
- Inception模型和Residual模型卷积操作的keras实现
Inception模型和Residual残差模型是卷积神经网络中对卷积升级的两个操作. 一. Inception模型(by google) 这个模型的trick是将大卷积核变成小卷积核,将多个卷积核 ...
随机推荐
- thinkphp3.2在nginx下的配置
最近一直没用nginx 昨天将tp3.2的项目部署到Ubuntu下的nginx下,发现忘记怎么配置的了 特将配置方式记录下来,以方便日后查找 服务器nignx 配置文件 server { listen ...
- u3d内嵌H5游戏 设置cookie
Intent intent1 = getIntent(); Log.d("SS", "onCreate: "); String data = intent1.g ...
- 关于Kafka broker IO的讨论
Apache Kafka是大量使用磁盘和页缓存(page cache)的,特别是对page cache的应用被视为是Kafka实现高吞吐量的重要因素之一.实际场景中用户调整page cache的手段并 ...
- JavaScript 运行机制详解:Event Loop
参考地址:http://www.ruanyifeng.com/blog/2014/10/event-loop.html 一.为什么JavaScript是单线程? JavaScript语言的一大特点就是 ...
- 使用 Sublime Text 将含下划线的字符串批量替换为驼峰命名法格式的字符串
本文版权归cxun所有,如有转载请注明出处与本文链接,谢谢!原文地址:http://www.cnblogs.com/cxun/p/7762984.html For indexing: Convert ...
- Centos6.8 安装dlib库时出错【升级gcc 到4.9.0以上】
在centos6.8上安装dlib库时出现错误: 1.CMake must be installed to build the following extensions: dlib 没有安装CMake ...
- E - Stones 优先队列
来源1896 Because of the wrong status of the bicycle, Sempr begin to walk east to west every morning an ...
- windows修改PowerShell(命令提示符)默认中文编码方式
如果以下方法都没有作用的话,可以直接在代码中调用<stdlib.h>中的system("mode con cp select=65001")或者是system(&quo ...
- python 写入Excel
一.安装xlrd模块: 1.mac下打开终端输入命令: pip install XlsxWriter 2.验证安装是否成功: 在mac终端输入 python 进入python环境 然后输入 imp ...
- 利用mimikatz破解远程终端凭据,获取服务器密码
测试环境:windows 10 道友们应该碰到过管理在本地保存远程终端的凭据,凭据里躺着诱人的胴体(服务器密码),早已让我们的XX饥渴难耐了.但是,胴体却裹了一身道袍(加密),待老衲操起法器将其宽衣解 ...