1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c
2.详细笔记网站(中文):http://www.ai-start.com/dl2017/
3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai

2.7 Inception 网络

在前面课程中,你已经见到了所有的Inception网络基础模块。在本节课中,我们将学习如何将这些模块组合起来,构筑你自己的Inception网络。

如上图,Inception模块会将之前层的激活或者输出作为它的输入。假设有一个28×28×192的输入,和我们之前课程中的一样。我们详细分析过的例子是,先通过一个1×1的层,再通过一个5×5的层,1×1的层可能有16个通道,而5×5的层输出为28×28×32,共32个通道,这就是上节课最后讲到的我们处理的例子。

为了在上图这个3×3的卷积层中节省运算量,你也可以做相同的操作,这样的话3×3的层将会输出28×28×128。

如上图,或许你还想将其直接通过一个1×1的卷积层,这时就不必在后面再跟一个1×1的层了,这样的话过程就只有一步,假设这个层的输出是28×28×64。

最后是池化层。这里我们要做些有趣的事情,为了能在最后将这些输出都连接起来,我们会使用same类型的padding来池化,使得输出的高和宽依然是28×28,这样才能将它与其他输出连接起来。

但是请注意,如果你进行了最大池化,即便用了same padding,3×3的过滤器,stride为1,其输出将会是28×28×192( n + 2 p − f s + 1 = 28 + 2 − 3 1 + 1 = 28 \frac{n+2p−f}s+1=\frac{28+2-3}1+1=28 sn+2p−f​+1=128+2−3​+1=28),其通道数或者说深度与输入(通道数)相同。

所以看起来它会有很多通道,我们要做的就是在它后面再加上一个1×1的卷积层,去进行我们在1×1卷积层的课程里所介绍的操作,将通道的数量缩小,缩小到28×28×32。也就是使用32个维度为1×1×192的过滤器,所以输出的维度其通道数缩小为32。这样就避免了最后输出时,池化层占据所有的通道。

最后,将这些方块全都连接起来。
在这过程中,把得到的各个层的通道都加起来,最后得到一个28×28×256的输出(64+128+32+32)。通道连接实际就是之前课程中看到过的,把所有方块连接在一起的操作。这就是一个Inception模块,而Inception网络所做的就是将这些模块都组合到一起。

如上图,这是一张取自Szegety et al的论文中关于Inception网络的图片。你会发现图中有许多重复的模块,可能整张图看上去很复杂,但如果你只截取其中一个环节(图中编号1),就会发现这是在上文介绍中所见的Inception模块。

我们深入看看里边的一些细节。

  • 图中编号2,编号3,编号4,编号5是另4个Inception模块。
  • 图中编号6和编号7有一些额外的最大池化层来修改高和宽的维度。

所以Inception网络只是很多这些你学过的模块在不同的位置重复组成的网络。如果你理解了之前所学的Inception模块,你就也能理解Inception网络。

事实上,如果你读过论文的原文,你就会发现,这里其实还有一些分支,我现在把它们加上去。

这些分支有什么用呢?

  • 在网络的最后几层,通常称为全连接层,在它之后是一个softmax层(编号1)来做出预测
  • 编号2分支所做的就是通过隐藏层(编号3)来做出预测,所以编号2其实是一个softmax输出。
  • 编号4是另一条分支,它也包含了一个隐藏层,通过一些全连接层,然后有一个softmax来预测,输出结果的标签。

你应该把这些分支看做Inception网络的一个细节,它确保了即便是隐藏单元和中间层(编号5)也参与了特征计算,它们也能预测图片的分类。它在Inception网络中,起到一种调整的效果,并且能防止网络发生过拟合

这个特别的Inception网络是由Google公司的作者所研发的,它被叫做GoogleLeNet,这个名字是为了向LeNet网络致敬。在之前的课程中你应该了解了LeNet网络。我觉得这样非常好,因为DL社区人员(community)是如此重视协作,对DL社区中彼此的工作成果有一种强烈的敬意。

最后,有个有趣的事实,Inception网络这个名字又是缘何而来呢?

