第三十周:文献阅读

第三十周:综述阅读+文献阅读+pytorch学习

  • 摘要
  • Abstract
  • 1. 深度可分离卷积
    • 1.1 文献摘要
    • 1.2 引言
    • 1.3 Inception 模块
    • 1.4 Inception模块与深度可分离卷积的差别
    • 1.5 Xception架构
    • 1.6 实验
    • 1.7 总结
    • 1.8 创新点

摘要

深度可分离卷积是一种卷积神经网络(CNN)中的卷积操作,其设计目的是在保持性能的同时减少参数量和计算复杂度。这种卷积操作通常分为两个步骤:深度卷积(Depthwise Convolution)和逐点卷积(Pointwise Convolution)。由于深度卷积只在每个通道上进行卷积,而不是在所有通道上同时进行,因此参数量大大减少。这有助于减小模型大小,提高模型在资源有限的环境中的可用性。本文将通过 Xception: Deep Learning with Depthwise Separable Convolutions ,我们深入了解深度可分离卷积

Abstract

Deeply separable convolution is a convolution operation in convolutional neural networks (CNNs) designed to reduce the number of parameters and computational complexity while maintaining performance. This convolution operation is usually divided into two steps: depthwise convolution and pointwise convolution. The number of parameters is greatly reduced because deep convolution is performed only on each channel, not on all channels simultaneously. This helps in reducing the model size and improves the usability of the model in resource constrained environments. In this article, through Xception: Deep Learning with Depthwise Separable Convolutions , we take a deeper look at deep separable convolution

1. 深度可分离卷积

文献来源:Xception: Deep Learning with Depthwise Separable Convolutions

1.1 文献摘要

作者将卷积神经网络中的 Inception 模块解释为常规卷积和深度可分离卷积运算(深度卷积后跟点卷积)之间的中间步骤。从这个角度来看,深度可分离卷积可以理解为具有最大数量塔的 Inception 模块。作者在该文献中证明,这种被称为 Xception 的架构在 ImageNet 数据集(Inception V3 的设计目标)上稍微优于 Inception V3,并且在包含 3.5 亿张图像和 17,000 个类别的更大图像分类数据集上显着优于 Inception V3。由于 Xception 架构具有与 Inception V3 相同数量的参数,因此性能提升并不是由于容量的增加,而是由于更有效地使用模型参数。

1.2 引言

近年来,卷积神经网络已成为计算机视觉领域的主要算法,并且开发设计它们的方法已成为备受关注的主题。卷积神经网络设计的历史始于 LeNet 式模型,它是用于特征提取的简单卷积堆栈和用于空间子采样的最大池化操作。 2012 年,这些想法被细化为 AlexNet 架构,其中卷积操作在最大池化操作之间重复多次,从而使网络能够在每个空间尺度上学习更丰富的特征。

Inception 类型模型的基本构建块是 Inception 模块,该模块存在多个不同的版本。在下图中,展示了 Inception 模块的规范形式,如 Inception V3 架构中所示。 Inception 模型可以理解为此类模块的堆栈。这与早期的 VGG 式网络不同,早期的 VGG 式网络是简单卷积层的堆栈。
在这里插入图片描述

1.3 Inception 模块

卷积层尝试学习 3D 空间中的滤波器,具有 2 个空间维度(宽度和高度)和一个通道维度;因此,单个卷积核的任务是同时映射跨通道相关性和空间相关性。

Inception 模块是通过将其显式分解为一系列操作来使该过程变得更容易、更高效,这些操作将独立地查看跨通道相关性和空间相关性。更准确地说,典型的 Inception 模块首先通过一组 1x1 卷积查看跨通道相关性,将输入数据映射到小于原始输入空间的 3 或 4 个独立空间,然后将所有相关性映射到这些较小的 3D 空间中,通过常规 3x3 或 5x5 卷积。如上图所示。

