InceptionV1_V2
目录
不同大小的感受野去提取特征
经典 Inception 网络的设计思路与运行流程
背景任务:图像分类(以 CIFAR-10 数据集为例)
Inception 网络的设计思路
Inception 网络的运行流程
打个比方
多个损失函数的理解
1. 为什么需要多个损失函数?
2. 如何实现多个损失函数?
结合图片
通俗一点
流程
inception_v2相较于v1
Inception_v2 相较于 Inception_v1 的改进
1. 引入 Batch Normalization(应该叫层标准化)
2. 分解大卷积核
3. 使用 1x1 卷积进行降维
4. 优化 Inception 模块
5. 减少计算量
Inception_v2 的网络结构
通俗一点

不同大小的感受野去提取特征
多路并行的训练,计算多个loss,用多个相同的块去重复
对于复杂网络架构的神经网络来说,反向传播过程中,靠近输入层的参数难调(存在梯度消失问题),靠近输出层的也难调(参数震荡幅度大,或者说相对幅度较大,因为最先)
|

|
|

经典 Inception 网络的设计思路与运行流程
背景任务:图像分类(以 CIFAR-10 数据集为例)
CIFAR-10 是一个包含 10 类彩色图像的数据集,每张图像大小为 32x32。我们的任务是训练一个模型,能够准确分类这些图像。
Inception 网络的设计思路
Inception 网络的核心思想是 “多尺度特征提取”。传统的卷积网络通常在同一层只使用一种尺寸的卷积核(如 3x3 或 5x5),而 Inception 网络在同一层中并行使用多种尺寸的卷积核(如 1x1、3x3、5x5),并通过 1x1 卷积核进行降维和特征融合。这种设计可以捕捉不同尺度的特征,同时减少计算量。
1. 多尺度卷积
- Inception 模块在同一层中并行使用:
- 1x1 卷积:捕捉局部特征。
- 3x3 卷积:捕捉中等范围特征。
- 5x5 卷积:捕捉更大范围特征。
- 最大池化:保留最显著的特征。
- 这种设计让网络能够同时捕捉不同尺度的特征,提高特征提取的多样性。
2. 1x1 卷积降维
- 在 3x3 和 5x5 卷积之前,使用 1x1 卷积减少通道数,降低计算量。
- 1x1 卷积还可以增加非线性,提升模型的表达能力。
3. 特征融合
- 将不同尺度的卷积结果在通道维度上拼接(concat),融合多尺度特征。
- 这种融合方式让网络能够综合利用不同层次的信息。
Inception 网络的运行流程
以下是一个简化的 Inception 模块在 CIFAR-10 分类任务中的运行流程:
1. 输入层
- 输入图像:32x32x3(CIFAR-10 的图像尺寸)。
2. 初始卷积层
- 使用一个 7x7 卷积层提取低级特征(如边缘、颜色)。
- 输出特征图:32x32x64。
3. Inception 模块
- 分支 1:1x1 卷积
- 使用 1x1 卷积提取局部特征。
- 输出特征图:32x32x64。
- 分支 2:3x3 卷积
- 先使用 1x1 卷积降维,再使用 3x3 卷积提取中等范围特征。
- 输出特征图:32x32x128。
- 分支 3:5x5 卷积
- 先使用 1x1 卷积降维,再使用 5x5 卷积提取更大范围特征。
- 输出特征图:32x32x32。
- 分支 4:最大池化
- 使用 3x3 最大池化保留显著特征,再通过 1x1 卷积调整通道数。
- 输出特征图:32x32x64。
- 特征融合
- 将四个分支的输出在通道维度上拼接。
- 最终输出特征图:32x32x288(64+128+32+64)。
4. 重复 Inception 模块
- 堆叠多个 Inception 模块,逐步提取更高级的特征。
- 每个模块的输出特征图尺寸逐渐减小,通道数逐渐增加。
5. 全局平均池化
- 使用全局平均池化将特征图压缩为固定长度的特征向量。
- 输出特征向量:288 维。
6. 全连接层
- 添加一个全连接层,将特征向量映射到 10 个类别(CIFAR-10 的 10 类)。
- 使用 Softmax 激活函数输出类别概率。
打个比方
想象一下,Inception 网络就像一个 多功能的侦探团队:
- 1x1 卷积:像是一个“细节专家”,专注于捕捉图像的局部细节(如边缘、颜色)。
- 3x3 卷积:像是一个“区域侦探”,负责分析中等范围的特征(如形状、纹理)。
- 5x5 卷积:像是一个“全局侦探”,负责捕捉更大范围的特征(如对象整体)。
- 最大池化:像是一个“总结专家”,负责保留最显著的特征。
这些侦探各自独立工作,然后将他们的发现(特征)汇总到一起,形成一个全面的报告(多尺度特征融合)。最后,这个报告被送到“决策层”(全连接层),由它来判断图像属于哪一类。
多个损失函数的理解
1. 为什么需要多个损失函数?
- 梯度消失问题:在深层网络中,梯度在反向传播过程中可能会逐渐变小,导致靠近输入层的参数更新缓慢,训练效果不佳。
- 更好的梯度传播:通过在网络的中间层添加辅助分类器,可以引入额外的损失函数,帮助梯度更好地传播到浅层,缓解梯度消失问题。
- 正则化效果:多个损失函数可以看作一种正则化方法,防止网络过拟合。
2. 如何实现多个损失函数?
- 辅助分类器:在网络的中间层(如 Inception 模块的某些阶段)添加一个额外的全连接层和 Softmax 层,用于计算辅助损失。
- 总损失:将主分类器的损失和辅助分类器的损失加权求和,作为最终的总损失。
结合图片

