作者 | 荔枝boy

编辑 | 安可

一、Inception网络简介

二、Inception网络模块

三、Inception网络降低参数计算量

四、Inception网络减缓梯度消失现象

五、Inception网络框架

六、Inception论文彩蛋

一、Inception网络简介

Inception网络又叫做GoogLeNet,之所以不叫GoogleNet,是为了向LeNet致敬,是2014年ChristianSzegedy在《Going deeper with convolutions》提出的一种全新的深度学习结构。

一般来说,提升网络性能最保险的方法就是增加网络的宽度和深度,这样做同时也会伴随着副作用。首先越深越宽的网络往往会意味着有巨大的参数量,当数据量很少的时候,训练出来的网络很容易过拟合,并且当网络有很深的深度的时候,很容易造成梯度消失现象这两个副作用制约着又深又宽的卷积神经网络的发展,Inception网络很好的解决了这两个问题。

二、Inception网络模块

下图是Inception中的一个模块,Inception由多个这样的模块组合而成的。

Inception网络结构中其中一个模块是这样的:在同一层中,分别含有1*1、3*3、5*5卷积和池化层,在使用滤波器进行卷积操作与池化层进行池化操作时都会使用padding以保证输出都是同尺寸大小,经过这些操作后输出的结果也就是特征图Featuremap再全部整合在一起。该模块的特性就是在同一层中,分别通过使用上述不同尺寸的滤波器与进行池化操作收集到了上一层输入的不同特征。这样就增加了网络的宽度,用这些不同尺寸的滤波器和池化操作去提取上一层的不同特征。

但是这样存在一个问题,经过这样一个模块后,输出的特征图往往很大,滤波器参数的默认计算是滤波器的尺寸n*n*深度的,深度等于上一层的特征图的个数,这样用不了几层就会造成参数过多并且计算量过大的问题,为了解决这个问题,使用了如下的构造:

相比于上一个原始的Inception模块,维度减少模型中在3*3卷积层和5*5卷积层前增加了1*1的卷积层,并在池化层后增加了1*1的卷积层。这样做的意义是减少了参数量,避免了每层的计算量过大。

三、Inception网络降低参数计算量

1*1卷积降低参数和计算量:

如上图所示,针对5*5卷积的这一层,不包含1*1的卷积模块时,参数量为5*5*256*64=409600个参数,连接数为(5*5*256+1)*64*n*n=409664*n*n个。而包含1*1的卷积模块时,参数量为1*1*256*32+5*5*32*64=59392个参数,连接数为((1*1*256+1)*32*n*n+(5*5*32+1)*64*n*n)=59488*n*n个。由此可见,包含1*1的卷积模块比不包含的参数数量和计算量要少很多。

Inception网络在增加了网络宽度,每一层都用不同的卷积池化去提取上一层特征图的特征,并且采用了在3*3和5*5卷积前,池化层后添加1*1卷积,可以有效避免了复杂的参数和计算量。这样Inception很好的缓和了因扩大网络宽度而造成的计算量过大和过拟合问题。

四、Inception网络减缓梯度消失现象

Inception网络框架中会有额外的两个softmadx预测层,这两个预测层分别是从网络框架中间部分引出的分支,用于反向传播更新梯度,这样就避免了因梯度消失导致浅层的网络参数无法更新。注意这两个分支只在训练的时候防止梯度消失会用到,真正做预测的时候需要删除。

五、Inception网络框架

六.Inception论文彩蛋

以上就是关于Inception网络的介绍,顺便说一下Christian Szegedy在发表该网络的论文《Going deeper with convolutions》中附了一个小彩蛋,就是下图,表明了往更深层次网络架构发展的决心,其实将该网络取名Inception,就是《盗梦空间》的名称。