考虑 Inception 模块的简化版本,该模块仅使用一种尺寸的卷积(例如 3x3),并且不包括平均池塔。该 Inception 模块可以重新表述为一个大型 1x1 卷积,然后是对输出通道的非重叠段进行操作的空间卷积。
在这里插入图片描述
在这里插入图片描述
基于这个更强的假设,Inception 模块的“极端”版本将首先使用 1x1 卷积来映射跨通道相关性,然后分别映射每个输出通道的空间相关性。如下图所示。Inception 模块的这种极端形式几乎与深度可分离卷积(一种已在神经网络中使用的操作)相同。
在这里插入图片描述
深度可分离卷积,在 TensorFlow 和 Keras 等深度学习框架中通常称为“可分离卷积”,由深度卷积组成,即在输入的每个通道上独立执行的空间卷积,然后是逐点卷积,即 1x1 卷积,将深度卷积输出的通道投影到新的通道空间上。不要将其与空间可分离卷积混淆,空间可分离卷积在图像处理社区中通常也称为“可分离卷积”。

1.4 Inception模块与深度可分离卷积的差别

  1. 操作顺序:通常实现的深度可分离卷积(例如在 TensorFlow 中)首先执行通道空间卷积,然后执行 1x1 卷积,而 Inception 首先执行 1x1 卷积
  2. 第一次操作后是否存在非线性。在 Inception 中,这两个操作都遵循 ReLU 非线性,但是深度可分离卷积通常在没有非线性的情况下实现。

位于常规 Inception 模块和深度可分离卷积之间的 Inception 模块的其他中间公式也是可能的:实际上,常规卷积和深度可分离卷积之间存在离散谱,由独立通道空间的数量参数化用于执行空间卷积的段。常规卷积(前面是 1x1 卷积)处于该范围的一个极端,对应于单段情况;深度可分离卷积对应于另一个极端,其中每个通道有一个段; Inception 模块位于两者之间,将数百个通道分为 3 或 4 个部分。这种中间模块的特性似乎尚未被探索过。

做出这些观察后,作者建议可以通过用深度可分离卷积替换 Inception 模块来改进 Inception 系列架构,即通过构建深度可分离卷积堆栈的模型。 TensorFlow 中有效的深度卷积实现使这一点变得实用。作者提出了一种基于此思想的卷积神经网络架构,其参数数量与 Inception V3 相似,并在两个大规模图像分类任务上针对 Inception V3 评估了其性能。

1.5 Xception架构

作者提出了一种完全基于深度可分离卷积层的卷积神经网络架构。可以做出以下假设:卷积神经网络特征图中跨通道相关性和空间相关性的映射可以完全解耦。因为这个假设是 Inception 架构底层假设的更强版本,所以作者将提出的架构命名为 Xception。

下图给出了网络规格的完整描述。Xception 架构有 36 个卷积层,构成网络的特征提取基础。在作者的实验评估中,将专门研究图像分类,卷积基础后面将是逻辑回归层。 也可以在逻辑回归层之前插入全连接层。 36 个卷积层被构造为 14 个模块,除了第一个和最后一个模块外,所有模块周围都有线性残差连接。
在这里插入图片描述
简而言之,Xception 架构是具有残差连接的深度可分离卷积层的线性堆栈。

1.6 实验

作者选择将 Xception 与 Inception V3 架构进行比较,因为它们的规模相似:Xception 和 Inception V3 的参数数量几乎相同,因此任何性能差距都不能归因于网络容量的差异。数据集ImageNet 数据集和JFT 数据集。

JFT 是 Google 内部的大规模图像分类数据集,由 Hinton 等人首次提出。 ,其中包含超过 3.5 亿张高分辨率图像,并用来自 17,000 个类的集合的标签进行注释。为了评估在 JFT 上训练的模型的性能,我们使用辅助数据集 FastEval14k。

FastEval14k 是一个包含 14,000 张图像的数据集,其中包含来自约 6,000 个类别的密集注释(平均每个图像 36.5 个标签)。在此数据集上,我们使用前 100 个预测的平均精度 (MAP@100) 来评估性能,并通过一个分数来衡量每个类别对 MAP@100 的贡献,并评估该类别在社交媒体图像中的常见程度(因此也很重要) 。此评估程序旨在捕获社交媒体中频繁出现的标签的表现,这对于 Google 的生产模型至关重要。

所有网络均使用 TensorFlow 框架 实现,并分别在 60 个 NVIDIA K80 GPU 上进行训练。对于ImageNet实验,作者使用数据并行和同步梯度下降来实现最佳分类性能,而对于JFT作者使用异步梯度下降来加速训练。