Inception的论文特地提到了这个模因(meme,网络用语即“梗”),就是“我们需要走的更深”(We need to go deeper)。论文还引用了这个网址(http://knowyourmeme.com/memes/we-need-to-go-deeper),连接到这幅图片上。如果你看过Inception(盗梦空间)这个电影,你应该能看懂这个由来。

作者其实是通过它来表明了建立更深的NN的决心,他们正是这样构建了Inception。我想一般研究论文,通常不会引用网络流行模因(梗),但这里显然很合适。

最后总结一下,如果你理解了Inception模块,你就能理解Inception网络,无非是很多个Inception模块一环接一环,最后组成了网络。

自从Inception模块诞生以来,经过研究者们的不断发展,衍生了许多新的版本。所以在你们看一些比较新的Inception算法的论文时,会发现人们使用这些新版本的算法效果也一样很好,比如Inception V2、V3以及V4,还有一个版本引入了跳跃连接的方法,有时也会有特别好的效果。

但所有的这些变体都建立在同一种基础的思想上,在之前的课程中你就已经学到过,就是把许多Inception模块通过某种方式连接到一起。通过这个视频,我想你应该能去阅读和理解这些Inception的论文,甚至是一些新版本的论文。

2020-8-25 吴恩达DL学习-C4 卷积神经网络-第二周 CNN实例探究(2.7Inception 网络)相关推荐

  1. 2.5-2.7 1×1 卷积 Inception 吴恩达 第四门课 卷积神经网络 第二周 深度卷积网络

    2.5 网络中的网络以及 1×1 卷积(Network in Network and 1×1 convolutions 其中一个比较有帮助的想法是使用 1×1 卷积.过滤器为 1×1,这里是数字 2, ...

  2. 吴恩达深度学习 | (18) 卷积神经网络专项课程第二周学习笔记

    课程视频 第二周PPT汇总 吴恩达深度学习专项课程共分为五个部分,本篇博客将介绍第四部分卷积神经网络专项的第二周课程:深度卷积网络:实例探究. 目录 1. 为什么要进行实例探究 2. 经典网络 3. ...

  3. 吴恩达深度学习笔记——卷积神经网络(Convolutional Neural Networks)

    深度学习笔记导航 前言 传送门 卷积神经网络(Convolutional Neural Networks) 卷积神经网络基础(Foundations of Convolutional Neural N ...

  4. 吴恩达深度学习笔记——卷积神经网络(CNN)

    目录 一.计算机视觉(Computer vision) 二.边缘检测示例(Edge detection example) 三.更多的边缘检测内容(More edge detection) 四.Padd ...

  5. 吴恩达 深度学习系列--卷积神经网络(Convolutional Neural Networks)-03(目标检测)

    目标检测 3.1 目标定位(Object localization) 3.1.1概念 3.1.2 监督学习任务定义目标标签y 3.2 特征点检测(Landmark detection) 3.3 基于滑 ...

  6. 《吴恩达深度学习》编程作业-第二周

    目录 1.题目:基于神经网络思维模式的逻辑回归 2.声明 3.知识回顾 4.Python编程分析 4.1.导入需要用的库 4.2.数据处理 4.2.1.读取数据(包括训练集和测试集) 4.2.2.取出 ...

  7. 花书+吴恩达深度学习(二八)深度生成模型之有向生成网络(VAE, GAN, 自回归网络)

    文章目录 0. 前言 1. sigmoid 信念网络 2. 生成器网络 3. 变分自编码器 VAE 4. 生成式对抗网络 GAN 5. 生成矩匹配网络 6. 自回归网络 6.1 线性自回归网络 6.2 ...

  8. 神经网络隐藏层个数怎么确定_含有一个隐藏层的神经网络对平面数据分类python实现(吴恩达深度学习课程1第3周作业)...

    含有一个隐藏层的神经网络对平面数据分类python实现(吴恩达深度学习课程1第3周作业): ''' 题目: 建立只有一个隐藏层的神经网络, 对于给定的一个类似于花朵的图案数据, 里面有红色(y=0)和 ...

  9. 吴恩达深度学习第四课第一周 卷积神经网络

    文章目录 前言 一.计算机视觉(引言) 二.边缘检测示例(过滤器) 三.更多边缘检测内容(由亮到暗还是由暗到亮?) 四.Padding(Valid.Same.p) 五.卷积步长(s) 六.三维卷积(通 ...

最新文章

  1. HTML、CSS知识学习与整理
  2. Flutter开发之ListView组件(21)
  3. iOS9网络适配 info.plist配置
  4. 三款云数据库性能测试,谁表现最好?
  5. 如何实现一个分布式 RPC 框架
  6. php插入成功数据不显示,PHP插入数据不成功,什么原因呢?
  7. 2018年冷链百强_在分析了47,251个依赖关系之后,2016年Java图书馆百强
  8. Git(10)-merge
  9. Redmine使用手册
  10. 使用canvas制作一个移动端画板
  11. 1.部署netcore之安装或升级 netcore2.1.1
  12. 人人都是 DBA(II)SQL Server 元数据 (转)
  13. 搭建Wpf框架(1) —— 管理系统-Wpf客户端框架2.0(OA,聊天,定时任务)
  14. hg8120c 维修使能工具_ONT 用户手册(中国移动) V300R016C10.doc
  15. excel生成随机手机号
  16. 计算机 矩阵乘法,计算机算法:Strassen矩阵相乘算法
  17. linux支持raid5阵列,Linux中raid磁盘阵列,磁盘阵列raid5
  18. mysql admin账号密码忘记_使用mysqladmin命令修改Mysql密码与忘记密码
  19. 去除电脑弹窗广告的方法
  20. 宜家订单JSON_怎么评价宜家(IKEA)?

热门文章

  1. C#遇到 错误:不可访问,因为它具有一定的保护级别
  2. 为什么集群节点都是奇数
  3. C语言实现韩信点兵算法的代码
  4. Infocom 2020 论文快读
  5. 将excel数据导入数据库的表中的方法
  6. 想学习计算机,高考志愿应该怎么选择学校和专业,城市、学校、专业哪个更重要?
  7. true false 与TRUE FALSE 的区别
  8. Android下获取FPS的几种方法
  9. --MBTI 性格测试
  10. msf之ms17-010永恒之蓝漏洞