Inception 网络的结构中可能包含以下部分:
- 主分类器:
- 通过多个卷积层(如 1x1、3x3、5x5)提取特征。
- 使用全局平均池化或全连接层(FC)生成最终的分类结果。
- 计算主损失(如交叉熵损失)。
- 辅助分类器:
- 在网络的中间层(如某个 Inception 模块后)添加一个辅助分类器。
- 辅助分类器通常包括:
- 一个 1x1 卷积层(用于降维)。
- 一个全连接层(FC)。
- 一个 Softmax 层(用于计算类别概率)。
- 计算辅助损失(如交叉熵损失)。
- 总损失:
- 将主损失和辅助损失加权求和,作为最终的总损失。
- 公式:总损失 = 主损失 + α * 辅助损失,其中 α 是一个权重系数(通常为 0.3 或 0.5)。
通俗一点
Inception 网络比作一个 多层级的工厂生产线:
- 主分类器:是最终的质检部门,负责对成品(最终特征)进行检查,判断产品是否合格(分类是否正确)。
- 辅助分类器:是中间环节的质检员,负责在半成品(中间特征)阶段进行检查,确保每个环节的质量。
如果在中间环节发现问题(辅助损失),工厂可以及时调整生产流程(更新网络参数),而不是等到最终环节才发现问题(主损失)。这种方式可以提高整体生产效率(训练效果),并减少次品率(过拟合)。
流程
- 输入图像:
- 输入图像经过多个卷积层和 Inception 模块,提取特征。
- 辅助分类器 1:
- 在某个中间层(如第 4 个 Inception 模块后)添加辅助分类器。
- 计算辅助损失 1。
- 辅助分类器 2:
- 在另一个中间层(如第 8 个 Inception 模块后)添加辅助分类器。
- 计算辅助损失 2。
- 主分类器:
- 在网络的最后,使用全局平均池化和全连接层生成最终分类结果。
- 计算主损失。
- 总损失:
- 将主损失和辅助损失加权求和,作为最终的总损失。
- 公式:总损失 = 主损失 + 0.3 * 辅助损失 1 + 0.3 * 辅助损失 2。
- 反向传播:
- 根据总损失更新网络参数,优化模型。
在inception网络里比较多的用交替训练或者total_loss,上面的流程是total_loss,而交替训练:先走input - loss0,再input - loss1..,最后input - loss_last,分块训练,使得前面的input(靠近输入层的数据)被更多的拟合
inception_v2相较于v1
新增BN:batch_normalization,层(批)归一化,在卷积层与池化层之间加入BN

