卷积神经网络(CNN)基础知识

news2024/11/16 17:33:11

文章目录

  • CNN的组成层
  • 卷积层
    • 卷积运算
    • 卷积的变种
      • 分组卷积
      • 转置卷积
      • 空洞卷积
      • 可变形卷积
    • 卷积层的输出尺寸和参数量

CNN的组成层

在卷积神经⽹络中,⼀般包含5种类型的⽹络层次结构:输入层、卷积层、激活层、池化层和输出层。

  1. 输入层(input layer)
    输⼊层通常是输⼊卷积神经⽹络的原始数据或经过预处理的数据。以图像分类任务为例,输⼊层输⼊的图像⼀般包含RGB三个通道,是⼀个由长宽分别为H和W组成的3维像素值矩阵HW3 。
  2. 卷积层(convolution layer)
    卷积层通常⽤作对输入层输入数据进行特征提取,通过卷积核矩阵对原始数据中隐含关联性的⼀种抽象。卷积操作原理上其实是对两张像素矩阵进⾏点乘求和的数学操作,其中⼀个矩阵为输⼊的数据矩阵,另⼀个矩阵则为卷积核(滤波器或特征矩阵),求得的结果表⽰为原始图像中提取的特定局部特征。
  3. 激活层(activation layer)
    激活层负责对卷积层抽取的特征进⾏激活,由于卷积操作是由输⼊矩阵与卷积核矩阵进⾏相差的线性变化关系,需要激活层对其进⾏⾮线性的映射。激活层主要由激活函数组成,即在卷积层输出结果的基础上嵌套⼀个⾮线性函数,让输出的特征图具有⾮线性关系。【神经网络中的激活函数:https://wang11.blog.csdn.net/article/details/129189757
  4. 池化层(downsampling layer)
    池化层⼜称为降采样层,作⽤是对感受域内的特征进⾏筛选,提取区域内最具代表性的特征,能够有效地降低输出特征尺度,进⽽减少模型所需要的参数量。
  5. 全连接层(full connected layer)
    全连接层负责对卷积神经⽹络学习提取到的特征进⾏汇总,将多维的特征输⼊映射为⼆维的特征输出。

卷积层

卷积运算

卷积层是通过特定数目的卷积核对输入的多通道特征图进行扫描和运算,从而得到多个拥有更高层语义信息的输出特征图。
在这里插入图片描述

深度学习中网络模型的卷积运算动图解析:https://download.csdn.net/download/weixin_43598687/70726671?spm=1001.2014.3001.5503

卷积的变种

分组卷积

在普通的卷积操作中,一个卷积核对应输出特征图的一个通道,而每个卷积核又会作用在输入特征图的所有通道上(即卷积核的通道数等于输入特征图的通道数) ;因此最终输出特征图的每个通道都与输入特征图的所有通道相连接。也就是说,普通的卷积操作,在“通道”这个维度上其实是“全连接”的。
在这里插入图片描述

所谓分组卷积,其实就是将输入通道和输出通道都划分为同样的组数,然后仅让处于相同组号的输入通道和输出通道相互进行“ 全连接”。如果记g为输入1输出通道所分的组数,则分组卷积能够将卷积操作的参数量和计算量都降低为普通卷积的1/g。
在这里插入图片描述

分组卷积最初是在AlexNet网络中引入的,为解决单个GPU无法处理含有较大计算量和存储需求的卷积层的问题,就采用分组卷积将计算和存储分配到多个GPU上。

转置卷积

先对原始特征矩阵进⾏填充使其维度扩⼤到适配卷积⽬标输出维度,然后进⾏普通的卷积操作的⼀个过程,其输⼊到输出的维度变换关系恰好与普通卷积的变换关系相反,但这个变换并不是真正的逆变换操作,通常称为转置卷积⽽不是反卷积。

在这里插入图片描述
普通卷积主要用来做特征提取,倾向于压缩特征图尺寸;而转置卷积用于对特征图进行扩张或上采样。 主要应用场景有:

  • 语义分割/实例分割等任务:由于需要提取输入图像的高层语义信息,网络的特征图尺寸一般会先缩小,进行聚合:此外,这类任务一般需要输出与原始图像大小一致的像素级分割结果,因而需要扩张前面得到的具有较高语义信息的特征图,这就用到了转置卷积。
  • 一些物体检测、关键点检测任务,需要输出与源图像大小一致的热图。
  • 图像的自编码器、变分自编码器、 生成式对抗网络等。

