【深度学习】(4)--卷积神经网络

文章目录

  • 卷积神经网络
    • 一、画面不变性
    • 二、图像识别
    • 三、卷积网络
      • 结构
      • 1. 原理
      • 2. 卷积层
      • 3. 池化层
      • 4. 全连接层
    • 四、感受野
  • 总结

卷积神经网络

卷积神经网络(Convolutional Neural Network,简称CNN)是一种深度学习模型,特别适用于处理具有网格结构的数据。主要目的是自动地、层次化地从原始数据中学习有效的特征表示,以完成特定的任务,如图像识别、分类、检测、分割等。

一、画面不变性

什么是画面不变性呢?我们知道一个物体,不管将其如何变换旋转都能够将其识别为同一个物体,这就是画面不变性。比如:

在这里插入图片描述

不管上图中物体如何的变换,我们都希望所建立的网络可以尽可能的满足这些不变性特点。

二、图像识别

我们知道传统的神经网络,训练时会将图形展开,使得在训练时网络模型的记忆比较刻板,比如下图中,我们进行训练时让神经网络记住正确的目标,但是当正确的图形变换一个位置时就无法识别了。

在这里插入图片描述

那么对于传统神经网络该怎么解决这个问题呢?

解决办法是:用大量物体位于不同位置的数据训练,同时增加网络的隐藏层个数从而扩大网络学习这些变体的能力。

这是不是需要花费很大很大的数据采集以及计算空间呢?让我们来看看卷积神经网络是如何做的。

三、卷积网络

结构

卷积神经网络的结构:由输入层、卷积层、激活层、池化层、全连接层、输出层组成。

在这里插入图片描述

1. 原理

类比自然界的动物,不同的物种有自己独有的特征,比如小狗的叫声是“汪汪汪”,小猫是“喵”,这就是这两个动物的区别,我们人类也可以通过这种方法来区分二者。

同样的,卷积神经网络也是同样的道理,卷积网络将图片划分出几个特征点,在识别图片时,找寻图片中是否有符合特征点的信息。

在这里插入图片描述

比如上图中,卷积网络如何将右边手写的“x”图片识别成x?

在这里插入图片描述

将标准的x图片划分出三个特征,x图片由上方的三个小部分组成,手写“x”图片中有包含第二部分的特征,没有另外两部分特征,那这我们怎么判断它到底是还是不是呢?

就像是每个动物都有自己重要的特征,我们可以通过调整三个部分特征的权重,来决定所识别的图片是否是x图片。

