20_Inception V3深度学习图像分类算法

回顾GoogleNet:传送门

1.1 介绍

InceptionV3是Google开发的一种深度卷积神经网络架构,它是Inception系列网络中的第三代模型,由Christian Szegedy等人在论文《Rethinking the Inception Architecture for Computer Vision》中提出,该论文发表于CVPR 2016。Inception系列网络设计的主要目标是在不显著增加计算复杂度的情况下提高模型的识别精度,尤其是解决深度增加与模型性能之间的平衡问题。

(inceptionV2和V3在同一篇论文中)

主要特点:

  1. 模块化设计:InceptionV3的核心是其独特的“Inception模块”,这些模块由不同大小的卷积核(如1x1, 3x3, 5x5)以及最大池化操作组成,它们并行工作,然后将输出concatenate(连接)在一起。这种设计允许网络在同一层内捕获不同尺度的特征,提高了模型的表达能力。

  2. 卷积核分解:为了减少计算成本,InceptionV3引入了卷积核的分解思想,即将大尺寸的卷积核(如5x5)分解为两个连续的小尺寸卷积核(如一个1x5接一个5x1),这样做不仅减少了参数数量,还保持了模型的性能。

  3. 1x1卷积用于降维:在应用更大尺寸卷积核之前,Inception模块先使用1x1卷积进行降维,这有助于减少计算量而不会过多损失信息,因为1x1卷积可以看作是对输入通道的线性变换。

  4. Batch Normalization(批量归一化):InceptionV3在网络中广泛使用了批量归一化技术,它加速了训练过程,提高了模型的稳定性和泛化能力。

  5. Label Smoothing:在训练过程中,InceptionV3采用了标签平滑正则化技术,通过给正确标签分配接近但不完全是1的概率,从而减少过拟合,提升模型的泛化性能。

  6. 优化器选择:相较于早期版本,InceptionV3在训练时可能采用了更先进的优化器,如RMSProp,以替代传统的随机梯度下降(SGD),这有助于更快地收敛和找到更好的局部最小值。

应用领域:

InceptionV3因其高效的特征提取能力,在图像分类、物体检测、图像分割等多个计算机视觉任务中表现优秀。它也被广泛应用于迁移学习,即在预训练的InceptionV3模型基础上,微调特定任务的数据,以利用其学到的通用视觉特征,快速提升新任务的性能。

实现与实践:

该模型可以通过多种深度学习框架(如TensorFlow、PyTorch等)轻松实现,许多框架提供了预训练的InceptionV3模型,这些模型通常在ImageNet数据集上进行了预训练,可以直接用于特征提取或作为其他视觉任务的基础模型。

1.2  改进的Inception模块

nceptionV3中的Inception模块,也称为Inception块或Inception单元,是对原始Inception模块设计的进一步发展和优化。这一模块的设计初衷是为了在保持计算资源高效的同时,增强网络的表达能力,使其能够学习到更多层次的特征。以下是InceptionV3中Inception模块的关键特点:

  1. 并行多尺度卷积: Inception模块内部包含了多个平行的卷积路径,每个路径使用不同大小的卷积核(如1x1, 3x3, 5x5)。这样的设计允许网络同时从不同尺度上捕捉特征信息,增强了模型对尺度变化的鲁棒性。

  2. 1x1卷积进行降维: 在应用较大的3x3和5x5卷积之前,Inception模块首先使用1x1卷积核进行降维。这样做的目的是减少后续卷积的计算负担,而不会显著影响模型的表达能力。1x1卷积主要用于空间维度不变但减少通道数的操作。

  3. 池化操作: 模块中还包括最大池化操作,通常使用的是3x3的最大池化,步长为1,且边缘补零以保持输出尺寸与输入一致。这有助于引入更多的空间不变性特征。

  4. 深度 wise 和点 wise 分解: 特别地,InceptionV3中广泛采用了1x1卷积进行深度wise操作(减少或维持通道数),随后跟上更大尺寸的卷积核进行空间信息的提取,这是一种有效的参数量减少策略。

  5. 组合输出: 所有这些并行路径的输出被concatenate(连接)在一起,形成一个具有丰富特征信息的输出,这一输出将作为下一个模块的输入或者在模型末端用于分类。

  6. Batch Normalization: InceptionV3中的每一个卷积层后通常都跟着Batch Normalization层,这有助于加速训练过程,减少内部协变量转移,并提高模型的泛化能力。