空洞卷积

空洞卷积就是在标准的卷积核中注入“空洞”,以增加卷积核的感受野。

空洞卷积引入扩张率来指定相邻采样点之间的间隔:扩张率为r的空洞卷积,卷积上相邻数据点之间有r-1个空洞。特别的,扩张率为1的空洞卷积实际上就是普通卷积。
在这里插入图片描述
空洞卷积利用空洞结构扩大了卷积核尺寸,不经过下采样操作即可增大感受野,同时还能保留输入数据的内部结构。

可变形卷积

普通的卷积操作是在固定的、规则的网格点上进行数据采样,这就束缚了网络的感受野形状,限制了网络对几何形变的适应能力。为克服这个限制,可变形卷积在卷积核的每个采样点上添加一个可学习的偏移量,让采样点不再局限于规则的网格点。
在这里插入图片描述
可变形卷积让网络具有了学习空间几何形变的能力,即可变形卷积引入了一个平行分支来端到端地学习卷积核采样点的位置偏移量。该平行分支先根据输入特征图计算出采样点的偏移量,然后再在输入特征图上采样对应的点进行卷积运算。这种结构让可变形卷积的采样点能根据当前图像的内容进行自适应调整。
在这里插入图片描述

卷积层的输出尺寸和参数量

假设一个卷积层的输入特征图的尺寸为li,卷积核大小为k,步长为s,填充为p,则输出特征图的尺寸为:(l + 2p - k)/ s + 1。

卷积层的参数量,主要取决于每个卷积核的参数量以及卷积核的个数,设输入输出的通道数分别为ci和co,卷积核为kw和kh,则参数总量为:cikwkhco

怎样才能减少卷积层参数量?

  1. 使用堆叠小卷积代替大卷积
  2. 添加1X1的卷积操作
  3. 在卷积层之前使⽤池化操作:池化可以降低卷积层的输⼊特征维度

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

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

相关文章

Android Audio HAL 服务

在 Android 系统中,Audio HAL 服务用于管理对音频硬件的访问,AudioFlinger 通过 Audio HAL 服务访问音频硬件。这里以 Android Automotive (AAOS) 版模拟器为例,来看 Audio HAL 服务的设计、实现和访问,代码分析基于 android-12.1…

【JavaSE】数组的定义和使用(下)

数组的定义和使用(下)4. 数组练习4.1 模拟实现toString4.2 数组拷贝4.3 比较两个数组是否相同4.4 填充数组4.3 求数组中元素的平均值4.4 查找数组中指定元素(顺序查找)4.5 查找数组中指定元素(二分查找)4.6…

力扣-树节点

大家好,我是空空star,本篇带大家了解一道中等的力扣sql练习题。 文章目录前言一、题目:608. 树节点二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总结前言 …

基于nvidia xavier智能车辆自动驾驶域控制器设计与实现-百度Apollo架构(二)

智能车辆操作系统 智能车辆操作系统是智能车辆系统的重要组成部分。现代汽车软件组件通常首 先由不同的供应商开发,然后在有限的资源下由制造商进行集成[42]。智能车辆操作 系统需要采用模块化和分层化设计思想来兼容传感器、分布式通信和自动驾驶通用 框架等模块&a…

适当的合同管理有什么积极影响?若管理不善有什么后果?

合同管理将决定合同是主要的风险因素还是业务增长的工具。事实是,如何处理合同会影响企业的底线。据研究显示,糟糕的合同管理使企业每年损失超过9%的收入。实施合同管理最佳实践将帮助企业提高合同签约效率。 什么是合同管理? 合同管理是对合…

玩转CodeQLpy之用友GRP-U8漏洞挖掘

0x01 前言CodeQLpy是作者使用python3实现的基于CodeQL的java代码审计工具,github地址https://github.com/webraybtl/CodeQLpy。通过CodeQLpy可以辅助代码审计人员快速定位代码中的问题,目前支持对SprintBoot的jar包,SpringMVC的war包&#xf…

初探git——版本控制工具git实用教程

文章目录前言基本配置基本操作1.初始化2.查看修改状态(status)3.添加工作区到暂存区4.提交暂存区到本地仓库5.查看提交日志6.版本回退7.添加文件至忽略列表分支1.基本命令2.分支冲突git远程仓库1.创建远程仓库2.配置公钥3.操作远程仓库idea配置git前言 Git是目前世界上最先进的…

