2021-06-23 各种经典卷积神经网络总结

2023-11-06

1、原始卷积 (Vanilla Convolution)

背景:CNNs中的卷积,也称为滤波器,是由一组具有固定窗口大小且带可学习参数(learnable paramerters)的卷积核所组成,可用于提取特征。
原理:卷积的过程是通过滑动窗口从上到下,从左到右对输入特征图进行遍历,每次遍历的结果为相应位置元素的加权求和;
特性

  • 稀疏连接(sparse connectivity)
  • 权值共享(shared weights)
  • 平移不变性(translation invariant)
  • 平移等变性(translation equivalence)

2、分组卷积 (Group convolution)

原理: 原始卷积操作中每一个输出通道都与输入的每一个通道相连接,通道之间是以稠密方式进行连接。而组卷积中输入和输出的通道会被划分为多个组,每个组的输出通道只和对应组内的输入通道相连接,而与其它组的通道无关。这种分组(split)的思想随后被绝大多数的新晋卷积所应用。
在这里插入图片描述

2.1 组卷积案例1

在这里插入图片描述

2.2 组卷积案例2——Resnext

在这里插入图片描述
在这里插入图片描述

2.3 ShuffleNet

结合了逐点组卷积(Pointwise Group Convolution, PGC)和通道混洗(channel shuffle),来实现一个高效轻量化的移动端网络设计。
在这里插入图片描述
在这里插入图片描述

3、转置卷积 (Transposed Convolution)

原理: 与常规的卷积操作不同,转置卷积是一种一对多的映射关系,即输入矩阵中的一个值映射到输出矩阵的K×K(i.e., kernel size)个值。在具体的实现当中,需要维护一个转置矩阵,这个矩阵参数是可学习的。

4、1×1卷积 (1×1 Convolution)

特性:

  • 增强特征表达能力
    1×1卷积本质上也是一个带参数的滤波器,在不改变特征图本身尺寸的情况下,能够增加网络深度。通过在卷积后通过非线性激活函数可以有效的增强网络的表达能力。
  • 升维和降维
    1×1卷积可以通过增加或减少滤波器的数量来实现升维或降维的目的。与全连接层不同,由于卷积是基于权值共享,因此能够有效的降低网络的参数量和计算量。另一方面,降低维度可以认为是通过减少冗余的特征图来降低模型中间层权重的稀疏性,从而得到一个更加紧凑的网络结构。
    -跨通道的信息交互
    类似于多层感知机,1×1卷积本质上就是多个特征图之间的线性组合。因此,通过1×1卷积操作可以轻松实现跨通道的信息交互和整合。

5、空洞卷积 (Atrous convolution)

特性:

  • 增大感受野
    空洞卷积可以在同等卷积核参数下获得更大的感受野。所以,对于需要较为全局的语义信息或类似于语音文本需要较长的序列信息依赖的任务中,都可以尝试应用空洞卷积。
  • 表征多尺度信息
    利用带有不同空洞率的卷积,还可以捕捉到多尺度的上下文语义信息。不同的空洞率代表着不同的感受野,意味着网络能够感知到不同尺寸的目标。

6、深度可分离卷积 (Depthwise Separable Convolution)

逐深度卷积
不同于原始卷积,深度卷积是一个卷积核负责一个通道,独立地在每个通道上进行空间卷积。因此,深度卷积的输出特征图数量等于输入特征图数量,无法进行有效的维度扩展。

逐点卷积
由于一个特征图仅被一个滤波器卷积,无法有效的利用不同通道在相同空间位置上的特征信息,由此加入了逐点卷积。点卷积主要是要1×1卷积构成,负责将深度卷积的输出按通道投影到一个新的特征图上。

特性

  • 降低参数量和计算量

深度可分离卷积将原始的卷积运算分为两层,一层用于滤波(深度卷积),一层用于组合(逐点卷积)。这种分解过程能极大减少模型的参数量和计算量。

  • 降低模型容量

深度可分离卷积在应用时并没有使用激活函数。此外,虽然深度可分离卷积可以显著的降低模型的计算量,但同时也会导致模型的容量显著降低,从而导致模型精度的下降。

8、空间可分离卷积 (Spatially Separable Convolution)

9、植入块 (Inception Block)