所有评估均使用单次输入图像和单个模型进行。 ImageNet 结果是在验证集而不是测试集上报告的(即 ILSVRC 2012 验证集的非黑名单图像)。 JFT 结果是在 3000 万次迭代(一个月的训练)后报告的,而不是在完全收敛后报告的。表 1 和表 2 以及图 6、图 7、图 8 中提供了结果。在 JFT 上,我们测试了不包含任何全连接层的网络版本和包含两个全连接层的网络版本逻辑回归层之前有 4096 个单元的层。

在这里插入图片描述
在 ImageNet 上,Xception 显示出比 Inception V3 稍好的结果。在 JFT 上,Xception 在 FastEval14k MAP@100 指标上显示出 4.3% 的相对改进。我们还注意到 Xception 优于 He 等人报告的 ImageNet 结果。对于 ResNet-50、ResNet-101 和 ResNet。
在这里插入图片描述

1.7 总结

本文展示了卷积和深度可分离卷积如何位于离散谱的两个极端,而 Inception 模块是两者之间的中间点。这一观察结果促使我们建议在神经计算机视觉架构中用深度可分离卷积替换 Inception 模块。我们基于这个想法提出了一种新颖的架构,名为 Xception,它具有与 Inception V3 类似的参数数量。与 Inception V3 相比,Xception 在 ImageNet 数据集上的分类性能提升较小,但在 JFT 数据集上的分类性能提升较大。我们预计深度可分离卷积将成为未来卷积神经网络架构设计的基石,因为它们提供与 Inception 模块类似的属性,但与常规卷积层一样易于使用。

1.8 创新点

  1. 分离空间特征学习和通道间特征学习: 深度可分离卷积将传统的卷积操作分解为两个步骤:深度卷积(Depthwise Convolution)和逐点卷积(Pointwise Convolution)。深度卷积对每个输入通道进行卷积,而逐点卷积则在通道间进行线性组合。这种分离的方式使得网络可以更有效地学习空间特征和通道特征,从而减少参数量和计算复杂度。
  2. 减少参数数量: 深度可分离卷积减少了模型的参数数量。由于深度卷积只在每个通道上进行卷积,而不是在所有通道上同时进行,因此参数量大大减少。这有助于减小模型大小,提高模型在资源有限的环境中的可用性。
  3. 计算效率提高: 分离的卷积操作减少了计算的复杂度。深度卷积的计算成本相对较低,逐点卷积的计算量也相对较小。因此,深度可分离卷积在移动设备和嵌入式系统等资源受限的环境中更加高效。
  4. 更好的泛化能力: 由于深度可分离卷积能够更有效地学习空间和通道特征,它在许多视觉任务中表现出更好的泛化能力。这种结构有助于网络更好地捕获输入数据的层次性和抽象特征。

总的来说,深度可分离卷积通过创新地分离通道特征学习和空间特征学习,以及减少参数数量和计算复杂度,提高了卷积神经网络的效率和性能。这种结构在许多现代神经网络中广泛应用,特别是在移动端和嵌入式设备上,以实现轻量级和高性能的深度学习模型。

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

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

相关文章

npm i 遇到了 npm ERR! code CERT_HAS_EXPIRED

npm i 遇到了 npm ERR! code CERT_HAS_EXPIRED 更新你的系统时间【命令 date】。确保你的计算机上的时间和时区设置正确,并且与当前时间相符。 清除你的 npm 缓存。使用 npm cache clean --force 命令清除你的 npm 缓存,关闭ssl验证,并重新运…

Linux Rootkit实验|0201 基本功能之Root后门

Linux Rootkit实验|0201 基本功能之Root后门 11 May 2017 文章目录 Linux Rootkit实验|0201 基本功能之Root后门实验说明实验环境实验过程提供 root 后门 实验总结与思考参考资料参考资料 时人不识凌云木,直待凌云始道高。 实验说明 本次实…

IDEA的properties默认编码是UTF-8但是不显示中文

