【机器学习300问】106、Inception网络结构如何设计的?这么设计的目的是什么?

2024-06-01 12:04

本文主要是介绍【机器学习300问】106、Inception网络结构如何设计的?这么设计的目的是什么?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        谷歌的Inception网络,也被称为GoogLeNet,是Google在2014年推出的一种深度卷积神经网络(CNN)模型,在这之前的AlexNet、VGG等结构都是通过增大网络的深度(层数)来获得更好的训练效果,但层数的增加会带来很多负作用,比如overfit、梯度消失、梯度爆炸等。Inception网络的核心组成部分是所谓的"Inception模块",这是对传统卷积神经网络架构的创新。

一、Inception模块

(1)Inception模块 

        Inception模块的基本设计理念是通过在一个层内并行地使用不同大小的卷积核(例如1x1, 3x3, 5x5)以及最大池化操作,能够在不显著增加计算负担的前提下,捕获图像的不同尺度特征。具体来说,模块包含以下几个部分:

Inception模块示意图

按照上图中Inception模块中的几个部分,一个个介绍一下他们的作用:

  • 1x1卷积层:Inception模块中的1x1卷积层不仅用于减少计算量,还能够有效控制网络中的参数数量。通过降低特征图的深度(通道数),它减轻了网络的复杂性,从而减少了梯度在深层网络中传播时可能遇到的路径数量,防止梯度爆炸和梯度消失。
  • 3x3和5x5卷积层:Inception模块通过并行使用不同大小的卷积核和池化操作,能够在不同的尺度上提取特征,这增加了网络的多样性,减少了单一路径上的依赖,从而间接帮助梯度更好地传播。但5x5卷积因其较大的感受野而计算成本较高,因此较少使用。
  • 最大池化层:增加模型对不同尺度信息的鲁棒性。
  • 拼接输出:会在深度维度上被拼接(Filter concatenation),形成一个具有丰富特征表示的输出。

(2)Inception网络架构

         通常Inception网络是从几个传统的卷积层开始,用于初步特征提取。然后网络主体由多个Inception模块堆叠而成,每个模块根据需要可能包含不同数量的卷积层和不同配置的Inception结构。在最后的几个模块之后,会使用全局平均池化层来替代全连接层,这一步骤可以显著减少参数数量,同时保持模型的判别能力。之后,通常会接一个或几个全连接层用于最终的分类任务。

GoogLeNet整体架构

        Inception网络经历了多次迭代,从Inception V1到V4,以及Xception等变种。这些后续版本在基础Inception模块上进行了优化,例如引入了批量归一化、因子分解卷积、残差连接等技术,以进一步提高模型的效率和准确性,同时继续解决梯度消失和过拟合等问题。

二、Inception网络结构的优点

        Inception网络无需人为干预以确定使用哪个过滤器或是否进行池化操作,这些参数均由网络内部机制自主决定。你可以给网络添加这些参数的所有可能值,并通过连接这些输出,让网络在训练过程中自我学习,以优化其参数配置,并确定最佳的过滤器组合。

(1)多尺度并行处理

        Inception模块通过并行使用不同大小的卷积核和池化操作,自动地在不同尺度上捕捉特征,这在一定程度上模拟了“自主决定”各种滤波器尺寸的效果,无需人工精确选择单一最优尺寸。这种设计减少了对人工特征工程的依赖,提高了模型的泛化能力。

(2)高效利用计算资源

        通过使用1x1卷积核进行降维,以及分解大尺寸卷积(如用两个3x3卷积代替一个5x5卷积),Inception网络在保持强大表达能力的同时,有效控制了模型的复杂度和计算成本,这是其一大优势。这里用一个例子来说明一下:

① 不包含1x1卷积模块的情况

参数量:

        对于一个5x5卷积层,如果输入通道数为256,输出通道数为64,则参数量为卷积核的尺寸乘以输入通道数再乘以输出通道数,即5\times 5\times 256\times 256

连接数:

        每个神经元的连接数包括所有输入通道上的权重加上一个偏置项。对于5x5卷积核,每个输出通道有 5\times 5\times 256+1 个连接。总连接数为每个输出通道的连接数乘以输出通道数再乘以输出特征图的尺寸,即(5\times 5\times 256\times 256)\times 64 \times n^2

