卷积神经网络入门

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)

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

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

相关文章

Module build failed: Error: ENOENT: no such file or directory

前言 这个错误通常发生在Node.js 和 vue,js项目中,当你试图访问一个不存在的文件或目录时。在大多数情况下,这是因为你的代码试图打开一个不存在的文件,或者你的构建系统(例如Webpack)需要一个配置文件,但找…

【泛型】JAVA基础篇(三)

泛型(Generics)是Java编程语言中的一个强大的特性,它提供了编译时类型安全检测机制,这意味着可以在编译期间检测到非法的类型。泛型的使用减少了程序中的强制类型转换和运行时错误的可能性。 一、泛型使用规范 类型参数命名约定…

【LeetCode】70. 爬楼梯

70. 爬楼梯 难度:简单 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼…

面试刷题自备中

面试刷题自备中 JavaSE基础线程redisMQkafkaspringspringmvcspringbootspringcloud设计模式数据库FastDFS垃圾回收机制项目部署dockerlinux JavaSE基础 面向对象都有哪些特性以及你对这些特性的理解访问权限修饰符 public、private、protected, 以及不写(默认&…

asp.net core webpi 结合jwt实现登录鉴权

1.安装jwt nuget包 <PackageReference Include"Microsoft.AspNetCore.Authentication.JwtBearer" Version"6.0.25" /><PackageReference Include"System.IdentityModel.Tokens.Jwt" Version"7.0.3" />2.配置jwt信息 build…

<JavaDS> 二叉树遍历各种遍历方式的代码实现 -- 前序、中序、后序、层序遍历

目录 有以下二叉树&#xff1a; 一、递归 1.1 前序遍历-递归 1.2 中序遍历-递归 1.3 后序遍历-递归 二、递归--使用链表 2.1 前序遍历-递归-返回链表 2.2 中序遍历-递归-返回链表 2.3 后序遍历-递归-返回链表 三、迭代--使用栈 3.1 前序遍历-迭代-使用栈 3.2 中序遍…

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

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

【LeetCode】每日一题 2023_11_28 设计前中后队列(数组/链表/双端队列)

文章目录 刷题前唠嗑题目&#xff1a;设计前中后队列题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode&#xff1f;启动&#xff01;&#xff01;&#xff01; 这道题的难度&#xff0c;才是我想象中的中等题的难度好吧&#xff0c;昨天那玩意对我来说还是太难了…

9.Spring 整合 Redis

引入依赖&#xff1a;spring-boot-starter-data-redis配置 Redis&#xff1a;配置数据库参数、编写配置类&#xff0c;构造 RedisTemplate访问 Redis&#xff1a; redisTemplate.opsForValue() redisTemplate.opsForHash() redisTemplate.opsForList() redisTemplate.opsForSe…

Vue3-toRaw 和 markRaw 函数

Vue3-toRaw 和 markRaw 函数 toRaw(转换为原始)&#xff1a;将响应式对象转换为普通对象&#xff0c;只适用于 reactive 生成的响应式对象。markRaw(标记为原始)&#xff1a;标记某个对象&#xff0c;让这个对象永远都不具备响应式。一些集成的第三方库&#xff0c;会有大量的…

华为认证大数据工程师(HCIA-Big Data)--练习题

华为认证大数据工程师&#xff08;HCIA-Big Data&#xff09;–练习题 单线 1、Hive定义一个自定义函数类时&#xff0c;需要继承以下哪个类&#xff1f; B A.FunctionRegistry B.UDF C.MapReduce2、 多选 1、以下场景中&#xff0c;哪些选项属于华为数据治理中心DataArts …

UE4 UE5 使用SVN控制

关键概念&#xff1a;虚幻引擎中使用SVN&#xff0c;帮助团队成员共享资源。 1. UE4/UE5项目文件 如果不需要编译的中间缓存&#xff0c;则删除&#xff1a; DerivedDataCache、Intermediate、Saved 三个文件夹 2.更新、上传

Hive进阶函数:SPACE() 一行炸裂指定行

数据一行如何转多行 假如有一张表&#xff0c;字段有两个&#xff0c;分别是name 和 number&#xff0c;代表含义为名字 和 名字出现的次数&#xff0c;现在需要把一行数据转为number行 举例&#xff1a; 输入&#xff1a; tom&#xff5c;3jery&#xff5c;4输出&#xff1a…

C++单调向量(栈):好子数组的最大分数

作者推荐 利用广度优先或模拟解决米诺骨牌 题目 给你一个整数数组 nums &#xff08;下标从 0 开始&#xff09;和一个整数 k 。 一个子数组 (i, j) 的 分数 定义为 min(nums[i], nums[i1], …, nums[j]) * (j - i 1) 。一个 好 子数组的两个端点下标需要满足 i < k <…

【LangChain实战】LangChain快速入门

1、什么是大语言模型 大语言模型是一种人工智能模型&#xff0c;通常使用深度学习技术&#xff0c;比如神经网络&#xff0c;来理解和生成人类语言。这些模型的“大”在于它们的参数数量非常多&#xff0c;可以达到数十亿甚至更多&#xff0c;这使得它们能够理解和生成高度复杂…

【Vue3】

组合式API setup选项 执行时机&#xff1a;比beforeCreate早 不能使用this 数据和函数需要return才能应用 标准写法 <script>export default {setup() {const message "vue32"const logMessage () > {console.log(message)}return {message,logMess…

MATLAB算法实战应用案例精讲-【图像处理】机器人视觉

目录 前言 机器人视觉发展历程 知识储备 光的偏振 01偏振光 02偏振应用

PostgreSQL数据库中的后台进程

在 PostgreSQL 中&#xff0c;有多个后台进程&#xff08;也称为工作者进程&#xff09;&#xff0c;负责处理不同的任务和功能。这些进程包括但不限于以下几种&#xff1a; 1. PostgreSQL数据库中的后台进程 1.1. Postmaster 进程 这是 PostgreSQL 服务器的主进程&#xff…

livox 半固体激光雷达 gazebo 仿真 | 更换环境与雷达型号

livox 半固体激光雷达 gazebo 仿真 | 更换环境与雷达型号 livox 半固体激光雷达 gazebo 仿真 | 更换环境与雷达型号livox 介绍更换环境更换livox激光雷达型号 livox 半固体激光雷达 gazebo 仿真 | 更换环境与雷达型号 livox 介绍 览沃科技有限公司&#xff08;Livox&#xff…

【动态规划】求最长递增子序列问题

目录 问题描述递推关系建立递推关系的思路约束条件:以 s [ k ] s[k] s[k] 结尾约束条件:以 s [ k ] s[k] s[k] 开头约束条件:增加子问题参数&#xff08;前缀&#xff09;约束条件:增加子问题参数&#xff08;后缀&#xff09;约束条件:LIS长度为k且末尾元素最小 运行实例 问…