【机器学习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模块来优化模型结构,这赋予了模型极高的灵活性。

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

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

相关文章

阿里云 通过EIP实现VPC下的SNAT以及DNAT

192.168.0.85 有公网地址192.1680.95无公网地址 在192.168.0.85(有公网地址服务器上操作) #开启端口转发 echo "net.ipv4.ip_forward 1" >> /etc/sysctl.conf sysctl -p#仅允许192.168.0.95 iptables -t nat -I POSTROUTING -s 192.16…

【前缀和 记忆化搜索】LeetCode1444. 切披萨的方案数

本文涉及的基础知识点 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 动态规划 记忆化搜索 LeetCode1444. 切披萨的方案数 给你一个 rows x cols 大小的矩形披萨和一个整数 k ,矩形包含两种字符: ‘A’ &#xff…

GEYA格亚GRT8-S1S2间歇性双时间循环继电器时间可调交流220V 24v

品牌 GEYA 型号 GRT8-S2 AC/DC12-240V 产地 中国大陆 颜色分类 GRT8-S1 A220,GRT8-S1 AC/DC12-240V,GRT8-S2 A220,GRT8-S2 AC/DC12-240V GRT8-S,循环延时,时间继电器:LED指示灯,触头容量大,电压超宽&#xff0…

某咨询公司的大数据解决方案介绍(32页PPT)

方案介绍: 本咨询公司的大数据平台解决方案以企业实际需求为出发点,结合先进的大数据技术和行业经验,为企业提供一站式的大数据服务。通过实时数据收集与处理、深度数据分析与挖掘、可视化数据展示以及灵活的数据应用与扩展,帮助…

25. 悲观锁 和 乐观锁

文章目录 悲观锁 和 乐观锁1.基于CAS实现乐观锁2.自旋锁2.1.不可重入自旋锁2.2.可重入自旋锁2.3.CLH自旋锁 悲观锁 和 乐观锁 Java中的synchronized就是悲观锁的一个实现,悲观锁可以确保无论哪个线程持有锁,都能独占式的访问临界区代码,虽然悲…

企业微信hook接口协议,ipad协议http,获取欢迎语列表

获取欢迎语列表 参数名必选类型说明uuid是String每个实例的唯一标识,根据uuid操作具体企业微信 请求示例 {"uuid":"3240fde0-45e2-48c0-90e8-cb098d0ebe43","offset":"","limit":10 } {"data": {&…

HTML静态网页成品作业(HTML+CSS)—— 冶金工程专业展望与介绍介绍网页(2个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有2个页面。 二、作品演示 三、代…

手机离线翻译哪个好?断网翻译也能超丝滑

有时在异国他乡,面对语言不通的窘境,即便是简单的对话也变得异常困难,真是挑战满满! 然而,能离线翻译的软件让语言障碍不再是问题,不必依赖网络也能轻松进行翻译啦~ 只需下载所需的语言包,选择…

信息系统项目管理师0604:项目整合管理 — 历年考题(详细分析与讲解)

点击查看专栏目录 1、2017年11月第34题 项目经理张工带领团队编制项目管理计划,(34)不属于编制项目管理计划过程的依据。 A. 项目章程B. 事业环境因素C. 组织过程资产D. 工作分解结构【答案】D 【解析】考查的是编写项目管理计划的相关知识,需要掌握。编写项目管理计划的…

HNU-深度学习-电商多模态图文检索

前言 主要是跟着baseline搭了一遍,没有想到很好的优化。 有官方教程,但是有点谬误,所以就想着自己记录一下我的完成过程。 github项目地址: https://github.com/OFA-Sys/Chinese-CLIP 官方文档: 电商多模态图文检…

Linux input输入子系统

Linux input 更多内容可以查看我的github Linux输入子系统框架 Linux输入子系统由驱动层、核心层、事件处理层三部分组成。 驱动层:输入设备的具体驱动程序,负责与具体的硬件设备进行交互,并将底层的硬件输入转化为统一的事件形式&#xff…

laravel项目配置Facades Redis自动补全,方法查看

问题原因: 因为Laravel的Redis连接实例是通过RedisManger的工厂类创建的,返回的是一个mixin的类型,因此在IDE中不能自动补全Redis的方法,缺少这个功能,使用起来有些麻烦,尤其是Redis有数十个方法,每个方法也有不少参数。 相关部分的代码如下: /*** @mixin \Illumina…

mac电脑鼠标键盘共享软件:ShareMouse for Mac 激活版

ShareMouse 是一款跨平台的键盘和鼠标共享软件,它允许用户在多台计算机之间共享同一组键盘和鼠标,实现无缝的操作和控制。该软件适用于 Windows 和 macOS 系统,并且支持多种连接方式,包括局域网连接和无线连接。 使用 ShareMouse&…

【PHP项目实战训练】——laravel框架的实战项目中可以做模板的增删查改功能(2)

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

安卓Zygote进程详解

目录 一、概述二、Zygote如何被启动的?2.1 init.zygote64_32.rc2.2 Zygote进程在什么时候会被重启2.3 Zygote 启动后做了什么2.4 Zygote启动相关主要函数 三、Zygote进程启动源码分析3.1 Nativate-C世界的Zygote启动要代码调用流程3.1.1 [app_main.cpp] main()3.1.2…

江协科技STM32学习-1 购买24Mhz采样逻辑分析仪

前言: 本文是根据哔哩哔哩网站上“江协科技STM32”视频的学习笔记,在这里会记录下江协科技STM32开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技STM32教学视频和链接中的内容。 引用: STM32入门教程-2023版 细致讲…

CVPR2024 合成异常数据 工业异常检测 RealNet

前言 本文分享一个基于扩散模型的异常检测框架,用于检测工业场景的缺陷检测或异常检测。 强度可控扩散异常合成:基于扩散过程的合成策略,能够生成不同强度的异常样本,模仿真实异常样本的分布。异常感知特征选择:选择…

学习Java,stringbuilder用法

有sb.append添加元素,sb.reverse反转内容,sb.tostring转换成字符串,sb.length计算长度。

东莞酷得智能 组装机械狗电子玩具方案

这款机械狗玩具电子方案结合了现代电子技术和人工智能元素,旨在为用户提供一个高科技、互动性强的娱乐体验。通过不断的软件更新和硬件迭代,机械狗的功能将持续扩展。 一、功能特点: 1、自动巡游:机械狗能够自主在房间内巡游&am…

分库分表、读写分离--ShardingJDBC

1. 项目准备 1.1 建立数据库表 建立user_manage数据库,在该库中建立1张表app_user用来做分库前的测试,另外建12张按月份命名的表app_user_2024XX用来做分库。 CREATE DATABASE IF NOT EXISTS user_manage CHARACTER SET utf8 COLLATE utf8_general_ci…