所以,综上所述:卷积就是对图像(不同的数据窗口数据)和卷积核(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。

在这里插入图片描述

2. 卷积层

  • 卷积操作

卷积操作中需要注意的:

  1. 步长stride:每次滑动的位置步长。
  2. 卷积核的个数:决定输出的depth厚度。同时代表卷积核的个数以及滤波器的个数。
  3. 填充值zero-padding:在外围边缘补充若干圈0,方便从初始位置以步长为单位可以刚好滑倒末尾位置,通俗地讲就是为了总长能被步长整除。

在这里插入图片描述

对于卷积层,可以形象的将卷积核当作是每个人的眼睛,每个眼睛都能得到一个特征图,不同的眼睛(卷积核)看到的图片是不一样的,这样我们就能得到多个不同的特征图。

  • 寻找目标特征

我们都知道卷积是通过与卷积核的内积得到特征图,但是,我们如何精准的找到卷积出来的特征图是不是我们的目标呢?

以鸢尾花为例:

在这里插入图片描述

我们的目标是识别图片中的花朵是不是鸢尾花,那我们卷积时寻找的特征图,当然得是关于鸢尾花的特征,尽量减少其余噪声的影响。这就要通过调整卷积核中的参数来调整特征目标:

一开始的卷积核是随机的,在最后的结果中同正确结果做比对,如果有误差,再返回卷积层中,更新调整卷积核的参数重新计算特征图,使得最后的特征图是目标特征。

  • 特征图计算

计算图片经过卷积后获得的特征图大小。

在这里插入图片描述

3. 池化层

  1. 池化层的作用

一种降采样,减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。

  1. 常见的池化层

最大池化、平均池化、全局平均池化、全局最大池化。

平均池化(average pooling):计算图像区域的平均值作为该区域池化后的值。

最大池化(max pooling):选图像区域的最大值作为该区域池化后的值。是最为常见的。

通常来说,CNN的卷积层之间都会周期性地插入池化层。

  • 我们偏常用的池化方法是最大池化,最大池化的原理分析:

最大池化的主要功能是压缩,却不会损坏识别结果。 这意味着卷积后的特征图中有对于识别物体不必要的冗余信息。

在这里插入图片描述

观察上图,我们之前就提到过,卷积神经网络可以将不同位置的相同物体给识别成同一个物体,在这里就给体现出来了。我们看到第一行三个图片中,目标物体(黑色标注)在图片的不同位置,它们经过卷积之后,得到了第二行的三个特征图,我们再将特征图进行最大池化,发现池化后的压缩结果都为3,将其识别为了同一个特征,其余的噪声影响都被处理了。

  1. 池化层操作方法

与卷积层类似,池化层运算符由一个固定形状的窗口组成,该窗口根据其步幅大小在输入的所有区域上滑动,为固定形状窗口(有时称为 池化窗口)遍历的每个位置计算一个输出。 然而,不同于卷积层中的输入与卷积核之间的互相关计算,池化层不包含参数。

4. 全连接层

当抓取到足以用来识别图片的特征后,接下来的就是如何进行分类。 全连接层(也叫前馈层)就可以用来将最后的输出映射到线性可分的空间。 通常卷积网络的最后会将末端得到的长方体平摊(flatten)成一个长长的向量,并送入全连接层配合输出层进行分类。
在这里插入图片描述

四、感受野

在卷积神经网络中,感受野(Receptive Field)是一个核心概念,它指的是网络中每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。换句话说,感受野描述了某一层神经元所“看到”的输入图像的区域范围。

在这里插入图片描述

例如图片是3通道:

卷积核为3个7 x 7的,则卷积核所需要的参数个数为:3 x (3 x 7 x 7)=441个

卷积核为3个3 x 3的3层,则卷积核所需要的参数个数为:3 x (3 x 3 x 3)+3 x (3 x 3 x 3) +3 x (3 x 3 x 3) =243个

同样的效果,后者需要调整的参数更小,自然使用后者更好啦!

总结

本篇介绍了卷积神经网络的结构以及它的优点:

  1. 卷积神经网络能够将变换的物体识别出来。
  2. 卷积神经网络的结构:由输入层、卷积层、激活层、池化层、全连接层、输出层组成。
  3. 什么是感受野。

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

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

相关文章

基于SpringBoot+Vue+MySQL的校园一卡通系统

系统展示 用户前台界面 管理员后台界面 系统背景 随着现代社会的快速发展,校园一卡通已成为大学生活中不可或缺的一部分。它不仅承载着校园消费的功能,还集成了学生身份证明、图书馆借阅、门禁系统等多种服务。然而,传统的一卡通管理系统往往…

设计模式之策略模式例题

答案:A 知识点: 策略模式又叫模板方法模式 它的意图是定义一个操作中的算法骨架。而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义算法的某些特定步骤

Elasticsearch——介绍、安装与初步使用

目录 1.初识 Elasticsearch1.1.了解 ES1.1.1.Elasticsearch 的作用1.1.2.ELK技术栈1.1.3.Elasticsearch 和 Lucene1.1.4.为什么不是其他搜索技术?1.1.5.总结 1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引1.2.3.正向和倒排 1.3.Elasticsearch 的一些概念1.3.1.文档和字…

大模型LLM对话模拟器Dialogue Simulator Visualization可视化工具

伴随着生成式人工智能技术发展,进2年涌现出大语言模型LLM/Agent系统/AI推理等众多方向的技术项目和论文。其中对话系统,智能体交互是用户通过UX界面和AI系统进行交互,这种交互有时候也是多模态(用户输入文字/语音/图像&#xff09…

MySQL高阶1919-兴趣相同的朋友

题目 请写一段SQL查询获取到兴趣相同的朋友。用户 x 和 用户 y 是兴趣相同的朋友,需满足下述条件: 用户 x 和 y 是朋友,并且用户 x and y 在同一天内听过相同的歌曲,且数量大于等于三首. 结果表 无需排序 。注意:返…

用最通俗易懂的语言和例子讲解三维点云

前言: 我整体的学习顺序是看的按B站那“唯一”的三维点云的视频学习的(翻了好久几乎没有第二个...)对于深度学习部分,由于本人并没有进行学习,所以没有深究。大多数内容都进行了自己的理解并找了很多网络的资源方便理解…

论文阅读:A Generalization of Transformer Networks to Graphs

论文阅读:A Generalization of Transformer Networks to Graphs 1 摘要2 贡献Graph TransformerOn Graph Sparsity(图稀疏)On Positional Encodings(位置编码)3 Graph Transformer Architecture(架构&#…

阿里HPN-用于大型语言模型训练的数据中心网络

阿里巴巴HPN:用于大型语言模型训练的数据中心网络 探索大规模语言模型训练新方法:阿里巴巴HPN数据中心网络论文。 摘要 本文介绍了阿里云用于大型语言模型(LLM)训练的数据中心网络HPN。由于LLM和一般云计算之间的差异(例如,在流量模式和容错性方面)&…

一份热乎的阿里25届数据分析面试题

目录 阿里巴巴25届数分面试题 想要获取答案,想进一步了解SQL这门艺术语言的,可以订阅我的专栏数字化建设通关指南,将在该专栏进行详细解析。 专栏 原价99,现在活动价39.9,按照阶梯式增长,还差3个名额将上…

如何备份SqlServer数据库

第一步:登录你要备份的服务器数据库ssms 第二步:选择你要备份的数据库 此处已PZ-SJCS 数据库为例 右键该数据库-->任务-->备份 第三步:选择你备份的类型备份组件等,目标磁盘 ,点击添加选择将你备份的文件备份那…

kubernetes网络(一)之calico详解

摘要 本文介绍Kubernetes最流行的网络解决方案calico。 kubernetes中不同宿主上的pod需要相互通信,如果按TCP/IP协议分层进行分类: 二层方案:flannel的udp和vxlan模式 三层方案:flannel的host-gw模式;calico的IPIP模…

pod介绍与配置

1、pod概念介绍 Pod 是 kubernetes 基本调度单位。每个 Pod 中可以运 行一个或多个容器,共享 Pod 的文件系统、IP 和网络等资源,每个 Pod 只有一个 IP。 2、使用 yaml或json 文件创建 Pod 声明式文件方式创建 Pod,支持 yaml 和 json 1&…

【Fastapi】参数获取,json和query

【Fastapi】参数获取,json和query 前言giteegithub query形式json传递同步方法使用json 前言 花了半个月的时间看了一本小说,懈怠了…今天更新下fastapi框架的参数获取 gitee https://gitee.com/zz1521145346/fastapi_frame.git github https://git…

【网络通信基础与实践番外一】多图预警之图解UDP和TCP前置知识

参考大佬的文章https://www.cnblogs.com/cxuanBlog/p/14059379.html 一、宏观架构中的传输层 在计算机中,任何一个可以交换信息的介质都可以称为端系统。计算机网络的运输层则负责把报文从一端运输到另一端,运输层实现了让两个互不相关的主机进行了逻辑…

【洛谷】P10417 [蓝桥杯 2023 国 A] 第 K 小的和 的题解

【洛谷】P10417 [蓝桥杯 2023 国 A] 第 K 小的和 的题解 题目传送门 题解 CSP-S1 补全程序,致敬全 A 的答案,和神奇的预言家。 写一下这篇的题解说不定能加 CSP 2024 的 RP 首先看到 k k k 这么大的一个常数,就想到了二分。然后写一个判…

Netty系列-4 Pipeline和Handler

背景 Netty将IO事件按照流向划分为两个部分:Inbound入站事件和Outbound出站事件。入站事件由外部触发,包括通道注册(register)、通道激活(active)、数据可读(read)、通道异常(exceptionCaught)等;出站事件由程序主动触发,如连接的…

人工智能不是人工“制”能

文/孟永辉 如果你去过今年在上海举办的世界人工智能大会,就会知道当下的人工智能行业在中国是多么火爆。 的确,作为第四次工业革命的重要组成部分,人工智能愈发引起越来越多的重视。 不仅仅是在中国,当今世界的很多工业强国都在将…

828华为云征文|云服务器Flexus X实例|MacOS系统-宝塔部署Nuxt项目

文章目录 1. Flexus云服务器X实例1.1 与Flexus应用服务器L实例相比具备以下优势1.2 服务器的详细配置 2.宝塔部署Nuxt项目2.1 登录实例2.1 宝塔面板 3. Nuxt 项目与部署3.1 Nuxt3.2创建Nuxt项目3.3 部署3.4 部署成功 4.结语 1. Flexus云服务器X实例 华为云的Flexus云服务是为中…

C++高精度计时方法总结(测试函数运行时间)

文章目录 一、clock()函数——毫妙级二、GetTickCount()函数(精度16ms左右)——毫妙级三、高精度时控函数QueryPerformanceCounter()——微妙级四、高精度计时chrono函数——纳妙级五、几种计时比较六、linux下的计时函数gettimeofday()-未测试参考文献 …

typedef的用法

typedef只有一种用法&#xff0c;那就是&#xff1a; 1,代替各种类型或某类&#xff08;结构体&#xff09;成员。 比如下列代码&#xff1a; #include <iostream> #include <string> int main() {typedef int i;i e3;int f3;std::string t_or_f(ef)?"tru…