Inception_v2 相较于 Inception_v1 的改进
Inception_v2 是 Inception 系列网络的第二个版本,相较于 Inception_v1(也称为 GoogLeNet),它引入了几项重要的改进,主要集中在 减少计算量 和 提高特征提取能力 上。
1. 引入 Batch Normalization(应该叫层标准化)
- 改进点:Inception_v2 在网络中广泛使用了 Batch Normalization(BN)。
数据分布的变化问题
在深层神经网络中,每一层的输入分布会随着训练的进行而发生变化,这种现象被称为 内部协变量偏移(Internal Covariate Shift)。具体来说:
- 每一层的参数更新会导致其输出的分布发生变化。
- 这种变化会传递到下一层,导致下一层的输入分布不稳定。
- 不稳定的输入分布会使得网络的训练变得困难,尤其是深层网络。
Batch Normalization (BN) 的本质

2. 分解大卷积核
- 改进点:将大的卷积核(如 5x5)分解为多个小的卷积核(如两个 3x3)。
- 作用:
- 两个 3x3 卷积核的堆叠可以模拟一个 5x5 卷积核的感受野,但参数数量和计算量更少。
- 增加了网络的非线性能力,因为每个卷积层后面都有激活函数。
- 通俗解释:
- 就像用两个小筛子(3x3)代替一个大筛子(5x5),虽然筛子的层数增加了,但整体效率更高,筛出的东西(特征)也更精细。
3. 使用 1x1 卷积进行降维
- 改进点:在 3x3 和 5x5 卷积之前,使用 1x1 卷积减少通道数。
- 作用:
- 1x1 卷积可以减少特征图的通道数,从而降低计算量。
- 同时,1x1 卷积可以增加非线性,提升模型的表达能力。
- 通俗解释:
- 1x1 卷积就像一个“压缩器”,它先把数据压缩一下,减少不必要的部分,然后再交给后面的工人(3x3 或 5x5 卷积)处理,这样既省力又高效。
4. 优化 Inception 模块
- 改进点:Inception_v2 对 Inception 模块进行了优化,使其更加高效。
- 具体优化:
- 使用更多的 1x1 卷积进行降维。
- 将 5x5 卷积分解为两个 3x3 卷积。
- 在模块中引入 BN 层。
- 通俗解释:
- 就像优化一个工厂的生产线,把复杂的工序拆分成更简单、更高效的步骤,同时加入质检员(BN)确保每一步的质量。
5. 减少计算量
- 改进点:通过上述方法,Inception_v2 显著减少了计算量。
- 作用:
- 使得网络在保持高性能的同时,计算效率更高。
- 更适合在资源有限的环境下运行。
- 通俗解释:
- 就像把一辆耗油的大卡车换成几辆节能的小车,虽然车多了,但整体油耗更低,运输效率更高。(连续使用小的卷积核的好处)
Inception_v2 的网络结构
简化的 Inception_v2 网络结构示例:
- 输入层:
- 输入图像:224x224x3。
- 初始卷积层:
- 使用 7x7 卷积层提取低级特征。
- 输出特征图:112x112x64。
- Inception 模块 1:
- 使用 1x1 卷积降维。
- 使用 3x3 卷积提取特征。
- 使用 BN 层加速训练。
- 输出特征图:56x56x192。
- Inception 模块 2:
- 使用 1x1 卷积降维。
- 使用两个 3x3 卷积代替 5x5 卷积。
- 使用 BN 层加速训练。
- 输出特征图:28x28x480。
- Inception 模块 3:
- 使用 1x1 卷积降维。
- 使用两个 3x3 卷积代替 5x5 卷积。
- 使用 BN 层加速训练。
- 输出特征图:14x14x832。
- 全局平均池化层:
- 将特征图压缩为固定长度的特征向量。
- 输出特征向量:1024 维。
- 全连接层:
- 添加一个全连接层,将特征向量映射到类别数(如 1000 类)。
- 使用 Softmax 激活函数输出类别概率。
通俗一点
Inception_v2 相较于v1好比一个 升级版的工厂:
- BN 工人:确保每个环节的输入都在合理范围内,提高整体效率。
- 小筛子(3x3 卷积):代替大筛子(5x5 卷积),既省力又高效。
- 压缩器(1x1 卷积):先把数据压缩一下,减少不必要的部分,提高处理效率。
- 优化生产线(Inception 模块):把复杂的工序拆分成更简单、更高效的步骤,同时加入质检员(BN)确保每一步的质量。

