【深度学习基础知识(一):卷积神经网络CNN基础知识】

news2024/11/20 12:36:20

@深度学习基础知识

深度学习基础知识(一):卷积神经网络CNN基础知识

卷积神经网络CNN基础知识

0、目录

1. CNN卷积神经网络的特点

2. 卷积操作基础知识

    2.1 卷积操作的概念
	2.2 卷积操作的种类
	2.3 卷积操作后特征图谱大小计算公式 

3. 池化操作基础知识

	3.1 池化操作的作用/为什么要进行池化操作?
	3.2 池化操作的种类
	3.3 池化操作后特征图谱大小计算公式	 

1、CNN卷积神经网络的特点

  • CNN的使用范围是具有局部空间相关性的数据,比如图像、自然语言、语音。
  • 局部连接(稀疏连接):可以提取局部特征
  • 权值共享:减少参数数量,降低训练难度,避免过拟合,提升模型“平移不变性”
  • 降维:通过池化或卷积stride实现
  • 多层次结构:将低层次的局部特征组合成较高层次的特征,不同层级的特征可以对应不同任务

2、卷积操作基础知识

2.1 卷积操作的概念

  • 卷积操作
    当卷积核在输入图像上扫描时,将卷积核与输入图像中对应位置的数值逐个相乘,最后汇总求和,就得到该位置的卷积结果。不断移动卷积核,就可算出各个位置的卷积结果。
  • 卷积属性
    • 卷积核(Kernel):卷积操作的感受野,直观理解就是一个滤波矩阵,普遍使用的卷积核大小为3×3、5×5等;
    • 步长(Stride):卷积核遍历特征图时每步移动的像素,如步长为1则每次移动1个像素,步长为2则每次移动2个像素(即跳过1个像素),以此类推;
    • 填充(Padding):处理特征图边界的方式,一般有两种,一种是对边界外完全不填充,只对输入像素执行卷积操作,这样会使输出特征图的尺寸小于输入特征图尺寸;另一种是对边界外进行填充(一般填充为0),再执行卷积操作,这样可使输出特征图的尺寸与输入特征图的尺寸一致;
    • 通道(Channel):卷积层的通道数(层数)
  • 卷积操作示意图
    如下图所示,一个卷积核(kernel)为3×3、步长(stride)为1、填充(padding)为1的二维卷积过程:
    在这里插入图片描述
  • 卷积操作计算示意图
    如下图所示,一个33大小的卷积核(矩阵)正在一个55大小的图像(矩阵)进行扫描,根据公式:y=wx进行叠加即可:
    在这里插入图片描述

2.2 卷积操作的种类

  1. 二维卷积(单通道卷积版本)
  • 2D Convolution: the single channel version
  • 只有一个通道的卷积
  • 如下图是一个卷积核(kernel)为3×3、步长(stride)为1、填充(padding)为0的卷积
  1. 二维卷积(多通道版本)
  • 2D Convolution: the multi-channel version

  • 拥有多个通道的卷积,例如处理彩色图像时,分别对R, G, B这3个层处理的3通道卷积,如下图:
    在这里插入图片描述

  • 再将三个通道的卷积结果进行合并(一般采用元素相加),得到卷积后的结果,如下图:

在这里插入图片描述

  1. 三维卷积3D Convolution
  • 卷积有三个维度(高度、宽度、通道),沿着输入图像的3个方向进行滑动,最后输出三维的结果
  1. 1x1卷积
  • 当卷积核尺寸为1x1时的卷积,也即卷积核变成只有一个数字。
  • 1x1卷积的作用在于能有效地减少维度,降低计算的复杂度。
  1. 反卷积 / 转置卷积
  • Deconvolution / Transposed Convolution)
  • 卷积是对输入图像提取出特征(可能尺寸会变小),而所谓的“反卷积”便是进行相反的操作。但这里说是“反卷积”并不严谨,因为并不会完全还原到跟输入图像一样,一般是还原后的尺寸与输入图像一致,主要用于向上采样。
  • 从数学计算上看,“反卷积”相当于是将卷积核转换为稀疏矩阵后进行转置计算,因此,也被称为“转置卷积”
  • 如下图,在2x2的输入图像上应用步长为1、边界全0填充的3x3卷积核,进行转置卷积(反卷积)计算,向上采样后输出的图像大小为4x4。