下图为创新的Inception模块,图左侧将V1中的5x5卷积变为两个3x3卷积(7x7卷积可用3个3x3卷积),图右侧将7x7卷积变为1x3,3x1,1x3,3x1这种不对称的卷积(同理3x3也能用1x3和3x1替代)。

第三个模块是相当于把图右侧的不对称卷积按“宽度”展开(图右侧是按深度展开),这么做是为了增加表示维度。

Module A

将5x5卷积分解为两个3x3卷积的主要目的就是减少参数量。

Module B

不对称卷积,或者叫做空间可分离卷积。

Module C

下采样模块(Grid Size Reduction)

寸),同时尽量减少信息损失和计算成本。这是深度卷积神经网络(CNN)中一个重要的环节,因为在网络的深层,通常需要减小特征图的尺寸以捕获更抽象、更高层次的特征,同时控制模型的复杂性和计算需求。

在InceptionV3中,实现Grid Size Reduction的高效方法涉及到以下几点关键设计:

  1. stride卷积和最大池化结合:传统上,减少特征图尺寸常用的方法是最大池化(Max Pooling),但这可能导致信息丢失。InceptionV3采取了一种更为精细的方法,即在某些Inception模块的输出之后,不是单独使用池化层,而是结合stride为2的卷积层和最大池化层的结果。具体来说,它可能会将一个stride为2的卷积层(例如3x3卷积)与最大池化层(如3x3,stride为2)的输出进行concatenate(连接),这样既减少了空间尺寸,又保留了更多的特征信息。

  2. 使用1x1卷积进行降维:在执行上述操作之前,Inception模块通常会先使用1x1卷积进行通道数的降维,这有助于减少后续卷积操作的计算负担,同时保持模型的表达能力。

  3. 避免表达瓶颈:在进行Grid Size Reduction时,设计者特别注意避免“表达瓶颈”(representational bottleneck),这意味着即使在减少特征图尺寸时,也要确保有足够的通道数来保持信息的丰富性。因此,可能会在降维后紧接着增加通道数,确保模型的表达能力不受损。

  4. 平衡计算效率和信息保留:InceptionV3的Grid Size Reduction策略力求在减少计算成本的同时,最大化保留图像中的有用信息。通过上述设计,模型能够在不引入额外计算负担的前提下,有效地下采样特征图,从而促进模型对更复杂特征的学习。

下图左侧图为普通的下采样,右侧为grid size Reduction



1.3 Inception V2模型结构

1.4 Label Smooth

原理:

传统上,分类任务中使用的标签通常是“硬”标签,即对于一个样本,其正确类别的标签为1,而其他所有类别的标签均为0。但在实际应用中,这种绝对确定性的假设并不总是成立,模型可能会过分自信于训练数据中的硬标签,导致对未见数据的泛化能力下降。

Label Smoothing通过将硬标签转换为“软”标签来缓解这一问题。具体操作是,将原本的标签分布稍微平滑化,即将正确标签的概率略微减小(通常减小一个很小的比例,比如0.1),并将这部分概率平均分配给其他类别。这意味着正确标签不再是1,而是比如0.9,而每个错误类别分得一个非常小的概率份额(例如,如果总共有10个类别,每个错误类别得到0.01的概率)。

实现方式:

在PyTorch等深度学习框架中,可以很容易地实现Label Smoothing。通常,这涉及到修改损失函数计算的方式,使其能够接受经过平滑处理的标签。例如,可以使用如下方式实现:

