深度学习经典网络:GoogleNet

news2024/11/17 19:35:16

深度学习经典网络--GoogleNet

  • 1、为什么要提出Inception
  • 2、为什么是Inception
  • 3、实际中的Inception
  • 4、GoogleNet 整体网络结构

GoogLeNet是google推出的基于Inception模块的深度神经网络模型,在2014年的ImageNet竞赛中夺得了冠军,在随后的两年中一直在改进,形成了Inception V2、Inception V3、Inception V4等版本。我们会用一系列文章,分别对这些模型做介绍。本篇文章先介绍最早版本的GoogLeNet。

论文名称:Going deeper with convolutions

1、为什么要提出Inception

一般来说,提升网络性能最直接的办法就是增加网络深度和宽度,但一味地增加,会带来诸多问题:
1)参数太多,如果训练数据集有限,很容易产生过拟合;
2)网络越大、参数越多,计算复杂度越大,难以应用;
3)网络越深,容易出现梯度弥散问题(梯度越往后穿越容易消失),难以优化模型。
我们希望在增加网络深度和宽度的同时减少参数,为了减少参数,自然就想到将全连接变成稀疏连接。但是在实现上,全连接变成稀疏连接后实际计算量并不会有质的提升,因为大部分硬件是针对密集矩阵计算优化的,稀疏矩阵虽然数据量少,但是计算所消耗的时间却很难减少。在这种需求和形势下,Google研究人员提出了Inception的方法。

2、为什么是Inception

Inception就是把多个卷积或池化操作,放在一起组装成一个网络模块,设计神经网络时以模块为单位去组装整个网络结构。模块如下图所示
在这里插入图片描述
在未使用这种方式的网络里,我们一层往往只使用一种操作,比如卷积或者池化,而且卷积操作的卷积核尺寸也是固定大小的。但是,在实际情况下,在不同尺度的图片里,需要不同大小的卷积核,这样才能使性能最好,或者或,对于同一张图片,不同尺寸的卷积核的表现效果是不一样的,因为他们的感受野不同。所以,我们希望让网络自己去选择,Inception便能够满足这样的需求,一个Inception模块中并列提供多种卷积核的操作,网络在训练的过程中通过调节参数自己去选择使用,同时,由于网络中都需要池化操作,所以此处也把池化层并列加入网络中。

3、实际中的Inception

我们在上面提供了一种Inception的结构,但是这个结构存在很多问题,是不能够直接使用的。首要问题就是参数太多,导致特征图厚度太大。为了解决这个问题,作者在其中加入了1X1的卷积核,改进后的Inception结构如下图
在这里插入图片描述
在这里插入图片描述
这样做有两个好处,首先是大大减少了参数量,其次,增加的1X1卷积后面也会跟着有非线性激励,这样同时也能够提升网络的表达能力。

4、GoogleNet 整体网络结构

在这里插入图片描述

对上图说明如下:

1)GoogLeNet采用了模块化的结构(Inception结构),方便增添和修改;

2)网络最后采用了average pooling(平均池化)来代替全连接层,该想法来自NIN(Network in Network),事实证明这样可以将准确率提高0.6%。

3)虽然移除了全连接,但是网络中依然使用了Dropout ;

4)为了避免梯度消失,网络额外增加了2个辅助的softmax用于向前传导梯度(辅助分类器)

对于前三点都很好理解,下面我们重点看一下第4点。这里的辅助分类器只是在训练时使用,在正常预测时会被去掉。辅助分类器促进了更稳定的学习和更好的收敛,往往在接近训练结束时,辅助分支网络开始超越没有任何分支的网络的准确性,达到了更高的水平。

至此,整个GoogLeNet网络便介绍完毕了。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1180875.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全方位解析解决找不到msvcp120dll,无法继续执行代码问题的方法

在日常使用电脑的过程中,我们可能会遇到 “找不到msvcp120dll,无法继续执行代码” 的问题。大部分用户并不清楚msvcp120.dll是什么,更不知道怎样修复这个问题。其实不要紧的,今天我们就来了解一下msvcp120.dll文件,并且告知你多种…

react antd message多条数据展示样式

最终效果: 前言: 平时我们经常用到message来做一些错误提示,最常见的就是单行提示。如下图: 实现代码: message.error(This is an error message)多行动态message实现 参考文献:antd message 链接地址&a…

SOLIDWORKS 2024新产品发布会暨SOLIDWORKS 创新日活动-硕迪科技

“达索系统SOLIDWORKS 2024新产品发布会暨SOLIDWORKS创新日” 线下发布会即将登场!硕迪科技与达索系统携手为您奉上一场“云享未来,智协未来”的创新年度盛会,欢迎莅临! SOLIDWORKS 2024 以更加强大的姿态亮相,帮助您…