在这里插入图片描述
6. 空洞卷积(膨胀卷积)

  • Dilated Convolution / Atrous Convolution
  • 为扩大感受野,在卷积核里面的元素之间插入空格来“膨胀”内核,形成“空洞卷积”(或称膨胀卷积),并用膨胀率参数L表示要扩大内核的范围,即在内核元素之间插入L-1个空格。
  • 当L=1时,则内核元素之间没有插入空格,变为标准卷积。 如下图为膨胀率L=2的空洞卷积:
    在这里插入图片描述
  1. 空间可分离卷积(Spatially Separable Convolutions)
  • 空间可分离卷积是将卷积核分解为两项独立的核分别进行操作。一个3x3的卷积核分解如下图:
    在这里插入图片描述
  • 分解后的卷积计算过程如下图,先用3x1的卷积核作横向扫描计算,再用1x3的卷积核作纵向扫描计算,最后得到结果。采用可分离卷积的计算量比标准卷积要少。
    在这里插入图片描述
  1. 深度可分离卷积(Depthwise Separable Convolutions)
  • 深度可分离卷积的方法有所不同。正常卷积核是对3个通道同时做卷积。也就是说,3个通道,在一次卷积后,输出一个数。
  • 深度可分离卷积分为两步:
    (1)用三个卷积对三个通道分别做卷积,这样在一次卷积后,输出3个数。
    (2)这输出的三个数,再通过一个1x1x3的卷积核(pointwise核),得到一个数。所以深度可分离卷积其实是通过两次卷积实现的。
    第一步,对三个通道分别做卷积,输出三个通道的属性:
    在这里插入图片描述

具体运算过程如下:
在这里插入图片描述

第二步,用卷积核1x1x3对三个通道再次做卷积,这个时候的输出就和正常卷积一样,是8x8x1:
在这里插入图片描述

  • 这步就是正常的卷积过程,只是卷积核大小为(3x1x1),一个卷积核得到一个特征图;8x8x3 * 1x1x3x1 => 8x8x1。

  • 深度可分离与普通卷积神经网络的区别

    添加了一个1*1的卷积核
    如果仅仅是提取一个属性,深度可分离卷积的方法,不如正常卷积
    随着要提取的属性越来越多,深度可分离卷积就能够节省更多的参数
    
  • 计算量比较

    默认输入图像大小为D*D
    默认卷积核大小为K*K
    M:输入通道数,N:输出通道数,
    普通卷积 = K * K * M * N * D * D 
    深度可分离卷积 = K *K * M * D * D + M * N * D * D
    优化比例 = (K *K * M * D * D + M * N * D * D)/ (K * K * M * N * D * D)=1/N+1/(K * K)
    
    
  • 总结

    ==========
    DSC作为普通卷积的一种替代品,它的最大优点是计算效率非常高。
    因此使用DSC构建轻量级模型是当下非常常见的做法。
    不过DSC的这种高效性是以低精度作为代价的。
    ===========
    

2.3 卷积操作后特征图谱大小计算公式

1.普通卷积

经过某层卷积操作后的特征图大小计算方式:

 ====
 h1代表输入图像的高度,w1代表输入图像的宽度,k代表卷积核大小,s代表步长
 ====
 h2、w2分别代表输出的特征图像高度和宽度
 ====
 h2 = (h1-k+2padding)/s + 1 
 w2 = (w1-k+2padding)/s + 1 
2.空洞卷积

空洞卷积的等效卷积核大小

h1代表输入图像的高度,k代表卷积核大小,s代表步长,d为diarate参数
h2代表输出的特征图像高度
=====
h2=1+[h1-(k*d-1)+2padding]/s
  • 注意:卷积(除不尽)向下取整,池化(除不尽)向上取整。
3. 常规卷积和深度可分离卷积的参数量
普通卷积:
	3x3x3x4=108
	3x3是卷积核尺寸,3是输入图片通道数目,4是输出卷积核的个数。
