GoogLeNet论文学习笔记

题目:Going deeper with convolutions

下载地址:GoogLeNet论文

代码:GoogLeNet代码

GoogLeNet在2014年的ISCRC分类比赛中第一名。

创新点

        引入Inception结构(融合不同尺度的特征信息);

        使用1*1的卷积核降维以及映射处理;

        添加两个辅助分类器帮助训练;

        使用平均池化层代替全连接层。

摘要

目的:我们提出了一个叫Inception的深度卷积神经网络结构;

成绩:它在ILSVRC2014的分类和目标检测中取得最高水平

优点:这个模型结构的特点是在网络内部提高资源利用率;通过精心设计,允许增加网络的深度和宽度,同时保持计算量不变为了提高优化质量,结构决策基于Hebbian原则和多尺度信息处理设计;

提交时使用GoogLeNet是一个22层的深度网络。

1 引言

在过去三年,随着深度学习的发展,尤其是卷积网络的发展,图像识别和目标检测取得惊人的进步。这些发展不仅仅是因为强大的硬件,大数据集和大模型的出现,更主要是算法和网络的框架改进。在ILSVRC2014比赛中,选手都使用的同样的数据集完成比赛。我们提交给ILSVRC2014的GoogLeNet比两年前的AlexNet参数少12倍,同时精度更高。目标检测的最大获益不仅仅来自于使用深度网络或更大模型,而是深度框架和经典计算机视觉的共同作用,比如R-CNN算法。

另一个因素,随着移动和嵌入式计算的持续发展,算法的效率变得越来越重要,特别是考虑电力和内存的使用。本文在设计深度框架的时候考了这个因素,而不是只关注精度。对于大多数实验,模型的设计是为了在推理时保持15亿次乘加的计算预算,因此它们不仅为了纯粹的学术好奇心,而是可以以合理的成本投入真实的工程中。

论文中重点介绍代号为Inception,用于计算机视觉的搞笑深度学习网络框架。命名基于Lin的论文和“we need to go deeper”的理念。在本论文中,“deep”有两种含义:首先,引入“Inception模块”,其次可以增加网络深度。Inception模块可以给设计带来灵感,比如Arora等人的理论。该架构在ILSVRC2014比赛中,取得最好的成绩。

2 相关工作

从LeNet-5开始,CNN设计都是标准结构——堆叠卷积层(选择归一化和最大池化层)后面跟一个或多个全连接层。这种结构在MNIST,CIFAR以及ImageNet分类比赛中取得最佳结果。对于较大的数据集比如Imagenet,现在的趋势是增加层数量和层的尺寸大小,同时使用dropout解决过拟合问题。尽管担心最大池化层会引起空间信息的丢失,但是这种卷积框架也成功的被应用到定位、目标检测和人体姿态估计等领域。受Serre等人使用一系列不同大小的Gabor滤波器处理多尺度问题的启发,类似于Inception模型。Inception模型的所有滤波器都可以学习。通过多次重复使用Inception模型,可以产生深度到22层的GoogLeNet模型。

NiN是Lin等人提出的方法,目的是提高神经网络的表示能力。通过使用1*1卷积层,后面接ReLU激活函数。方便集成,所以我们大量使用这种方法在我们的结构中。1*1卷积有两个目的:降维,消除计算瓶颈;增加网络深度和宽度,不带来明显的性能损失。

当前目标检测的主要方法是Girshick等人提出的R-CNN。R-CNN检测的两个阶段:利用低层次信号(如颜色,纹理)找候选区域,再对每个候选区域用CNN分类。我们使用了类似的方法,在第一个阶段使用多个候选框来使候选框中包含真目标的比例提高,并使用了更好的识别算法

3 动机和深层考虑

提高深度神经网络的最直接的方法是增加尺寸。包括增加网络的深度和宽度。这种方法,简单和安全。特别是在大量标记的训练集上。但是有两个缺点

更大的尺寸产生更大的参数,容易过拟合。特别是在训练集有限时更明显。高质量的训练集收集费用昂贵,而且专业性强。

其次,对硬件计算资源要求高。卷积层的增加引起计算量按照平方级数增加。如果权重为0,会造成资源浪费。

解决办法:

(1)、引入稀疏连接取代密集链接;