问题描述 今天打开IDEA项目,发现messages_zh_CN.properties不显示中文了 但奇怪的是target下的文件就是展示的中文 而且我IDEA已经配置了编码格式是UTF-8了 使用nodepad打开源文件,也是展示编码格式是UTF-8 (打开target下的文件,…

使用PHPStudy搭建Cloudreve网盘服务

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了,各互联网大厂也纷纷加入战局&#…

怎么使用cmd命令来进行Vue脚手架的项目搭建

前言 使用vue搭建项目的时候,我们可以通过对应的cmd命令去打开脚手架,然后自己配置对应的功能插件 怎么打开 我们打开对应的cmd命令之后就开始进入对应的网站搭建 vue ui 然后我们就打开对应的项目管理器来进行配置----这里我们打开开始创建新的项目…

MySQL-----约束

目录​​​​​ 约束 一 主键约束 1-1 操作-添加单列主键 1-2 操作-添加多列主键 1-3 修改表结构添加主键 1-4 删除主键约束 二 自增长约束 2-1 指定自增长字段的初始值 2-2 删除自增列 三 非空约束 3-1 创建非空约束 3-2 删除非空约束 四 唯一约束…

sklearn 计算 tfidf 得到每个词分数

from sklearn.feature_extraction.text import TfidfVectorizer# 语料库 可以换为其它同样形式的单词 corpus [list(range(-5, 5)),list(range(-6,4)),list(range(12)),list(range(13))]# corpus [ # [Two, wrongs, don\t, make, a, right, .], # [The, pen, is, might…

asdf安装不同版本的nodejs和yarn和pnpm

安装asdf 安装nodejs nodejs版本 目前项目中常用的是14、16和18 安装插件 asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git asdf plugin-add yarn https://github.com/twuni/asdf-yarn.git可以查看获取所有的nodejs版本 asdf list all nodejs有很多找…

深入Spring MVC的工作流程

深入Spring MVC的工作流程 在Spring MVC的面试问题中,常常被询问到的一个问题。Spring MVC的程序中,HTTP请求是如何从开始到结束被处理的。为了研究这个问题,我们将需要深入学习一下Spring MVC框架的核心过程和工作流程。 1. 启动请求生命周…

Cocos XR的WebBox实现流程

1. 正常3D场景下的webview 1.1 组件角色 Cocos Creator正常3D场景下只有在UI组件才支持webview,即作为下图中的UI Nodes(Canvas Node)的子节点,和3D组件是隔离开的,不能显示在3D空间中,UI Nodes(Canvas Node)是一个平面内的矩形…

layui

基于复杂结构的自定义模版相关介绍 我这里的接口给的格式数据 我这里搜索往返时候要显示成这样的 layui.use([table,form], function(){ var table layui.table; var form layui.form;// 渲染表格 table.render({ elem: #test-table-reload,toolbar: #toolbarDemo, …

Spring Boot 中操作 Bean 的生命周期

1.InitializingBean和DisposableBean InitializingBean接口提供了afterPropertiesSet方法,用于在bean的属性设置好之后调用; DisposableBean接口提供了destroy方法,用于在bean销毁之后调用; public class TestComponent implem…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TextPicker组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之TextPicker组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、TextPicker组件 TextClock组件通过文本将当前系统时间显示在设备上。支持不…

【MySQL】——数据定义

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

蓝桥杯每日一题-----数位dp

前言 今天浅谈一下数位dp的板子,我最初接触到数位dp的时候,感觉数位dp老难了,一直不敢写,最近重新看了一些数位dp,发现没有想象中那么难,把板子搞会了,变通也会变的灵活的多! 引入…

基于Python的深度学习的身份证识别考勤系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

如何使用第三方API采集电商数据呢?

电商商家最常唠叨的就是店铺运营难做。每日多平台店铺数据统计汇总繁琐耗时,人工效率偏低,且工作内容有限。 特别是眼下“618,双十一,双十二,年底大促”将至,如何提高运营的效率和质量、保证产品及服务的良…

深度学习-基础过关

众所周知,机器学习是一门跨学科的学科,主要研究计算机如何通过学习人类的行为和思维模式,以实现某些特定的功能或目标。它涉及到概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科,使用计算机作为工具并致力于真实实时的…

大数据信用报告在线查询平台哪个好?

随着大数据技术在金融风控的运用,大数据信用越来越被人熟知,由于线下没有查询大数据信用的地方,想要查询大数据信用报告只有在线上查询,那大数据信用报告在线查询平台哪个好呢?本文贷你一起去了解市面上比较好的三个平台。 大数据…

[自动驾驶算法][从0开始轨迹预测]:三、常用的轨迹预测数据集--Argoverse v2

文章目录 1. 轨迹数据集总览2. Argoverse v2数据集2.1 传感器布局与坐标系统2.2 轨迹预测数据集1. 数据集的下载和读取2. 场景文件的数据结构:3. 地图文件的数据结构 写在前面: “工欲善其事,必先利其器”! 在深度学习中&#xff…