====================
深度可分离卷积:
	DW:3x3x3x1=27
		这里卷积核个数其实只设置为1。会形成3张feature map
	PW:1x1x3x4=12
		1x1为卷积核的尺寸,3为上一层feature map的数量,4为最终需要的维度。其实这里我们也得到了4维的feature map。
total: 27+12=39

明显可以看到,深度可分离卷积计算量比普通卷积小很多,只有其近三分之一的计算量。

3. 池化操作基础知识

3.1 池化操作的作用/为什么要进行池化操作?

  • 池化层大大降低了网络模型参数和计算成本,也在一定程度上降低了网络过拟合的风险。概括来说,池化层主要有以下4点作用:

    1.增大网络感受野
    2.抑制噪声,降低信息冗余
    3.降低模型计算量,降低网络优化难度,防止网络过拟合
    4.使模型对输入图像中的特征位置变化更加鲁棒
    

3.2 池化操作的种类

1. Max Pooling(最大池化)

  • 是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。
  • 对于最大池化操作,只选择每个矩形区域中的最大值进入下一层,而其他元素将不会进入下一层。所以最大池化提取特征图中响应最强烈的部分进入下一层,这种方式摒弃了网络中大量的冗余信息,使得网络更容易被优化。
  • 最大池化也常常丢失了一些特征图中的细节信息,所以最大池化更多保留些图像的纹理信息

2. Average Pooling(平均池化)

  • 将输入的图像划分为若干个矩形区域,对每个子区域输出所有元素的平均值。
  • 平均池化取每个矩形区域中的平均值,可以提取特征图中所有特征的信息进入下一层,而不像最大池化只保留值最大的特征,所以平均池化可以更多保留些图像的背景信息

3.Global Average Pooling(全局平均池化)

  • 作用
    在卷积神经网络训练初期,卷积层通过池化层后一般要接多个全连接层进行降维,最后再Softmax分类,这种做法使得全连接层参数很多,降低了网络训练速度,且容易出现过拟合的情况。在这种背景下,M Lin等人提出使用全局平均池化Global Average Pooling来取代最后的全连接层。用很小的计算代价实现了降维,更重要的是GAP极大减少了网络参数(CNN网络中全连接层占据了很大的参数)。

  • 全局平均池化是一种特殊的平均池化,只不过它不划分若干矩形区域,而是将整个特征图中所有的元素取平均输出到下一层。

  • 作为全连接层的替代操作,GAP对整个网络在结构上做正则化防止过拟合,直接剔除了全连接层中黑箱的特征,直接赋予了每个channel实际的类别意义。

  • 使用GAP代替全连接层,可以实现任意图像大小的输入,而GAP对整个特征图求平均值,也可以用来提取全局上下文信息,全局信息作为指导进一步增强网络性能。

    论文地址: https://arxiv.org/pdf/1312.4400.pdf%20http://arxiv.org/abs/1312.4400
    代码链接: https://worksheets.codalab.org/worksheets/0x7b8f6fbc6b5c49c18ac7ca94aafaa1a7
    

4. Mix Pooling(混合池化)

  • 为了提高训练较大CNN模型的正则化性能,受Dropout的启发,Dingjun Yu等人提出了一种随机池化Mix Pooling的方法,随机池化用随机过程代替了常规的确定性池化操作,在模型训练期间随机采用了最大池化和平均池化方法,并在一定程度上有助于防止网络过拟合现象。

  • 其中,是0或1的随机值,表示选择使用最大池化或平均池化,换句话说,混合池化以随机方式改变了池调节的规则,这将在一定程度上解决最大池和平均池所遇到的问题。

  • 混合池化优于传统的最大池化和平均池化方法,并可以解决过拟合问题来提高分类精度

  • 此外该方法所需要的计算开销可忽略不计,而无需任何超参数进行调整,可被广泛运用于CNN。

3.3 池化操作后特征图谱大小计算公式

 ====
 h1代表输入图像的高度,w1代表输入图像的宽度,k代表卷积核大小,s代表步长
 ====
 h2、w2分别代表输出的特征图像高度和宽度
 ====
 h2 = (h1-k) /s + 1 
 w2 = (w1-k) /s + 1 

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

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