理论基础:
《Provable bounds for learning some deep representations》如果数据集的概率分布可以通过一个大型稀疏的深度神经网络表示,则最优的网络拓扑结构可以通过分析前一层激活的相关性统计和聚类高度相关的神经元来一层层的构建。(当某个数据集的分布可以用一个稀疏网络表达的时候就可以通过分析某些激活值的相关性,将相关度高的神经元聚合,来获得一个稀疏的表示。)
Hebbian principle:如果两个神经元常常同时产生动作电位(fire),这两个神经元之间的连接(wire)就会变强,反之则变弱(neurons that fire together, wire together)

(2)、密集运算

提出Inception模块

4 结构细节

以模块化的方式构建Inception。Inception结构是不断堆叠模块来来提取特征,但是会增加3*3和5*5的滤波器数量,增加参数量。适量数量的5*5卷积,在具有大量滤波器的卷积层上会十分昂贵。池化层的滤波器数量和上一层一致,所以会加剧这个问题。会出现计算爆炸。所以提出了第2个方案,通过降维和投影减少计算量。这是基于嵌入的思想。在3*3和5*5之前先使用1*1进行约简

优点:允许每个阶段增加单元的数量,不会导致计算复杂性的失控。

5 GoogLeNet

GoogLeNet命名是致敬LeNet 5。

采用224*224感受野,并采用RGB颜色通道,并采用均值减法。#3*3 reduce和#5*5reduce指的是在3*3和5*5卷积之前使用的1*1过滤器的数量。模型的推理可以在单个设备上运行,特别是内存专用较低的设备。网络深度为22层,包括池化为27层。块总数为100个。

采用平均池化取代全连接层,精度提高0.6%,但是dropout必须保留。为了避免梯度消失,网络额外增加了2个辅助的softmax用于向前传导梯度(辅助分类器)。

参考资料:

1、【论文研读】GoogLeNet-Going de在e信息处理per with convolutions - 知乎 (zhihu.com)

2、5.1 GoogLeNet网络详解_哔哩哔哩_bilibili

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI:Nvidia官网人工智能大模型工具合集(文本生成/图像生成/视频生成)的简介、使用方法、案例应用之详细攻略

AI:Nvidia官网人工智能大模型工具合集(文本生成/图像生成/视频生成)的简介、使用方法、案例应用之详细攻略 目录 Nvidia官网人工智能大模型工具合集的简介 1、网站主要功能包括: Nvidia官网人工智能大模型工具合集的使用方法 1、SDXL-Turbo的使用 2、GEMMA-7B的…

全志A33编译踩坑!

领导给了个新sdk。然后开编。 编译的标准流程是这样 cd lichee ./build.sh config 这还得了,每次都选很烦(虽然只需要选一次),于是新写法是这样 ./build.sh -p sun8iw5p1_android -k linux-3.4 -b evb 果断提示 ERROR: inv…

Intellij IDEA构建Android开发环境

Intellij IDEA创建项目时没有Android的选项 进设置(Intellij IDEA - Settings - Plugins )

vue-cli5多入口项目分项目编译打包并部署nginx