Inception_v2 引入了 BN,通过批标准化策略,将每一层的输入分布调整为均值为 0、标准差为 1 的分布。这种操作稳定了数据在浅层向深层传递的过程,使得每一层的输入分布更加一致,从而更好地保留了数据间的内部关系。
BN 有效缓解了随着网络加深而出现的梯度消失问题。梯度消失的原因在于,如果不使用 BN,每一层的输入分布可能会随着训练发生变化,导致激活函数的输入值落入饱和区(如 Sigmoid 函数的两端),使得梯度在反向传播过程中逐渐变小,最终导致梯度消失。BN 通过稳定输入分布,使得激活函数的输入值落在其敏感区间内,从而避免了梯度饱和,缓解了梯度消失问题。

相关文章:
InceptionV1_V2
目录 不同大小的感受野去提取特征 经典 Inception 网络的设计思路与运行流程 背景任务:图像分类(以 CIFAR-10 数据集为例) Inception 网络的设计思路 Inception 网络的运行流程 打个比方 多个损失函数的理解 1. 为什么需要多个损失函数&#…...
ORB-SLAM2源码学习:Initializer.cc⑧: Initializer::CheckRT检验三角化结果
前言 ORB-SLAM2源码学习:Initializer.cc⑦: Initializer::Triangulate特征点对的三角化_cv::svd::compute-CSDN博客 经过上面的三角化我们成功得到了三维点,但是经过三角化成功的三维点并不一定是有效的,需要筛选才能作为初始化地图点。 …...
【ArcGIS微课1000例】0141:提取多波段影像中的单个波段
文章目录 一、波段提取函数二、加载单波段导出问题描述:如下图所示,img格式的时序NDVI数据有24个波段。现在需要提取某一个波段,该怎样操作? 一、波段提取函数 首先加载多波段数据。点击【窗口】→【影像分析】。 选择需要处理的多波段影像,点击下方的【添加函数】。 在多…...
【测试人生】变更风险观测的流程逻辑设计
在线上服务变更过程中,我们希望可以通过一套实时观测机制去监测线上服务的风险,从而能够确保线上稳定性,在出问题是可以及时回滚变更。今天这篇文章,就简单讲一下变更风险观测的流程逻辑需要怎么设计。 首先需要明确变更观测的相…...
一文大白话讲清楚webpack基本使用——17——Tree Shaking
文章目录 一文大白话讲清楚webpack基本使用——17——Tree Shaking1. 建议按文章顺序从头看,一看到底,豁然开朗2. 啥叫Tree Shaking3. 什么是死代码,怎么来的3. Tree Shaking的流程3.1 标记3.2 利用Terser摇起来 4. 具体使用方式4.1 适用前提…...
ChatGPT从数据分析到内容写作建议相关的46个提示词分享!
在当今快节奏的学术环境中,研究人员面临着海量的信息和复杂的研究任务。幸运的是,随着人工智能技术的发展,像ChatGPT这样的先进工具为科研人员提供了强大的支持。今天就让我们一起探索如何利用ChatGPT提升研究效率进一步优化研究流程。 ChatG…...
PyCharm配置Python环境
1、打开PyCharm项目 可以从File-->Open-->选择你的项目路径-->OK,或者直接点击Open,找到项目路径-->OK,如图所示(点击Ok后可能有下面的弹窗,选择“Trust Project”即可,然后选择“New Window”打开项目) …...
c#配置config文件
1,引用命名空间 Configuration 及配置信息...
RDMA 工作原理 | 支持 RDMA 的网络协议
注:本文为 “RDMA” 相关文章合辑。 英文引文机翻未校。 图片清晰度受引文所限。 Introduction to Remote Direct Memory Access (RDMA) Written by: Dotan Barak on March 31, 2014.on February 13, 2015. What is RDMA? 什么是 RDMA? Direct me…...
01-硬件入门学习/嵌入式教程-CH340C使用教程
前言 CH340C广泛应用于DIY项目和嵌入式开发中,用于USB数据转换和串口通信。本文将详细介绍CH340C的基本功能、引脚接线及使用方法。 CH340C简介 CH340C是一款USB转TTL电平转换器,可以将电脑的USB数据转换成串口数据,方便与单片机ÿ…...
STM32——LCD
一、引脚配置 查看引脚 将上述引脚都设置为GPIO_Output 二、导入驱动文件 将 LCD 驱动的 Inc 以及 Src 中的 fonts.h,lcd.h 和 lcd.c 导入到自己工程的驱动文件中。 当然,后面 lcd 的驱动学习可以和 IMX6U 一块学。 三、LCD函数 void LCD_Clear(u16 Color); 功能…...
破解浏览器渲染“死锁”:CSS与JS如何影响页面加载速度?
破解浏览器渲染“死锁”:CSS与JS如何影响页面加载速度? 在这个快速发展的Web世界里,性能是开发者们永恒的追求。当你打开一个网页,可能会注意到一些页面加载特别慢,甚至产生短暂的“白屏”,你有没有想过&a…...
操作系统(Linux Kernel 0.11Linux Kernel 0.12)解读整理——内核初始化(main init)之内存的划分
前言 MMU:内存管理单元(Memory Management Unit)完成的工作就是虚拟地址到物理地址的转换,可以让系统中的多个程序跑在自己独立的虚拟地址空间中,相互不会影响。程序可以对底层的物理内存一无所知,物理地址可以是不连续的&#x…...
.NET MAUI进行UDP通信(二)
上篇文章有写过一个简单的demo,本次对项目进行进一步的扩展,添加tabbar功能。 1.修改AppShell.xaml文件,如下所示: <?xml version"1.0" encoding"UTF-8" ?> <Shellx:Class"mauiDemo.AppShel…...
社区养老服务平台的设计与实现(代码+数据库+LW)
摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差&#…...
生信软件管家——conda vs pip
pip vs conda: 安装过python包的人自然两种管理软件都用过, Pip install和Conda install在Python环境中用于安装第三方库和软件包,但它们在多个方面存在显著的区别 总的来说: pip是包管理软件,conda既是包管理软件&…...
项目文章 | PNAS 斑马鱼转录因子ChIP-seq助力解析GATA6突变相关的肝脏疾病机制
近日,西南大学阮华/黄红辉团队联合重庆大学邱菊辉/王贵学团队在PNAS发表了题为“An animal model recapitulates human hepatic diseases associated with GATA6 mutations”的研究论文。该研究构建了一个gata6敲除斑马鱼模型,它重现了gata6突变患者的大…...
JavaScript系列(44)--微服务架构实现详解
JavaScript微服务架构实现详解 🏗️ 今天,让我们来学习如何在JavaScript中实现微服务架构。微服务架构是一种将应用程序构建为一组小型服务的方法,每个服务运行在自己的进程中,并通过轻量级机制通信。 微服务基础概念 …...
Vue组件开发-使用 html2canvas 和 jspdf 库实现PDF文件导出 设置页面大小及方向
在 Vue 项目中实现导出 PDF 文件、调整文件页面大小和页面方向的功能,使用 html2canvas 将 HTML 内容转换为图片,再使用 jspdf 把图片添加到 PDF 文件中。以下是详细的实现步骤和代码示例: 步骤 1:安装依赖 首先,在项…...
Java-并发编程-特性-可见性-synchronized如何保证可见性?
synchronized 能保证可见性吗? 在Java并发编程中,synchronized 关键字不仅用于实现互斥访问,还能够保证内存可见性。理解这一点需要了解Java内存模型(Java Memory Model,JMM)以及happens-before࿰…...
iOS 权限管理:同时请求相机和麦克风权限的最佳实践
引言 在开发视频类应用时,我们常常会遇到需要同时请求相机和麦克风权限的场景。比如,在用户发布视频动态时,相机用于捕捉画面,麦克风用于录制声音;又或者在直播功能中,只有获得这两项权限,用户…...
【深入理解FFMPEG】命令行阅读笔记
这里写自定义目录标题 第三章 FFmpeg工具使用基础3.1 ffmpeg常用命令3.1.13.1.3 转码流程 3.2 ffprobe 常用命令3.2.1 ffprobe常用参数3.2.2 ffprobe 使用示例 3.3 ffplay常用命令3.3.1 ffplay常用参数3.3.2 ffplay高级参数3.3.4 ffplay快捷键 第4章 封装与解封装4.1 视频文件转…...
数据结构:二叉树—面试题(二)
1、二叉树的最近公共祖先 习题链接https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/description/ 描述: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点…...
【C++高并发服务器WebServer】-6:信号
本文目录 信号的概念1.1 core文件1.2 kill命令1.3 alarm函数1.4 setitimer调用1.5 signal捕捉信号1.6 信号集1.7 内核实现信号捕捉的过程1.8 sigaction1.9 sigchld 信号的概念 信号是 Linux 进程间通信的最古老的方式之一,是事件发生时对进程的通知机制,…...
《探秘人工智能:从基础到未来变革》
在当今科技飞速发展的时代,人工智能(AI)无疑是最具影响力和变革性的技术之一。从手机里智能语音助手到自动驾驶汽车,从智能医疗诊断到智能金融服务,人工智能已经渗透到我们生活和工作的方方面面,悄然改变着…...
【数据分享】1929-2024年全球站点的逐月平均能见度(Shp\Excel\免费获取)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标!说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2024年全球气象站点…...
【PyTorch】3.张量类型转换
个人主页:Icomi 在深度学习蓬勃发展的当下,PyTorch 是不可或缺的工具。它作为强大的深度学习框架,为构建和训练神经网络提供了高效且灵活的平台。神经网络作为人工智能的核心技术,能够处理复杂的数据模式。通过 PyTorch࿰…...
不解释快上车
聊一聊 最近有小伙伴问我有小红书图片和短视频下载的软件吗,我心想,下载那上面的图片和视频做什么?也许是自己没有这方面的需求,不了解。 不过话又说回来,有些很多下载器可能作者没有持续的维护,所以可能…...
C++红黑树详解
文章目录 红黑树概念规则为什么最长路径不超过最短路径的二倍?红黑树的时间复杂度红黑树的结构插入叔叔节点情况的讨论只变色(叔叔存在且为红)抽象的情况变色单旋(叔叔不存在或叔叔存在且为黑)变色双旋(叔叔不存在或叔叔存在且为黑…...
csapp2.4节——浮点数
目录 二进制小数 十进制小数转二进制小数 IEEE浮点表示 规格化表示 非规格化表示 特殊值 舍入 浮点运算 二进制小数 类比十进制中的小数,可定义出二进制小数 例如1010.0101 小数点后的权重从-1开始递减。 十进制小数转二进制小数 整数部分使用辗转相除…...