相关文章

定制化推送+精细化运营,Mobpush助力《迷你世界》用户留存率提升23%

随着智能设备的市场下沉,手游市场迎来了爆发式增长,《迷你世界》作为一款于2015年推出的手游,一经问世就饱受欢迎。上线短短三年,迷你世界在应用商店下载量已经高达2亿次,周下载量两千万,稳居第一名&#x…

只会Python,怎么用PC控制无人机自动飞行?

PC-SDK是阿木实验室 (AMOVLAB) 为了简化开源飞控的控制协议MAVLink,优化和维护的一个基于PC电脑运行MAVSDK(支持Windows和Ubuntu)的Python SDK库。 相对于传统的无人机控制开发,开发者无需掌握C/C语言和ROS等相关知识,只要学会Python编程及懂…

百度最强大模型发布,百度网盘和文库的实测体验

🍁 展望:若本篇讲解内容帮助到您,请帮忙点个赞吧, 您的支持是我继续写作的最大动力. 关注我, 带您了解更多 AI 资讯和 AI 小技巧. 引言 2023年百度世界大会在10月17日的春光中于北京的首钢园精彩召开。这次大会的核心主题——“生成未来 PRO…

汽车屏类产品之CMS:流媒体后视镜Camera Monitoring System (CMS)

前言: CMS,有叫电子侧视镜,虚拟倒车镜,电子倒车镜, 电子取代镜等,ISO 国际标准组织称其为摄像头监控系统。电子后视镜由“摄像头+屏幕”组成,汽车外后视镜经历了光学镜面从平面镜到曲面镜的迭代进步,CMS也实现从商用车到乘用车的过渡。显示模式为外部摄像头采集图像,…

java的注解接口Retention

Java的注解接口java.lang.annotation.Retention定义注解保留多长时间。如果在注解接口的声明上没有Retention注解,那么默认的保留策略是RetentionPolicy.CLASS。 Retention只有一个元素value,类型是RetentionPolicy。 RetentionPolicy是一个枚举类型&am…

基于典型行业废水水质与处理工艺特点的吸附树脂产品—CH-87靶向除氟专用树脂

在工业上,含氟矿石开采、金属冶炼、铝加工、炼焦、玻璃、电子、电镀、化肥、农药、锂电池等行业排放的废水中常含有高浓度的氟化物。 所以,国家对于含氟废水的监测和排放也是出台了严格的制度标准。 含氟废水主要来源于氟化工、多晶硅、有色金属冶炼、…

android系统签名 V1,V2,V3

android系统签名 V1&#xff0c;V2&#xff0c;V3 7.1 之前V1 签名 文件路径&#xff08;build\target\product\security&#xff09; apk添加系统权限 <manifest xmlns:android"http://schemas.android.com/apk/res/android" android:sharedUserId"…

操作系统:进程的控制和通信(Windows2000)

文章目录 进程的控制和通信&#xff08;Windows2000&#xff09;一、实验目的二、实验要求与内容、过程与结果 进程的控制和通信&#xff08;Windows2000&#xff09; 一、实验目的 通过对Windows 2000编程&#xff0c;进一步熟悉操作系统的基本概念&#xff0c;并能较好地理…

百度智能云推出,国内首个大模型全链路生态支持体系

在10月17日举行的百度世界2023上&#xff0c;百度智能云宣布&#xff0c;百度智能云千帆大模型服务平台已服务17000多家客户&#xff0c;覆盖近500个场景。 同时&#xff0c;新的企业和开发者还正在不断地涌入千帆&#xff0c;大模型调用量高速攀升。平台上既有年龄仅14岁的小…

相似性搜索:第 6 部分--LSH 森林的随机投影

一、说明 相似性搜索是一个问题&#xff0c;给定一个查询&#xff0c;目标是在所有数据库文档中找到与其最相似的文档。 在数据科学中&#xff0c;相似性搜索经常出现在 NLP 领域、搜索引擎或推荐系统中&#xff0c;其中需要检索最相关的文档或项目以进行查询。有多种不同的方法…

