卷积神经网络入门

1.卷积神经网络基本结构结构

卷积神经网络采用类似于动物视觉皮层组织中的神经元的连接模式,是一类包含卷积神经网络且具有深度结构的前馈神经网络。其基本结构如图2-1所示,大致包括:卷积层,激活函数,池化层,全连接层,输出层。

                                                (图1-1  传统神经网络结构)

输入层:输出尺寸为W1*H1*3(3表示RGB图像对应通道),其作用是作为卷积神经网络的原始输入,一般是原始或预处理后的像素矩阵。

卷积层:输出尺寸为W1*H1*K(K表示卷积层中卷积核(滤波器)的个数),用于实现参数共享,局部连接,利用平移不变性从全局特征图提取局部特征。

激活层:输出尺寸为W1*H1*K,用于将卷积层的输出结果进行非线性映射

池化层:输出尺寸为W2*H2*K(W2*H2为池化特征图的尺寸,在全局池化中对应为1*1),池化层可用于进一步筛选特征,可以有效减少后续网络所需要的参数量,在降低数据维度的同时防止过拟合。

全连接层:输出尺寸为(W2*H2*K)*C (W2*H2*K是将多维特征压缩到一维之后的大小,C对应图像类别个数),将多维特征展平为二维特征,通常低维度对应任务的学习目标。

2.专业名词

在连接卷积神经网络结构之前我们应该先了解以下几个概念“

①特征图(feature map ):即中间激活层的输出,每个卷积层的输出都是该层的特征图,他们可以被进一步处理和传递到后续的层中。特征图的大小和数量取决于卷积核的大小和数量,以及卷积的步长和填充方式等参数。又名通道(channel)【强调输入输出时就叫通道,强调图片经过神经网络运算后发现的特征就叫特征图】

在输入层中,如果输入为灰度图像,则为单通道,如果为彩色图片则为RGB图像则为三通道(红绿蓝)

【灰色图像像素值取值在0~255之间,因为灰度图像使用一个字节进行存储,1字节=8Bit, 2^8=255,所以可以表示0~255的值。】

②感受野(receptive field):这一概念来自生物神经科学,是指感觉系统中任一神经元,其所受到的感受器神经元的支配范围。在深度学习中指的是卷积神经网络每一层输出的特征图(feature map)上的像素点映射回输入图像上的区域大小。(在深度学习中,图像的输入常常以像素值的二维数组的方式存在,而网络不能一次处理整张图片,因此只能一次处理整张图的一部分,而每次处理的数据区域即为感受野)

感受野的计算:

感受野的大小取决于网络的结构以及每层的卷积核大小和步幅

在一些简单的网络结构中,可使用下列公式进行计算感受野:

其中Ri表示第i层的感受野,Ki是第i层的卷积核的大小,Fi-1是第i-1层的步幅,R0是输入图象的初始感受野。

每一层的感受野都是由前一层传递而来,它随着网络的深度逐渐增大,这也是卷积神经网络能够有效捕捉输入图像中不同层次特征的原因之一。

③权值共享:卷积神经网络里,提取图像特征等操作时,是由卷积核(本质是一个二维矩阵)实现的。给定一张照片,用一个卷积核去对其进行扫描,此时,卷积核中的数就叫权重,这张图片每个位置都是被同样的卷积核扫描的,所以权重是一样的,也就是共享

④过滤器(卷积核):卷积核也称过滤器,每个卷积核具有长,宽,深(通道)三个维度,在进行编程时,卷积核的长宽是由人为指定的,卷积核尺寸一般为3*3,5*5等奇数,卷积核的深度与当前图像深度相同(例如,输入彩色图像则其通道数即深度为3,此时卷积核的深度也为3)。

  如果卷积核的深度与输入图像的通道数不匹配,就无法进行逐元素相乘,因为尺寸不匹配。匹配深度确保了每个通道之间的逐元素相乘是有意义的,从而使网络能够学习在不同通道上的特征表示

【注意区分:卷积核的深度和卷积网络的层数:】

  1. 卷积核的深度: 卷积核的深度指的是卷积核在每个位置上与输入数据进行卷积时,涉及的通道数。如果输入数据是三维的,比如一个彩色图像,那么卷积核的深度必须与输入数据的通道数相匹配,以确保逐元素相乘的操作是有效的。

  2. 卷积网络的层数: 卷积神经网络由多个层组成,每个层可以包括卷积层、池化层、全连接层等。层数表示网络的深度,即网络中层的数量。每一层可能包含多个卷积核,每个卷积核的深度是独立的,但是所有卷积核在某一位置的深度都必须与上一层的输出的通道数相匹配。