九龙证券|业绩增长态势向好 沪市数字产业公司活力迸发

3月8日晚间,中国联通发表年报并举行成绩说明会,年报显现,公司2022年完成经营收入(兼并报表)3549.44亿元,同比增加8.30%;归属于母公司股东净利润72.99亿元,同比增加15.80%&#xff0c…

【计算机视觉】Zero-shot, One-shot和Few-shot的理解

机器学习任务按照对 样本量 的需求可以分为:传统监督式学习、Few-shot Learning、One-shot Learning、Zero-shot Learning。 文章目录一、传统监督式学习二、Zero-shot learning (零样本学习,简称ZSL)三、Few-shot learning3.1 什…

【SpringMVC】 一文掌握 》》》 @RequestMapping注解

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ RequestMapping注解一、SpringMVC环境准备1.相…

阿里云服务器使用教程:CentOS 7 安装JDK及Tomcat(以jdk1.8、tomcat9.0.37为例)

目录 1、下载JDK及Tomcat的安装包并上传至服务器 2、安装JDK 3、安装Tomcat 4、Tomcat启动后无法打开Tomcat首页的原因 1、下载JDK及Tomcat的安装包并上传至服务器 (1)下载JDK1.8版本压缩包 官网:Java Downloads | Oracle &#xff08…

C++回顾(十七)—— 类型转换

17.1 static_cast(expr) static_cast强制类型转换 用于基本类型间的转换,但不能用于基本类型指针之间的转换 用于有继承关系类对象之间的转换和类指针之间的转换 static_cast是在编译期间转换的,无法在运行时检测类型 所以类类型之间的转换有可能存在风…

002 第一季SpringBoot2核心技术-核心功能:

三、核心技术之- ->核心功能 1. 配置文件 1.1 文件类型 1.1.1 properties 同以前的properties用法 优先级高于yml的方式。 1.1.2 yaml 1) 简介 YAML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时…

ArcGIS:栅格计算器的运算符和函数详解

01 栅格计算器在哪?02 运算符说明栅格计算器的表达式书写与Python语法一致(由于其为解释型语言并且语言简洁优美,因此简单上手),这里主要简单说明各个运算符即可使用栅格计算器构建地图代数表达式以输出要求的栅格图像…

给力|这是一个专业的开源快速开发框架!

在低代码开发市场,专业的开源快速开发框架可以助力企业提升办公协作效率,实现提质增效的办公自动化的发展目标。 流辰信息低代码技术开发平台服务商,拥有丰富的技术经验和案例合作经验,针对不同的客户需求,提供个性化、…

Docker-数据卷之Dockerfile

dockerfile相当于一个脚本通过该脚本可以生成一个自定义的镜像Dockerfile命令:注意:Dockerfile中的指令必须都是大写#基础镜像,一切从这儿开始构建 FROM #镜像是谁写的,姓名邮箱 MAINTAINER #镜像构建时候需要运行的命令 RUN #步骤&#xff1…

Nginx 文件名逻辑漏洞(CVE-2013-4547)

注意:仅用于技术讨论,切勿用于其他用途,一切后果与本人无关!!! 个人博客地址:HJW个人博客 理论基础: 建议提前学习nginx的原理:Nginx服务漏洞详解 - 知乎 漏洞原理&a…

【项目实战】如何使用Postman调用WebSocket程序

一、背景说明 项目中需要使用WebSocket进行通信,开发完了WebSocket接口,总得测试吧,以下是Postman调用WebSocket程序的方法。 二、注意事项 2.1 为啥选Postman? 最近都在用ApiFox做接口调用,但是目前版本的ApiFox&…

新库上线 | CnOpenData注册会计师及事务所数据

注册会计师及事务所数据 一、数据简介 注册会计师是指取得注册会计师证书并在会计师事务所执业的人员,从事审计、咨询、税务等相关业务。事务所是指依法在中国境内设立,由中国公民组成,具有独立法人资格,接受投资者和其他利害关系…

Python之webmagic爬虫优点与使用

一、webmagic的优点它更偏向于java的语法,对于熟悉java的工程师来说学习成本较低提供多种选择器,如css选择器、xpath、正则等有一个模块pipeline:可通过简单地配置,可以将爬虫抽取到的信息,持久化到文件、数据库等。二…