RTOS(5)创建任务函数详解

动态内存使用 面向对象的编程思想 我们想要使用应该结构体&#xff0c;但又不想了解其内部时&#xff0c;一般使用句柄&#xff08;handle&#xff09;&#xff1b;句柄是指针指向结构体&#xff0c;只是同一个结构体类型的另外一种名称而已&#xff1b; 任务&#xff08;tas…

如何学习渗透测试?怎样才能入行?

学习实践&#xff0c;目前只有这路子&#xff0c;自学9月&#xff0c;成功入圈。下面说一下自己的学习路径&#xff0c;都是摸爬滚打&#xff0c;交了N份钱才学会的。 切记一定要先了解整个渗透测试的流程&#xff0c;记住整个流程口诀。 信息收集&打点&#xff0c;漏洞挖…

c语言中数组的四种创建方式和应用场景

数组是语言中常用的一种结构&#xff0c;在c语言中可以使用多种方式来创建数组&#xff0c;每种语法对应于不同的应用场景。 1、在声明数组时指定数组的长度 语法 <类型> <变量>[<长度>]; 当填充数组的内容为运行时动态加入时可以使用此语法&#xff0c;…

高压放大器在无线电能中应用有哪些

高压放大器是一种用于放大电信号的放大器&#xff0c;可以将输入的低电压信号放大到更高的输出电压水平。在无线电通信和其他相关领域中&#xff0c;高压放大器具有广泛的应用。本文将详细介绍高压放大器在无线电能中的应用。 无线电发射&#xff1a;高压放大器在无线电发射中起…

基于Delta Lake的Upserts数据湖方案

导读 基于HDFS的传统数据存储方案由于HDFS等存储平台的限制&#xff0c;只能增加文件不能修改文件中的内容。想要实现某条记录的变更&#xff0c;就需要读取对应的文件并进行重写&#xff0c;效率极低&#xff0c;而且容易引起数据不一致和冲突。Delta Lake是基于Apache Spark…

微前端四:qiankun在开发中遇到的问题

在qiankun开发中会遇到很多问题&#xff0c;上一篇微前端三&#xff1a;qiankun 协作开发和上线部署其实也是在解决一些经常遇到的问题&#xff0c;下面的两点也算是比较经典的了 1、子应用图片路径问题 2、基座是Vue2.0 element ui 配合 子应用 Vue3.0 element plus 导致的样…

idea Java代码格式化规范

引入 最近在公司开发中&#xff0c;遇到了一点小问题&#xff0c;组内各同事的格式化规范不一致。一来导致代码样式并不统一&#xff0c;二来有时候合并代码会出现冲突&#xff0c;因此做一套统一代码格式化规范很有必要。 基础知识 在idea中&#xff0c;可以通过快捷键Ctrl…

数字孪生技术:煤矿运输的未来革命

煤矿是我国能源工业的重要支柱&#xff0c;然而&#xff0c;煤矿运输过程中一直存在着诸多问题&#xff0c;如安全隐患、能源浪费、效率低下等&#xff0c;这不仅对煤矿行业的可持续发展构成威胁&#xff0c;也对环境造成负面影响。因此&#xff0c;数字孪生技术应运而生&#…

2023年中国有创呼吸机产量、需求量及行业市场规模分析[图]

有创呼吸机主要是通过气管插管或者气管切开&#xff0c;然后通过管道连接在呼吸机上&#xff0c;为患者提供呼吸支持&#xff0c;主要针对的患者是昏迷的&#xff0c;无自主呼吸或不能耐受无创呼吸机的患者。 有创呼吸机是高端医疗装备&#xff0c;设计、生产和临床验证都必须经…

element-ui中表格树类型数据的显示

项目场景&#xff1a; 1&#xff1a;非懒加载的情况 1&#xff1a;效果展示 2&#xff1a;问题描述以及解决 1&#xff1a;图片展示 2&#xff1a;html <-- default-expand-all 代表默认展开 如果不展开删除就行 --> <el-tableref"refsTable"v-loadin…