import torch.nn.functional as Fdef cross_entropy_with_label_smoothing(logits, targets, epsilon=0.1, num_classes=10):"""计算带有标签平滑的交叉熵损失:param logits: 模型输出的logits:param targets: 真实标签(通常是硬标签):param epsilon: 平滑因子:param num_classes: 类别总数:return: 标签平滑后的交叉熵损失"""one_hot_targets = F.one_hot(targets, num_classes=num_classes)  # 将硬标签转换为one-hot形式one_hot_targets = one_hot_targets.float() * (1 - epsilon) + (epsilon / num_classes)  # 应用标签平滑log_probs = F.log_softmax(logits, dim=-1)loss = -(one_hot_targets * log_probs).sum(dim=-1).mean()return loss

效果:

通过引入Label Smoothing,模型在训练时被鼓励学习到更加稳健的决策边界,因为它不再过度依赖于严格正确的标签,而是考虑到了一定程度的不确定性。这有助于提高模型在测试数据上的表现,尤其是在类别边界模糊或者存在噪声的数据集上。InceptionV3等深度学习模型在使用Label Smoothing后,往往能在图像分类等任务上获得更好的泛化性能。

1.5 Inception V3模型结构

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

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

相关文章

gitee上传和下载idea项目的流程

环境:idea2022 一、上传项目 1、在gitee中新建一个仓库。 2、打开所要上传的项目的文件夹,点击Git Bash,生成.git文件夹。 3、在idea中打开所要上传的项目,在控制台的Terminal菜单中,输入git add . (注意&#xf…

解决分布式环境下session共享问题

在分布式环境下,session会存在两个问题 第一个问题:不同域名下,浏览器存储的jsessionid是没有存储的。比如登录时认证服务auth.gulimall.com存储了session,但是搜索服务search.gulimall.com是没有这个session的; 第二个问题&…

鸟类领域超大规模检测实践,基于YOLOv8轻量级检测模型开发构建超大规模生活场景下500种鸟类检测识别分析系统

关于鸟类的检测、识别相关的开发实践在前面的系列博文中也有不少的实践记录,感兴趣的话可以自行移步阅读即可: 【检测类】 《AI识鸟,基于YOLOv5【n/s/m/l/x】全系列参数模型开发构建工业野外场景下鸟类检测识别分析系统》 《基于轻量级YOL…

Eyes Wide Shut Exploring the Visual Shortcomings of Multimodal LLMs

Eyes Wide Shut? Exploring the Visual Shortcomings of Multimodal LLMs 近两年多模态大模型(Multimodal LLM,MLLM)取得了巨大的进展,能够基于图片与人类对话,展现出强大的识别甚至推理能力。然而,在某些…

游戏AI的创造思路-技术基础-蒙特卡洛树搜索(2)

接上一篇,让我们来看更多的例子 目录 7. 更多例子 7.1. 国际象棋实例 7.2. RTS类游戏实例 7.3. FPS类游戏实例 7. 更多例子 蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)在游戏AI中有着广泛的应用,尤其是在那些…

孟德尔随机化--代谢生活方式与消化道癌

写在前面 今天阅读的文献是多种暴露与某结局的孟德尔随机化,算是以量取胜了。 The effect of metabolism-related lifestyle and clinical risk factors on digestive system cancers in East Asian populations: a two-sample Mendelian randomization analysis …

使用tkinter拖入excel文件并显示