Inception Block最初提出的目的是希望能够在同一层特征图上获得不同尺度下的特征表征,增加网络宽度有利于获得更丰富的特征表示。

为什么提出Inception
提高网络最简单粗暴的方法就是提高网络的深度和宽度,即增加隐层和以及各层神经元数目。但这种简单粗暴的方法存在一些问题:

  • 会导致更大的参数空间,更容易过拟合 需要更多的计算资源 网络越深,梯度容易消失,优化困难(这时还没有提出BN时,网络的优化极其困难)

在这里插入图片描述首先看第一个结构,有四个通道,有11、33、5*5卷积核,该结构有几个特点:

  • 使用这些大小卷积核,没有什么特殊含义,主要方便对齐,只要padding = 0、1、2,就可以得到相同大小的特征图,可以顺利concat。
  • 采用大小不同的卷积核,意味着感受野的大小不同,就可以得到不同尺度的特征。
  • 采用比较大的卷积核即5*5,因为有些相关性可能隔的比较远,用大的卷积核才能学到此特征。
  • 大量的引入了1×1卷积,从而减小网络的整体规模。
    优势:特征在不同尺度上进行处理聚合,这样下一步可以从不同尺度提取特征

9.1 Inception v1

Going Deeper with Convolutions
为了进一步地压缩网络的参数量和计算量,作者在原先的Inception块中大量的引入了1×1卷积,从而减小网络的整体规模。

9.2 Inception v2

Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift
Inception v2的主要思想便是提出了Batch Normalization,通过减少内部协变量偏移有效的加速了深度网络的训练。此外,借鉴VGG-Net的思想,v2将v1中的5×5卷积用两个3×3卷积进行替换,在保证获得同等感受野的情况下,进一步的降低网络的参数量和计算量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021-06-23 各种经典卷积神经网络总结 的相关文章