Python小技巧:bytes与str的区别

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 bytes实例包含的是原始数据,即8位的无符号值(通常按照ASCII编码标准来显示)。 a bh\x65llo print(list(a)) print(a) >>> [104, 101, …

【1107】有关环境的学习记录。。。

有关python环境!!! 1、python解释器就是 python 3.7.2 之类的。 VSCode 是代码编辑器。 下图的每一个都是可选的python环境,Python 3.8.3(‘base’)是下载在电脑上的python环境(下载miniConda时…

深入解析 Redis 分布式锁原理

一、实现原理 1.1 基本原理 JDK 原生的锁可以让不同线程之间以互斥的方式来访问共享资源,但如果想要在不同进程之间以互斥的方式来访问共享资源,JDK 原生的锁就无能为力了。此时可以使用 Redis 来实现分布式锁。 Redis 实现分布式锁的核心命令如下&am…

chrome v3开发插件实现所有网站允许跨域

场景: chrome 插件 升级到v3后,原来修改请求响应都变成异步,即无法同步拦截来修改请求响应。 在v3中也不支持修改请求响应内容。 问题:如何在chrome v3中允许其他网站跨域呢。 方式一:禁用chrome跨域,禁…

JPA编程中自定义SQL语句使用case/when语句实现分页查询和分类排序的示例

一、需求背景 查询我发起的以及被邀请的工单列表,要求分页查询,排序的具体要求是: 先按状态排序,未处理的排前面再按处理人排序,被邀请的排前面,自己发起的排后面最后按修改时间倒序 处理状态包括三种&a…

云尘靶场-Tr0ll-vulhub

直接fscan扫描 发现这里有一个ftp 我们等等看 首先去nmap扫描端口 nmap -A -p- 172.25.0.13 --unprivileged 这里使用wsl ftp ssh 和80 然后我们继续继续目录扫描 dirb 出来没什么用处 所以我们继续去看 流量包 流量包分析 首先看tcp ->分析->追踪流 这里是f…

什么是Kubernetes RBAC?为什么需要它?

目录 什么是Kubernetes RBAC? 如何启用Kubernetes RBAC 1.服务帐户 2.角色和集群角色 3.角色绑定和集群角色绑定 Kubernetes RBAC的好处 1.适当的授权 2.职责分离 3.100%遵守法规 Kubernetes RBAC的缺点 企业软件开发工具 什么是Kubernetes RBAC? 当组织开始走上…

英国最值得参观的十大博物馆介绍

目前,到英国从事访问交流及博士后研究的学者越来越多,而英国一向以厚重的历史人文以及精彩绝伦的艺术著称,在这样一个有着浓厚历史沉淀的国家,自然最不缺的就是博物馆了,在学习工作的闲暇,可以去参观体验一…

C语言求解有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

完整代码: /*有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月 又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8…

AI智能公文写作助手“文山会海“

公文写作痛点 没思路,公文写作无从下手公文类型繁多,一时难以全面掌握公文内容组织难度大,不易清晰、有逻辑的进行表达时间紧任务急,往往需要在有限的时间内完成大量写作工作反复修改优化,需满足更多新要求&#xff0…

WordPress 企业一号wp主题企业建站模板V1.2.2开心版

模板简介: 企业一号是一款由主题巴巴团队原创设计开发的WordPress企业主题。这款主题配备了强大的可视化、模块化的页面设计功能(页面构建器),让您通过添加不同的设计模块和配置模块选项就可以设计出各种丰富多彩的页面。主题还集…

信号发送与处理-上

问题 按下 Ctrl C 后,命令行中的前台进程会被终止。为什么??? 什么是信号? 信号是一种 "软件中断",用来处理异步事件 内核发送信号到某个进程,通知进程事件的发送事件可能来自硬件…

③【操作表数据】MySQL添加数据、修改数据、删除数据

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ MySQL添加数据、修改数据、删除数据 &#x1f…

渗透测试学习day2

文章目录 连接靶机靶机:Fawn 解题过程Task 1Task 2Task 3Task 4Task 5Task 6Task 7Task 8Task 9Task 10Task 11Task 12 总结 连接靶机 详细过程可参考day1 靶机:Fawn 难度:very easy (ftp服务的靶机) 解题过程 T…

单链表(1)

前面的顺序表是顺序存储(类似于数组),下面的链表是链式存储。物理是否相邻就看其存储地址(格子)是否相邻挨在一起。逻辑是否相邻看其前驱后继。 例如上面3个数据 如果存在顺序表中,那就是100的后继是200,2…

网络测试工具—— iperf2 安卓APK 下载 及简单使用

网络测试工具—— iperf2 安卓APK 下载 及简单使用 前言一、iperf2是什么?二、使用步骤附上help中命令截图翻译总结 前言 项目上有一款安卓车机加载局域网图片加载非常慢,所以需要测试一个安卓车机设备的带宽,经过调研后使用到了iperf2。 一…

【Android】Debug时禁用主线程ANR限制

ANR全称Application Not Response,指主线程超过5s无响应,应用会自动退出 由于这个线程,如果我们给主线程加了断点,就会触发ANR,导致调试时应用退出 这样调试起来会非常麻烦,其实对于Debug应用&#xff0c…