十分钟一起学会Inception网络的更多相关文章

  1. 十分钟一起学会ResNet残差网络

    作者 | 荔枝boy 目录 深层次网络训练瓶颈:梯度消失,网络退化 ResNet简介 ResNet解决深度网络瓶颈的魔力 ResNet使用的小技巧 总结 深层次网络训练瓶颈:梯度消失,网络退化 深度卷 ...

  2. 十分钟能学会的框架,MVC+20个常用函数

    LazyPHP(以下简称LP)是一个轻框架. 之所以开发这么一个框架,是因为其他框架给的太多.在高压力的情况下,ORM和盘根错节的对象树反而将简单的页面请求处理复杂化,在调试和性能上带来反面效果. L ...

  3. 十分钟快速学会Matplotlib基本图形操作

    在学习Python的各种工具包的时候,看网上的各种教程总是感觉各种方法很多很杂,参数的种类和个数也十分的多,理解起来需要花费不少的时间. 所以我在这里通过几个例子,对方法和每个参数都进行详细的解释,这 ...

  4. PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony

    这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...

  5. 十分钟学会 tmux

    tmux 是一款终端复用命令行工具,一般用于 Terminal 的窗口管理.在 macOS 下,使用 iTerm2 能应付绝大多数窗口管理的需求. 如上图所示,iTerm2 能新建多个标签页(快捷键 ...

  6. 快速入门:十分钟学会Python

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  7. Python十分钟学会

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  8. 快速入门:十分钟学会Python(转)

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  9. 高速入门:十分钟学会Python

    初试牛刀 如果你希望学习Python这门语言.却苦于找不到一个简短而全面的新手教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手冊(Cheat ...

随机推荐

  1. OOM when allocating tensor of shape [] and type float [[node conv2d_224/kernel/Initializer/random_uniform/min (defined at ./intances/utils.py:19) ]]

    当你们在用模型加载,tensorflow-gpu预测的时候,有没有出现这样的错误?? 经过网上的资料查阅,更多的解释是GPU的显存不足造成的,于是乎,我查看了一下GPU显存:nvidia-smi 不看 ...

  2. 200行代码,7个对象——让你了解ASP.NET Core框架的本质[3.x版]

    2019年1月19日,微软技术(苏州)俱乐部成立,我受邀在成立大会上作了一个名为<ASP.NET Core框架揭秘>的分享.在此次分享中,我按照ASP.NET Core自身的运行原理和设计 ...

  3. 读《Java并发编程的艺术》学习笔记(一)

    接下来一个系列,是关于<Java并发编程的艺术>这本书的读书笔记以及相关知识点,主要是为了方便日后多次复习和防止忘记.废话不多说,直接步入主题: 第1章  并发编程的挑战 并发编程的目的是 ...

  4. Python——五分钟带你弄懂迭代器与生成器,夯实代码能力

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是周一Python专题,给大家带来的是Python当中生成器和迭代器的使用. 我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉 ...

  5. 一起了解 .Net Foundation 项目 No.16

    .Net 基金会中包含有很多优秀的项目,今天就和笔者一起了解一下其中的一些优秀作品吧. 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译.如与原文存在出入,请以原文为准. Orchard CMS O ...

  6. jenkins操作

    jenkins忘记用户名以及登录密码的解决方法 1.jenkins 根目录下找到config.xml,修改配置  <useSecurity>true</useSecurity> ...

  7. oracle单机数据库搭建巨详细文档

    规划 环境:redhat6.9 安装包:p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip 数据 ...

  8. C++ 线程添加互斥量

    //创建互斥量 HANDLE g_hMutex = NULL; WaitForSingleObject(g_hMutex, INFINITE); ReleaseMutex(g_hMutex);

  9. JS的3种核心设计模式

    一.单例模式 1.保证一个类仅有一个实例,并提供一个访问它的全局访问点 2.设计思路:如果存在,不创建,直接返回,不存在才创建. 在类的constructor方法里添加一个判断条件属性,并且让创建的实 ...

  10. vue基础----组件通信(props,$emit,$attrs,$listeners)

    一.父传子,子传孙 1. props 1>在父组件中通过子组件自定义的标签属性来传递数据. 2>在子组件中通过props声明希望用到的数据 <body> <div id= ...