使用tkinter拖入excel文件并显示 效果代码 效果 代码 import tkinter as tk from tkinter import ttk from tkinterdnd2 import TkinterDnD, DND_FILES import pandas as pdclass ExcelViewerApp(TkinterDnD.Tk):def __init__(self):super().__init__()self.title("Excel…

谷歌摸鱼神器来了:推出AI会议替身,一键总结提问发言_会议预约 ai对话

饱受会议折磨的打工人,终于可以解放了! 就在刚刚举办的Google Cloud Next’23大会上,谷歌宣布了一系列科技新进展,最瞩目的要属其中的“开会AI替身”了。 只需要一句“帮我参加”,AI就能替你开会,并在合适…

设计模式探索:装饰器模式

1. 装饰器模式定义 装饰器模式(Decorator Pattern) 装饰器模式是一种结构型设计模式,允许向一个对象动态添加行为。在不改变类的接口的情况下,装饰器模式在原始类上增加额外的职责,并且支持多个装饰器嵌套使用。 装…

车载聚合路由器应用场景分析

乾元通QYT-X1z车载式1U多卡聚合路由器,支持最多8路聚合,无论是应急救援,还是车载交通,任何宽带服务商无法覆盖的区域,聚合路由器可提供现场需要的稳定、流畅、安全的视频传输网络,聚合路由器可无缝接入应急…

安装nodejs | npm报错

nodejs安装步骤: 官网:https://nodejs.org/en/ 在官网下载nodejs: 双击下载下来的msi安装包,一直点next,我选的安装目录是默认的: 测试是否安装成功: 输入cmd打开命令提示符,输入node -v可以看到版本,说…

idea创建dynamic web project

由于网课老师用的是eclipse,所以又得自己找教程了…… 解决方案: https://blog.csdn.net/Awt_FuDongLai/article/details/115523552

有没有适合全体质猫咪的主食冻干?全价冻干:希喂大橙罐实测分享

作为一个注重猫咪身体健康和幸福感的铲屎官,怎么会不喂主食冻干。毕竟,除了猫咪爱吃外,高含肉量、高营养的主食冻干也能给猫咪的健康带来一系列的好处。 最近,我给我家猫猫们入手了一款性价比超高的主食冻干:希喂CPMR2…

mybatis中的标签

在MyBatis中&#xff0c;除了基本的SQL映射功能外&#xff0c;还有许多用于动态SQL构建的标签。这些标签允许我们根据不同的条件和需求构建复杂的SQL语句。主要的动态SQL标签包括<if>, <choose>, <when>, <otherwise>, <trim>, <set>, <…

deepstream段错误

&#x1f610; 错误&#xff1a; 探针中由于使用了pyds.get_nvds_buf_surface(hash(gst_buffer), frame_meta.batch_id)导致的段错误&#xff08;segmentation fault&#xff09;。 解决方式&#xff1a;

彩带插画:成都亚恒丰创教育科技有限公司

彩带插画&#xff1a;色彩斑斓的艺术世界 在浩瀚的艺术海洋中&#xff0c;彩带插画以其独特的魅力&#xff0c;如同一条绚烂的彩绸&#xff0c;轻轻拂过人们的心田&#xff0c;留下一抹抹难以忘怀的色彩。成都亚恒丰创教育科技有限公司它不仅仅是一种视觉上的享受&#xff0c;…

二叉树超详细解析

二叉树 目录 二叉树一级目录二级目录三级目录 1.树的介绍1.1树的定义1.2树的基本术语1.3相关性质 2.二叉树介绍2.1定义2.2 性质 3.二叉树的种类3.1 满二叉树3.2完全二叉树3.3 二叉查找树特点&#xff1a;二叉查找树的节点包含的基本信息&#xff1a; 3.4 平衡二叉树 4.二叉树的…

python破解密码·筛查和选择

破解密码时可能遇到的几种情况 ① 已知密码字符&#xff0c;破排序 ② 已知密码位数&#xff0c;破字符 ③ 已知密码类型&#xff0c;破字位 ④ 已知部分密码&#xff0c;破未知 ⑤ 啥都不知道&#xff0c;盲破&#xff0c;玩完 ⑥ 已知位数、字符、类型、部分密码中的几个&am…

单链表(C语言详细版)

1. 链表的概念及结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表的结构跟火车车厢相似&#xff0c;淡季时车次的车厢会相应减少&#xff0c;旺季时车次的车厢会额外增加几节。…

资料分析笔记整理

提升技巧多做题、少动笔、多分析 资料分析认识 国考一般20题(24~28分钟) 统计材料的类型包括单纯的文字、表格、图形以及由这些元素组成的复合类型材料 文字性材料:(30~60秒) 多段落型文字材料(时间、关键词、结构) 孤立段落文字材料(时间、关键词、标点[。;]) 表…