因此,卷积核的深度是指卷积操作中涉及的通道数,而卷积网络的层数表示整个网络的深度,由多个层堆叠而成。在CNN中,网络的深度通常是通过不同类型的层的叠加来实现的,而不是通过增加单个卷积核的深度。

3.卷积操作

在信号处理领域,卷积是两个变量(其中一个变量经过翻转、位移)在某范围内相乘后求和的结果。

                                                    

而在深度学习中卷积概念与之相似,可以理解为f(t)是图像像素值,而g(x-t)则是卷积核,它规定如何影响图像(选择或对其当前像素值)从而起到筛选图像特征的作用

卷积操作实现过程如下图,卷积核(过滤器,filter)以一定的步长在输入图像上进行滑动。每一步都与对应元素相乘后求和(下图中先对应相乘再求和的过程:1*1+1*0+1*1+0*0+1*1+1*0+0*1+0*0+1*1=4

4.池化操作

  池化操作用来降低卷积神经网络的特征图维度,在卷积神经网络中,池化操作通常紧跟在卷积操作之后,用于降低特征图的空间大小。

  池化操作的基本思想是将特征图划分为若干个子区域(一般为矩形),并对每个子区域进行统计汇总。池化操作的方式可以有很多种,比如最大池化(Max Pooling)、平均池化(Average Pooling)等。其中,最大池化操作会选取每个子区域内的最大值作为输出,而平均池化操作则会计算每个子区域内的平均值作为输出。

池化操作与卷积操作区别:池化层没有卷积核,仅将感受野中像素进行平均/取最大值的操作,并进行移动和遍历感受野。

5.全连接操作

全连接层定义:全连接层又称密集连接层,它可以将输入特征与每个神经网络之间的权重进行矩阵乘法和偏置加法,从而得到输出结果。

在全连接层中,每个神经元都连接到前一层的所有神经元。如果前一层有 n 个神经元,全连接层就有 n 个权重(连接权重)和 n 个偏置项(bias)。每个连接都有一个权重,这些权重和输入神经元的输出相乘后再求和,再加上对应的偏置项。这个结果经过激活函数后得到该神经元的输出。在训练过程中,神经网络通过反向传播算法来优化每个神经元的权重和偏置,从而使得输出结果能够更好地拟合训练数据。

全连接层的作用:全连接层的作用是将输入特征映射到输出结果,通常在神经网络的最后一层使用,用于分类、回归等任务。全连接层的输出结果可以看作是对输入特征的一种非线性变换,这种变换可以将输入特征空间映射到输出结果空间,从而实现模型的复杂性和非线性拟合能力。

  1. 特征组合: 全连接层能够学习不同输入之间的复杂组合,从而捕捉输入之间的非线性关系。

  2. 表示变换: 全连接层通过学习权重和偏置,可以将输入数据映射到更高维度的表示空间,有助于网络学习更复杂的特征。

  3. 分类决策: 在分类问题中,全连接层的输出通常用于最终的分类决策。输出层的神经元数目对应着分类的类别数,每个神经元对应一个类别的概率。

  4. 模型的最终输出: 在某些网络结构中,全连接层通常是网络的最后一层,它的输出被用作整个模型的最终输出。

全连接层的计算:

设前一层的输出为x1​,x2​,...,xn​,权重为 w1​,w2​,...,wn​,偏置为 b,激活函数为 f,那么全连接层中一个神经元的输出 y 可以通过以下公式计算:

y=f(w1​⋅x1​+w2​⋅x2​+...+wn​⋅xn​+b)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux下基本指令——(1)】

Linux下基本指令——(1) 一. ls 指令1.1.语法:1.2.功能:1.3.常用选项:1.4.举例:1.5.Xshell7展示 二. pwd 命令2.1.语法: 2.2.功能:2.3.常用选项:2.4.Xshell7展示 三. cd 指令3.1.语法…

服务器bash进程占用cpu过多疑似中挖矿病毒记录

发现过程 因为我有使用conky的习惯,也就是在桌面上会显示cpu和内存的占用情况,由于服务器不止我一个人使用,最近发现好几次我同学的账户下的bash进程占用特别多,问了他之后,他也说他几次都是没有使用过bash相关服务&a…

Rabbitmq发送邮件并消费邮件

📑前言 本文主要是【Rabbitmq】——Rabbitmq发送邮件并消费邮件的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#x1…

软件设计开发规程文件

《软件设计开发规程文件》 目的:为需求设计、开发、实现解决方案。

黄金比例设计软件Goldie App mac中文版介绍

Goldie App mac是一款测量可视化黄金比例的工具。专门为设计师打造,可以帮助他们在Mac上测量和可视化黄金比例,从而轻松创建出完美、平衡的设计。 Goldie App mac体积小巧,可以驻留在系统的菜单栏之上,随时提供给用户调用。 拥有独…

通过git上传文件到github仓库

一、新建github仓库 访问github官网:GitHub: Let’s build from here GitHub 点击个人头像,在右侧栏选择Your repositories。 点击New,新建一个github仓库。 创建Repository name仓库名,如果这个仓库名已经创建过的话&#xff…

Android中的多进程

在Android中也可以像pc一样开启多进程,这在android的编程中通常是比较少见的,以为在一个app基本上都是单进程工作就已经足够了,有一些特殊的场景,我们需要用多进程来做一些额外的工作,比如下载工作等。 在Android的An…

美创科技受邀亮相第二届全球数字贸易博览会

11月23日-27日,由浙江省人民政府、商务部共同主办的第二届全球数字贸易博览会(以下简称“数贸会”)圆满落幕。围绕“国家级、国际性、数贸味”的目标定位,以“数字贸易 商通全球”为主题,数贸会重点展示数字贸易全产业…

Android控件全解手册 - 任意View缩放平移工具-源码

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…

[Python入门系列之十一]在windows上安装OpenCV

1-安装OpenCV 如果是python3.7–python3.9(已测试),直接安装即可 注:conda需要先激活虚拟环境后再安装 pip install opencv-python如果安装速度慢,使用下面的指令: pip install opencv-python -i https://pypi.tuna.tsinghua.e…

【鲁班猫创意大赛2期】基于鲁班猫的幼儿Al监督系统

【鲁班猫创意大赛2期】基于鲁班猫的幼儿Al监督系统 作品介绍 本作品名称为“基于鲁班猫的幼儿 Al 学习助手”(系统总体框图如下图),作品应用群体为幼儿群体,主要功能:通过实时坐姿检测,防止坐姿不端正导致…

Linux详解——常用命令(二)

目录 一、常用命令 1.进程相关命令 2.vi命令 3.软件相关命令 RPM命令 YUM命令 4.用户和组相关命令 5.权限相关命令 一、常用命令 1.进程相关命令 # 1.ps 询在当前控制台上运行的进程 ps -aux 说明:查询系统中所有运行的进程,包括后台进程,其…

Git删除临时分支

愿所有美好如期而遇 软件开发过程中,总有功能要添加进来,当我们有一个功能开发了一半的时候,产品经理说这个功能不需要了,尽管很无奈,但还是要删除,我开发到一半的分支如何删除呢? 所以需要使用…

seurat读取不同数据格式以创建Seurat单细胞对象

挖掘GEO公共单细胞数据集时,会遇到常见各种单细胞测序数据格式。现总结如下,方便自己日后调用,以创建Seurat对象 (1)barcodes.tsv.gz、features.tsv.gz、matrix.mtx.gz (2)表达矩阵 &#xff08…

春安航运 App Tech Support

春安航运app是一款客户可以实时查看合同进度和自助开票,并且提供航运实用小工具的手机软件。软件的主要功能包括合同查询功能(合同详细,操作船代,分享,合同执行状态,合同执行航线), 费用结算功能(应付明细&…

gRPC Java、Go、PHP使用例子

文章目录 1、Protocol Buffers定义接口1.1、编写接口服务1.2、Protobuf基础数据类型 2、服务器端实现2.1、生成gRPC服务类2.2、Java服务器端实现 3、java、go、php客户端实现3.1、Java客户端实现3.2、Go客户端实现3.3、PHP客户端实现 4、运行效果 本文例子是在Window平台测试&a…

CI/CD 构建中能保护好 SSHKEY吗?

目录 背景 方案 编码存储 逐行存储 合并存储 打马赛克 结论 背景 使用极狐GitLab CI/CD,在部署方面,主要有两种方式: 部署到K8S集群 Push模式:流水线通过kubectl执行命令部署,这需要把K8S的权限给流水线&#xf…

htop命令中显示相同进程的解决方案

使用 htop 的过程中会发现有很多同样的进程被标注了绿色大量显示。如下图所示。 这使得在大量程序运行时想要找到需要观察的进程变的困难。本文介绍了如何省略这些重复现实的进程。 输入 htop,显示出 htop 界面。按下 F2 键,进入 Setup 模式点击 Displa…

记录Windows下安装redis的过程

开源博客项目Blog支持使用EasyCaching组件操作redis等缓存数据库,在继续学习开源博客项目Blog之前,准备先学习redis和EasyCaching组件的基本用法,本文记录在Windows下安装redis的过程。   虽然redis官网文档写着支持Linux、macOS、Windows等…