② 包含1x1卷积模块的情况

        在Inception结构中,通常会在5x5卷积之前使用1x1卷积来进行降维,假设1x1卷积的输出通道数为32,这样可以减少后续5x5卷积的计算负担。

参数量:

  • 1x1卷积参数量:1 \times 1 \times 256 \times 32
  • 5x5卷积参数量:在经过1x1卷积降维后,输入通道变为32,所以参数量为5 \times 5 \times 32 \times 64

连接数:

  • 1x1卷积的每个输出通道有1 \times 1 \times 256 + 1个连接,总共(1 \times 1 \times 256 + 1) \times 32 \times n^2个连接。
  • 5x5卷积的每个输出通道有5 \times 5 \times 32 + 1个连接,总共有(5 \times 5 \times 32 + 1) \times 64 \times n^2个连接。
  • 总连接数为两部分之和

③ 计算结果

  • 不包含1x1卷积模块时,对于输出特征图尺寸为 7×7 的情况,连接数为约 20,073,536
  • 包含1x1卷积模块时,同样的输出尺寸下,连接数减少到约 2,914,912
  • 不包含1x1卷积模块的情况下参数量为 409,600
  • 包含1x1卷积模块的情况下参数量为 59,392

        计算证实包含1x1卷积模块的结构显著减少了模型的参数量和连接数,从而降低了计算复杂度,提高了训练效率,同时保持了模型的表达能力。

(3)集成多种特征

        Inception模块的结构允许网络整合不同类型的特征信息(局部的、全局的、不同尺度的),这种集成方式有利于学习更丰富的图像表示,提高分类或检测的准确性。

(4)灵活可拓展

        Inception网络的模块化设计便于调整和扩展,研究人员可以根据特定任务的需求,通过增加或修改Inception模块来优化模型结构,这赋予了模型极高的灵活性。

这篇关于【机器学习300问】106、Inception网络结构如何设计的?这么设计的目的是什么?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

51单片机学习记录———定时器

文章目录 前言一、定时器介绍二、STC89C52定时器资源三、定时器框图四、定时器模式五、定时器相关寄存器六、定时器练习 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: 1.用于计数系统,可

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

《offer来了》第二章学习笔记

1.集合 Java四种集合:List、Queue、Set和Map 1.1.List:可重复 有序的Collection ArrayList: 基于数组实现,增删慢,查询快,线程不安全 Vector: 基于数组实现,增删慢,查询快,线程安全 LinkedList: 基于双向链实现,增删快,查询慢,线程不安全 1.2.Queue:队列 ArrayBlockingQueue:

17.用300行代码手写初体验Spring V1.0版本

1.1.课程目标 1、了解看源码最有效的方式,先猜测后验证,不要一开始就去调试代码。 2、浓缩就是精华,用 300行最简洁的代码 提炼Spring的基本设计思想。 3、掌握Spring框架的基本脉络。 1.2.内容定位 1、 具有1年以上的SpringMVC使用经验。 2、 希望深入了解Spring源码的人群,对 Spring有一个整体的宏观感受。 3、 全程手写实现SpringM

在线装修管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,装修队管理,用户管理,装修管理,基础数据管理,论坛管理 前台账户功能包括:系统首页,个人中心,公告信息,论坛,装修,装修队 开发系统:Windows 架构模式:B/S JDK版本:Java JDK1.8 开发工具:IDEA(推荐) 数据库版本: mysql5.7 数据库可视化工具: navicat 服务器:SpringBoot自带 ap

硬件基础知识——自学习梳理

计算机存储分为闪存和永久性存储。 硬盘(永久存储)主要分为机械磁盘和固态硬盘。 机械磁盘主要靠磁颗粒的正负极方向来存储0或1,且机械磁盘没有使用寿命。 固态硬盘就有使用寿命了,大概支持30w次的读写操作。 闪存使用的是电容进行存储,断电数据就没了。 器件之间传输bit数据在总线上是一个一个传输的,因为通过电压传输(电流不稳定),但是电压属于电势能,所以可以叠加互相干扰,这也就是硬盘,U盘