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

news2024/11/19 8:47:18

        谷歌的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.coloradmin.cn/o/1720729.html

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

相关文章

Python—面向对象小解(3)

一、多态 多态指的是一类事物的多中形态 相同的方法,产生不同的执行结果 运算符 * 的多态 int int 加法计算 str str 字符串拼接 list list 列表的数据合并 在python中可以使用类实现一个多态效果 在python中使用重写的方式实现多态 (1)定…

字符串 | 字符串匹配之 KMP 算法以及 C++ 代码实现

目录 1 为什么使用 KMP?2 什么是 next 数组?2.1 什么是字符串的前后缀?2.2 如何计算 next 数组? 3 KMP 部分的算法4 完整代码 😈前言:这篇文章比较长,但我感觉自己是讲明白了的 1 为什么…

Vue之组件基础(插槽)

在HTML中,开发者可以在双标签内添加一些信息。而在Vue中,组件以标签的形式引用,那么如何在组件的标签内添加一些信息并将信息渲染到页面中呢?其实,Vue 提供了插槽,专门用来实现这样的效果。 一.什么是插槽 Vue为组件…

怎么使用Python代码在图片里面加文字

在Python中,给图片添加文字可以使用Pillow库(PIL的一个分支),它是一个强大的图像处理库。如果你还没有安装Pillow,可以通过pip安装: pip install Pillow下面使用一个简单的示例,演示如何使用Pi…

系统架构设计师【第9章】: 软件可靠性基础知识 (核心总结)

文章目录 9.1 软件可靠性基本概念9.1.1 软件可靠性定义9.1.2 软件可靠性的定量描述9.1.3 可靠性目标9.1.4 可靠性测试的意义9.1.5 广义的可靠性测试与狭义的可靠性测试 9.2 软件可靠性建模9.2.1 影响软件可靠性的因素9.2.2 软件可靠性的建模方法9.2.3 软件的可靠性模…

CISCN 2023 初赛 被加密的生产流量

题目附件给了 modbus.pcap 存在多个协议 但是这道题多半是 考 modbus 会发现 每次的 Query 末尾的两个字符 存在规律 猜测是base家族 可以尝试提取流量中的数据 其中Word Count字段中的22871 是10进制转16进制在转ascii字符串 先提取 过滤器判断字段 tshark -r modbus.pcap …

java线程状态介绍

1.新建(New): 线程对象已创建,但还没有调用 start() 方法。 2.可运行(Runnable): 线程已启动,处于就绪状态,等待 JVM 的线程调度器分配CPU时间。 3.阻塞(Blocked): 线程…

自动化桌面整理新时代:Llama 3驱动的智能文件管理系统

在信息爆炸的时代,个人和企业用户的电脑桌面常常被海量文件占据,导致查找特定文件如同大海捞针。为了解决这一痛点,Llama 3应运而生——一个集成了先进多模态AI技术的智能文件管家,旨在将杂乱无章的文件世界变得井然有序。本文将深入探讨Llama 3如何利用其创新功能,不仅自…

上传RKP 证书签名请求息上传到 Google 的后端服务器

上传证书签名请求 1.准备环境:OK pip3 install google-auth2.13.0 requests2.28下载 device_info_uploader.py 。 没找到先跳过 选项 1:通过 GCP 帐户使用 device_info_uploader.py 运行脚本。 ./device_info_uploader.py --credentials /secure/s…

简要分析学习spring内存马,劫持马

简要分析学习spring内存马,劫持马 本文主要是通过SpringMemShell这个工程,来对spring内存马进行演示,利用。 写在前面: 参考的是大佬给的流程以及思路,其中的解释与分析非常详细 ----->>大佬的链接 这里的内存马文件取自gi…

python采集汽车价格数据

python采集汽车价格数据 一、项目简介二、完整代码一、项目简介 本次数据采集的目标是车主之家汽车价格数据,采集的流程包括寻找数据接口、发送请求获取响应、解析数据和持久化存储,先来看一下数据情况,完整代码附后: 二、完整代码 #输入请求页面url #返回html文档 imp…

Scikit-Learn 基础教程

目录 🐋Scikit-Learn 基础教程 🐋Scikit-Learn 简介 🐋 数据预处理 🦈数据集导入 🦈数据清洗 🦈特征选择 🦈特征标准化 🐋 模型选择 🦈分类模型 🦈回…

Resilience4j结合微服务出现的异常

Resilience4j结合微服务出现的异常 1、retry未生效 由于支持aop&#xff0c;所以要引入aop的依赖。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>2、circ…

解决:【无法安装“vue.volar“扩展,因为它与当前 VIsual Studio Code 版本不兼容(版本 1.80.0)】

目录 问题复现问题分析解决步骤1、进入VSCode插件市场&#xff0c;搜索Vue.volar2、点击搜索结果&#xff0c;进入详情页面3、下载.vsix文件完成后&#xff0c;用解压软件打开 4、复制package.json文件&#xff0c;修改vscode版本5、保存package.json文件&#xff0c;并更新.v…

2024 HN CTF WebMisc 部分 wp

Web ez_tp 判断是thinkphp 3.2 参考官方手册:https://www.kancloud.cn/manual/thinkphp/1697 判断路由模式 URL_CASE_INSENSITIVE > true, // 默认false 表示URL区分大小写 true则表示不区分大小写URL_MODEL > 1, // URL访问模式,可选参数0、1、…

cURL error 60: SSL certificate problem: unable to get local issuer certifica

本地小程序把接口换到本地的服务器接口&#xff0c;然后就报错了&#xff1a; cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) 经查询查到&#xff1a;此问题的出现是由于没有配…

第八十九周周报

学习目标&#xff1a; 论文 学习时间&#xff1a; 2024.05.25-2024.05.31 学习产出&#xff1a; 一、论文 SAN: INDUCING METRIZABILITY OF GAN WITH DISCRIMINATIVE NORMALIZED LINEAR LAYER 将GAN与切片最优输运联系起来&#xff0c;提出满足方向最优性、可分离性和单射…

数据资产价值如何评估?一文详解如何构建数据资产评估的综合框架

数据资产&#xff0c;如同其构成的数据本身&#xff0c;具备物理、存在和信息三重属性。数据资产的物理属性体现在其对存储空间的占用&#xff1b;其存在属性则体现在数据的可读取性上&#xff0c;若数据无法读取&#xff0c;则其作为资产的价值便无从体现。这两个属性共同构成…

LeetCode 算法: 字母异位词分组c++

原题链接&#x1f517;&#xff1a;字母异位词分组 难度&#xff1a;中等⭐️⭐️ 题目 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“e…

centos7.9离线安装mysql5.7

centos7.9离线安装mysql5.7 查询mysql查询组查询用户不存在创建即可&#xff0c;创建mysql用户组上传下载的安装包创建my.cnf文件修改配置文件修改mysql登陆密码 centos7.9 mysql5.7 查询mysql rpm -qa | grep mysql我这里查询是不存在&#xff0c;如果你的存在可以用rm -rf […