深度学习论文随记(三)GoogLeNet-2014年

2024-03-23 06:38

本文主要是介绍深度学习论文随记(三)GoogLeNet-2014年,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

深度学习论文随记(三)GoogLeNet

Going Deeper with Convolutions

Author: Christian Szegedy, Wei Liu,  Yangqing Jia, etl.

Year 2014

1、导引

2014年google参加ILSVRC竞赛,以此网络模型获得第一名的成绩。此模型名为GoogLeNet,而不是GoogleNet.是为了向CNN的开山鼻祖LeNet致敬。

该模型共有22层,利用multi-scaletraining。层数虽然变多,但是参数总量却只有7M,比AlexNet少多了,可是准确率却提高了:Top-5的错误率只有6.66%。

GoogLeNet模型成功证明了用更多的卷积,更深的网络层数可以得到更好的预测效果。

 

2、模型解读

 

Inception结构:

Why?

如果单纯的加深或者拓宽网络模型,会产生两个较为突出的问题:

①网络规模变大会产生更多参数,从而容易导致过拟合的发生。

②网络规模变大会使得计算量变大,消耗更多的计算资源。

解决这两个问题的方法是将全连接甚至是一般的卷积转化为稀疏矩阵。但是由于计算机计算时,对于非均匀稀疏数据这种东西的计算效率很差(这个其实很容易理解,你留意一下就会发现计算机在很多时候,都对矩形、矩阵有着难以置信的执着。),所以AlexNet模型启用了全连接层(全连接层说白了就是进行了矩阵乘法,)其目的是为了更好地优化并行运算。

 

所以,针对:”既要使得网络具有稀疏性,又想利用密集矩阵的高计算性能”这一个问题,人们提出了一种思路:将稀疏矩阵聚类为较为密集的子矩阵来提高计算性能,Google团队就顺着这一个思路,提出来了Inception结构。

 

Inception 结构的主要思路是怎样用密集成分来近似最优的局部稀疏结构

首先提出下图这样的基本结构:



本模型的分析: 
1 . 采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合; 
2 . 之所以卷积核大小采用1、3和5,主要是为了方便对齐。设定卷积步长stride=1之后,只要分别设定pad=0、1、2,那么卷积之后便可以得到相同维度的特征,然后这些特征就可以直接拼接在一起了; 
3 . 文章说很多地方都表明pooling挺有效,所以Inception里面也嵌入了。 
4 . 网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加。但是5x5的卷积核会带来巨大的计算量,所以采用1x1的卷积核进行降维处理。


所以他们又做了如下的改进:




GoogLeNet:





共有22层,原始输入的数据大小为224x224x3.

3、特点

·采用了模块化的结构,方便增添和修改

·网络最后用的是averagepooling层替代全连接层,将Top-1成功率提高了一点

·网络移除了全连接层,但是保留了Dropout层

·网络增加了两个辅助的softmax用于向前传导梯度,避免梯度消失。



这篇关于深度学习论文随记(三)GoogLeNet-2014年的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/837458

相关文章

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499