随机推荐

  • mysql 游标

    who 游标是什么 游标 cursor 官方定义 是系统为用户开通的一个数据缓冲区 存放sql执行结果 每个游标区都有一个名字 用户可以通过sql语句逐一从游标中获取记录 并赋值给变量 交由主语言进一步处理 个人理解 感觉游标和指针相似 指
  • 手写函数柯里化(Curry)--原理剖析

    函数柯理化的作用 前端使用柯里化的用途主要就是简化代码结构 提高系统的维护性 一个方法 只有一个参数 强制了功能的单一性 很自然就做到了功能内聚 降低耦合 函数柯理化的优点 降低代码的重复 提高代码的适用性 在后面实现应用部分 ajax 会
  • webpack打包速度优化

    优化WebPack打包速度 在开发过程中 WebPack的打包速度是一个非常重要的考虑因素 随着项目规模的增长 打包时间也会越来越长 影响开发效率和用户体验 本文将循序渐进地介绍一些优化WebPack打包速度的方法 先分析打包瓶颈 然后逐步
  • 超分(Super-Resolution, SR )

    知乎有一篇帖子总结了几篇超分的论文 写的很好 https zhuanlan zhihu com p 25532538 utm source tuicool utm medium referral 下面针对上面没有提到的论文进行补充 6 PR
  • 数据库学习笔记(2)——workbench和SQL语言

    1 workbench简介 登录客户端的两种方法 在cmd中 只能通过sql语句控制数据库 workbench其实就是一种图形化数据库管理工具 在workbench中既可以通过sql语句控制数据库 也可以通过图形化界面控制数据库 通过wor
  • ubuntu pytorch 深度学习环境配置

    目录 一 Ubuntu20 04下用ppa源安装NVIDIA显卡驱动 1 先查询适用自己电脑型号的英伟达驱动版本 官网查选 官方 GeForce 驱动程序 NVIDIA 2 禁用默认驱动 nouveau 3 打开 软件与更新 点击 附加驱动
  • 物理磁盘的四种使用方式

    一 物理磁盘整个直接使用 把整个物理磁盘直接格式话成文件系统 然后mount 二 通过分区使用 把整个物理磁盘通过fdisk dev sdx这样分区 通过格式化各个分区来使用磁盘 三 通过逻辑卷使用 可以把整个物理磁盘作为一个物理卷pvcr
  • 电子科技大学软件工程期末复习笔记(一):概论

    目录 前言 重点一览 软件的定义 软件的特点 软件的双重作用 软件危机 软件工程的概念 软件工程的目标与原则 软件工程的一些误解 本章小结 前言 2022年底疫情彻底放开 开始自愿返乡 大面积传染开始 在校生几乎无一幸免 因为自愿返乡后只能
  • The Code is successfully generatd...使用stm32cude生成工程时报错

    找了一下午的方法 在此总结 1 路径问题 路径不能包含中文以及空格字符 如E 举例 测试 以及路径不能太深 本人未测试 不是我的情况 2 金山等即时翻译软件未关闭 论坛上看到 本人未测试 3 版本问题 本人测试通过 有的人说是jdk版本太高
  • 2019年底总结

    一年很快 又到改写总结的时候了 回顾这一年 2019年办成了很多的事情 在此借用这句 忆往昔 年少轻狂时 俱远矣 看今日 而立之年始 继拼之 表达下吧 看看2018年的计划 发现大部分自己都在不自不觉中做了 时事 经济领域 用平时的碎片时间
  • C语言快速排序,以及注意点。

    快速排序尤其适用于对大数据的排序 它的高速和高效无愧于 快速 两个字 虽然说它是 最常用 的 可对于初学者而言 用它的人却非常少 因为虽然很快 但它也是逻辑最复杂 最难理解的算法 因为快速排序要用到递归和函数调用 快速排序所采用的思想是分治
  • SpringBoot2.0.5.RELEASE 整合Activiti7启动后不创建表

    环境描述 SpringBoot版本 2 0 5 Activiti版本 7 0 0 Beta3 MySQL版本 8 011 解决办法 在数据库访问的地址上添加配置 nullCatalogMeansCurrent true 问题原因 从mysq
  • java输出相对路径

    在 Java 中 您可以使用 java io File 类来获取文件或目录的相对路径 下面是一个简单的示例 展示了如何使用 File 类获取文件或目录的相对路径 import java io File public class Main p
  • QProgressDialog进度条类

    QProgressDialog 常用API 简单的使用 QProgressDialog类是QDialog的子类 通过这个类我们可以得到一个带进度条的对话框窗口 常用API 构造函数 参数 labelText 对话框中显示的提示信息 canc
  • Centos8安装英伟达显卡驱动并通过docker部署深度学习环境

    20201107 每个人的机器和实际需要的环境都不一样 本文只是提供了在自己实验室centos8上的部署过程 部署过程中 没有什么问题 请谨慎参考本篇文章 以免浪费宝贵时间 0 引言 之前的时候 在实验室的深度学习服务器上安装深度学习的环境
  • NStepSCAN和FSCAN

    NStepSCAN 在最短寻道时间优先 SSTF 扫描算法 SCAN 和循环扫描算法 CSCAN 中 都可能出现磁臂停留在某处不动的情况 例如 有一个或几个进程对某一磁道有较高的访问频率 这些进程反复请求对某一磁道的I O操作 从而垄断了整
  • Git将其他分支合并至主分支

    主要思想 把分支代码合并到master 合给谁 就先切换到谁的分支 1 当前分支是dev 开发完成后 需要合并到master分支 先把该提交的提交 需要push的push完成后 再切换分支 否则也会告诉你要提交本地代码才可以切换分支 2 本
  • 6. JVM调优工具详解及调优实战

    JVM性能调优 1 前置启动程序 1 1 Jmap 1 1 1 Jmap查询内存信息 1 1 2 Jmap查询堆信息 1 1 3 jmap查询堆内存dump 1 2 Jstack 1 3 远程连接jvisualvm 1 4 jstack找出
  • Mongo 数据导出、导入

    1 下载 mongodb database tools windows 2 解压 打开window Powershell 或 doc命令窗口 使用命令进入解压后的文件夹 3 导出数据命令 mongodump exe h 127 0 0 1
  • 2021-06-23 各种经典卷积神经网络总结

    各种经典卷积神经网络总结 1 原始卷积 Vanilla Convolution 2 分组卷积 Group convolution 2 1 组卷积案例1 2 2 组卷积案例2 Resnext 2 3 ShuffleNet 3 转置卷积 Tra