项目准备 假设有两个项目A和B,我们希望访问localhost:9000/projectA来访问项目A,访问localhost:9000/projectB来访问项目B. 项目结构 项目配置 vue.config.js var projectname process.argv[3] function getEntry() {var entries {}if (process.en…

网站升级https教程

现在越来越多的网站开始升级https协议,其实早在2014年百度就已经开始支持https协议了,且对于在开启了https的网站会增加其搜索权重,意思是在同类网站中,开启了https的网站搜索排名会增加优先度,搜索到的排名也会增加&a…

Netty学习——源码篇6 Pipeline设计原理

1 Pipeline设计原理 在Netty中每个Channel都有且仅有一个ChannelPipeline与之对应,它们的组成关系如下图: 通过上图可以看到,一个Channel包含了一个ChannelPipeline,而ChannelPipeline中又维护了一个由ChannelHandlerContext组成的…

云数据库认识

云数据库概述 说明云数据库厂商概述Amazon 云数据库产品Google 的云数据库产品Microsoft 的云数据库产品 云数据库系统架构UMP 系统概述UMP 系统架构MnesiaRabbitMQZooKeeperLVSController 服务器Proxy 服务器Agent 服务器日志分析服务器 UMP 系统功能容灾 读写分离分库分表资源…

PyCharm环境下Git与Gitee联动:本地与远程仓库操作实战及常见问题解决方案

写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言下载及安装GitGit的使用设置用户签名设置用户安全目录Git基本操作Git实操操作 Pyc…

设置远程访问 jupyter Notebook Lab

安装Anaconda / Miniconda 进入conda环境,安装jupyter https://jupyter.org/install 生成notebook config C:\Users\***>jupyter notebook --generate-config Writing default config to: C:\Users\***\.jupyter\jupyter_notebook_config.py创建密码 jupyter…

教你怎样根据空行分割TXT文本文档 TXT文本分割 文本拆分实例

比如有一些文本中间用多个空行隔开,需要把隔开的文本分别保存,比如我们要把隔2行或以上空行的文本分别保存成一个文档,如图: 实现方法: 1、先打开首助编辑高手软件,进入【文本批量操作】--【拆分文本】&am…

Gin中的gin.Context与Golang原生的context.Context区别与联系

一.gin中的context gin.Context 1.概念 在 Gin 中,Context 是一个非常重要的概念,它是Gin的核心结构体之一,用于处理 HTTP 请求和响应,在 Gin 的处理流程中,Context 贯穿整个处理过程,用于传递请求和响应的信息Gin 的 Context 是…

python进阶:装饰器

装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是…

【python】获取4K壁纸保存到本地文件夹【附源码】

图片信息丰富多彩,许多网站上都有大量精美的图片资源。有时候我们可能需要批量下载这些图片,而手动一个个下载显然效率太低。因此,编写一个简单的网站图片爬取程序可以帮助我们高效地获取所需的图片资源。 目标网站: 如果出现模…

软件开发困境

软件开发的困境开发者的困境人月神话 布鲁克斯的核心观点包括: EAI (企业应用集成) 通过EAI,企业能够实现以下功能:实例介绍 信息孤岛软件开发有没有“银弹”? 软件开发的困境 在软件开发过程中&#xff0…

FPGA时钟资源详解(3)——全局时钟资源

FPGA时钟系列文章总览:FPGA原理与结构(14)——时钟资源https://ztzhang.blog.csdn.net/article/details/132307564 一、概述 全局时钟是 FPGA 中的一种专用互连网络,旨在将时钟信号分配到 FPGA 内各种资源的时钟输入处。这种设计…

ARM IHI0069F GIC architecture specification (4)

1.3 支持的配置和兼容性 在 Armv8-A 中,EL2 和 EL3 是可选的,PE 可以支持一个、两个或都不支持这些异常级别。 然而: • PE 要求EL3 支持安全和非安全状态。 • PE 需要EL2 来支持虚拟化。 • 如果未实施EL3,则只有一个安全状态。…

Mysql数据库——数据备份与恢复

目录 一、数据备份的重要性 二、数据库备份的分类 1.从物理与逻辑的角度分类 2.从数据库的备份策略角度,备份可分为 2.1完全备份 2.2差异备份 2.3增量备份 2.4总结 三、常见的备份方法 四、Mysql数据库完全备份 1.完全备份定义 2.优缺点 3.数据库完全备…

FPGA时钟资源详解(4)——区域时钟资源

FPGA时钟系列文章总览:FPGA原理与结构(14)——时钟资源https://ztzhang.blog.csdn.net/article/details/132307564 目录 一、概述 二、Clock-Capable I/O 三、I/O 时钟缓冲器 —— BUFIO 3.1 I/O 时钟缓冲器 3.2 BUFIO原语 四、区域时钟…

【每日一题】2642. 设计可以求最短路径的图类-2024.3.26

题目: 2642. 设计可以求最短路径的图类 给你一个有 n 个节点的 有向带权 图,节点编号为 0 到 n - 1 。图中的初始边用数组 edges 表示,其中 edges[i] [fromi, toi, edgeCosti] 表示从 fromi 到 toi 有一条代价为 edgeCosti 的边。 请你实…

计算机网络——数据链路层(差错控制)

计算机网络——数据链路层(差错控制) 差错从何而来数据链路层的差错控制检错编码奇偶校验码循环冗余校验(CRC)FCS 纠错编码海明码海明距离纠错流程确定校验码的位数r确定校验码和数据位置 求出校验码的值检错并纠错 我们今年天来继…