什么是卷积神经网络——CNN

news2024/12/29 10:55:17

卷积神经网络(CNN)

PS: 卷积神经网络 主要包括:输入层、卷积层、池化层、全连接层

1. 卷积神经网络结构介绍

如果用全连接神经网络处理大尺寸图像具有三个明显的缺点

(1)首先将图像展开为向量会丢失空间信息

(2)其次参数过多效率低下,训练困难;

(3)同时大量的参数也很快会导致网络过拟合

而使用卷积神经网络可以很好地解决上面的三个问题。

​ 与常规神经网络不同,卷积神经网络的各层中的神经元是3维排列的宽度、高度和深度。其中的宽度和高度是很好理解的,因为本身卷积就是一个二维模板。深度:比如 32x32x3(宽度,高度和深度)中 *3 就是(RGB)图片形式 分为三层(代表了红、绿、蓝3种颜色通道)三层颜色拼在一起

在这里插入图片描述

img

​ 图 1. **全连接神经网络(左) ** 与 **卷积神经网络(右)**的对比

  • 全连接神经网络(左)

​ 输入的是一维的, 32 * 32 *3 = 3072 个一维的像素点

  • 卷积神经网络(右)

​ 输入的是一个三维的 :32 * 32 * 3 直接输入

2、CNN解决了什么问题

在 CNN 出现之前,图像对于人工智能来说是一个难题,有2个原因:

  1. 图像需要处理的数据量太大,导致成本很高,效率很低
  2. 图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率不高

下面就详细说明一下这2个问题:

2.1、需要处理的数据量太大

图像是由像素构成的,每个像素又是由颜色构成的。

图像是由像素构成的,每个像素又是由颜色构成的

现在随随便便一张图片都是 1000×1000 像素以上的, 每个像素都有RGB 3个参数来表示颜色信息

假如我们处理一张 1000×1000 像素的图片,我们就需要处理3百万个参数!

1000×1000×3=3,000,000

这么大量的数据处理起来是非常消耗资源的,而且这只是一张不算太大的图片!

卷积神经网络 – CNN 解决的第一个问题就是“将复杂问题简化”,把大量参数降维成少量参数,再做处理。

更重要的是:我们在大部分场景下,降维并不会影响结果。比如1000像素的图片缩小成200像素,并不影响肉眼认出来图片中是一只猫还是一只狗,机器也是如此。

2.2、保留图像特征

图片数字化的传统方式我们简化一下,就类似下图的过程:

图像简单数字化无法保留图像特征

假如有圆形是1,没有圆形是0,那么圆形的位置不同就会产生完全不同的数据表达。但是从视觉的角度来看,图像的内容(本质)并没有发生变化,只是位置发生了变化

所以当我们移动图像中的物体,用传统的方式的得出来的参数会差异很大!这是不符合图像处理的要求的。

而 CNN 解决了这个问题,他用类似视觉的方式保留了图像的特征,当图像做翻转,旋转或者变换位置时,它也能有效的识别出来是类似的图像。

那么卷积神经网络是如何实现的呢?在我们了解 CNN 原理之前,先来看看人类的视觉原理是什么?

3、人类的视觉原理

深度学习的许多研究成果,离不开对大脑认知原理的研究,尤其是视觉原理的研究。

1981 年的诺贝尔医学奖,颁发给了 David Hubel(出生于加拿大的美国神经生物学家) 和TorstenWiesel,以及 Roger Sperry。前两位的主要贡献,是“发现了视觉系统的信息处理”,可视皮层是分级的。

人类的视觉原理如下:从原始信号摄入开始(瞳孔摄入像素 Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。下面是人脑进行人脸识别的一个示例:

人类视觉原理1

对于不同的物体,人类视觉也是通过这样逐层分级,来进行认知的:

人类视觉原理2

我们可以看到,在最底层特征基本上是类似的,就是各种边缘,越往上,越能提取出此类物体的一些特征(轮子、眼睛、躯干等),到最上层,不同的高级特征最终组合成相应的图像,从而能够让人类准确的区分不同的物体。

那么我们可以很自然的想到:可以不可以模仿人类大脑的这个特点,构造多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终通过多个层级的组合,最终在顶层做出分类呢?

答案是肯定的,这也是许多深度学习算法(包括CNN)的灵感来源。

4、卷积神经网络-CNN 的基本原理

典型的 CNN 由3个部分构成:

  1. 卷积层
  2. 池化层
  3. 全连接层

如果简单来描述的话:

卷积层负责提取图像中的局部特征;池化层用来大幅降低参数量级(降维);全连接层类似传统神经网络的部分,用来输出想要的结果。

4.1 卷积层——提取特征

卷积层涉及到参数:

  • 滑动窗口的步长
  • 卷积核尺寸
  • 边缘填充
  • 卷积核个数

4.4.1 得到的特征图的表示

卷积层的运算过程如下图,用一个卷积核扫完整张图片:

卷积层运算过程

Conv-Example

下图 15 形象的刻画了利用一个 3x3 大小的卷积核的整个卷积计算过程:

Conv-Sobel

这个过程我们可以理解为我们使用**一个过滤器(卷积核)**来过滤图像的各个小区域,从而得到这些小区域的特征值。

在具体应用中,往往有多个卷积核,如:彩色图像由三原色构成,二维图像在任意一个点像素为立体三层结构,分别是红色、绿色、蓝色值,该值的范围在0∽255之间,在计算机里用一个无符号的8位数表示,有三层结构彩色图像通常也称为通道数为三层,当输入图为一张3通道彩图时,也可以理解为输入3张二维图,每个二维图通道数是1,所以在CNN里‘通道数’与输入、输出时单通道图片的个数等效。下面展示是对一个三层通道彩色图像卷积过程,这个卷积过程使用了2个卷积核,用于提取图像特定的2个特征,由于图像通道数是3所以每个卷积核也是3层结构。

1614578688796047447.gif

4.1.2 卷积特征值计算方法

讲一下计算过程吧:

  • Input Volume中三个二维的 7 * 7分别代表 R G B三个图像层
  • Filter W0中三个 卷积核 内容不同,分别对应着R G B进行运算
  • 如何运算?以Input Volume中 R 与 Filter 中 R对于的W0(卷积核)来计算示例:

(0 * 1)+ (0 * 1)+ (0 * -1)+ (0 * -1) + … + (1 * 0)是每个相对应的cell去相乘,input Volume中的左上角第一个格中的值0,乘 Fiter W0中左上角第一个格中的值1,以此类推。最后得出的9个最终结果相加

​ 这只是一个颜色通道的结果,最后得出 Output Volume O_0的结果是三个颜色通道的所以结果相加===>然后别忘了加一个偏移变量b ====>最后得到Output Volume O_0最后的左上角的结果1
在这里插入图片描述
总结:卷积层的通过卷积核的过滤提取出图片中局部的特征,跟上面提到的人类视觉的特征提取类似。
在这里插入图片描述

4.1.3 步长 与 卷积核 大小对结果的影响

  • 卷积核

​ 类似人类的视觉原理。这里,我们先原始输入 --> 粗粒度的提取特征 --> 中粒度提取特征 --> 高粒度提取特征 -->根据最后提取出来的特征进行分类。
在这里插入图片描述

​ 这就说明了,我们做一次卷积是不够的,要多次迭代的做卷积。
CONV 是卷积的意思,通过一次一次的迭代卷积,得出最后的结果。
其中e.g.6 和 e.g.10分别代表 6个卷积核 10个卷积核

在这里插入图片描述

  • 步长:

也适用于NLP自然语言处理

在这里插入图片描述

步长越大,提取的特征越少。

4.2 池化层————数据降维,避免过拟合

4.2.1 池化层的作用

​ 池化(pooling)层是将卷积后的特征图进一步降维、缩小特征图尺寸,池化后对信息是虽然有损失的,但也保证了模型有较好的拟合能力。

​ 之所以这么做的原因,是因为即使做完了卷积,图像仍然很大(因为卷积核比较小),所以为了降低数据维度,就进行下采样。

常见池化示意图如下:

在这里插入图片描述

常用池化手段有最大池化法(Max pooling)、平均池化法(Average pooling),最大池化法取池化窗口内最大值作为输出,过程如下图所示:

  • MAX POLLING :选择权重大的,即:重要的点

最大池化法.jpg

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-on1wwAnS-1689147739700)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230712130244327.png)]

Max-Pooling

总结:池化层相比卷积层可以更有效的降低数据维度,这么做不但可以大大减少运算量,还可以有效的避免过拟合。

4.2.2 整体网络架构

CONV:卷积

RELU :一个函数

POOL:池化

FC:全连接
在这里插入图片描述

特征图的变化:

卷积层 – 池化层- 卷积层 – 池化层 – 卷积层 – 全连接层
在这里插入图片描述

4.3 全连接层——输出结果

​ 这个部分就是最后一步了,经过卷积层和池化层处理过的数据输入到全连接层,得到最终想要的结果。

经过卷积层和池化层降维过的数据,全连接层才能”跑得动”,不然数据量太大,计算成本高,效率低下。

参考链接:
1、https://www.dohkoai.com/usr/show?id=32&catalogsortby=3
2、https://leovan.me/cn/2018/08/cnn/
3、https://easyai.tech/ai-definition/cnn/

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

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

相关文章

【C#】Kestrel和IIS服务器下的同步与异步配置

最近在回看自己写的代码时,发现服务配置里最开头写了两段代码,第一感觉,这是啥功能,太久有点生疏了,经过一顿搜索和回顾,简单整理如下 目录 1、Kestrel服务器1.1、跨平台1.2、高性能1.3、可扩展性1.4、安全…

Hadoop 3.2.4 本机伪分布式安装

Hadoop 3.2.4 伪分布式安装 文章目录 Hadoop 3.2.4 伪分布式安装前言配置ssh免密登录下载安装包解压并调整配置文件解压安装包到当前位置调整配置文件hadoop-env.shyarn-env.shcore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlworkers 配置 启动验证启动与命令查验web页…

装机——固态硬盘的选择

文章目录 问题描述知识学习硬盘分类PCIe接口SATA接口M.2接口 通道PCI-E通道SATA通道SAS通道FC通道 通信协议IDE协议AHCI协议NVMe协议 硬盘参数表主控存储颗粒SLCMLCTLCQLC失败的颗粒(需要购买原装厂商的存储颗粒) 问题解决问题总结 问题描述 女朋友笔记本…

Spark(20):SparkStreaming之概述

目录 0. 相关文章链接 1. Spark Streaming 是什么 2. Spark Streaming 的特点 2.1. 易用 2.2. 容错 2.3. 易整合到Spark体系 3. Spark Streaming 架构 3.1. 架构图 3.2. 背压机制 0. 相关文章链接 Spark文章汇总 1. Spark Streaming 是什么 Spark 流使得构建可扩展的…

【ArcGIS Pro微课1000例】0027:高分卫星全色影像与多光谱影像融合提高分辨率教程

本文讲解ArcGIS Pro中图像增强:高分卫星影像融合(全色影像+多光谱影像)操作案例教程。 文章目录 一、图像融合概述二、图像融合案例1. 加载数据2. 图像融合一、图像融合概述 图像融合是指将不同类型传感器的影像进行融合,既能使图向具有较高的空间分辨率,又具有多光谱的特…

觉非科技李东旻:智能驾驶向大模型的进化与感知决策新范式的诞生

由亿欧汽车主办“AI与新一代车载智能感知融合创新论坛”近日登陆2023世界人工智能大会(WAIC)。觉非科技CEO李东旻受邀发表了“智能驾驶向大模型的进化与感知决策新范式的诞生”主题演讲,从产业趋势结合技术发展特点以及在感知决策中的能力应用…

红队打靶,红日靶场系列,红日靶场4

文章目录 环境搭建:外网渗透:Struts2phpmyadmintomcat 内网渗透msf上线建立代理内网信息收集密码获取总结 环境搭建: 攻击机: 真实机win10 kali : 192.168.0.128 靶机: web:192.168.183.130, 19…

【图像处理】Python判断一张图像是否亮度过低

比如: 直方图: 代码: 这段代码是一个用于判断图像亮度是否过暗的函数is_dark,并对输入的图像进行可视化直方图展示。 首先,通过import语句导入了cv2和matplotlib.pyplot模块,用于图像处理和可视化。 …

新版studio没法筛选Error

目录 方式一 简单粗暴,针对怀旧者,可切回原版log视图 方式二 学习新的log过滤方法 升级新版本AndroidStudio后,log日志变成以下样子,发现之前过滤error,infor的tab都不见了,瞬间不淡定了,查阅资料才发现…

运维小知识(一)——centos系统安装(小白入门级)

目录 1.制作系统U盘 2.安装centos系统 3.系统配置 3.1【语言】配置​编辑 3.2【软件选择】配置 3.3【安装位置】配置 3.4【主机名、root密码、网络】配置 1.制作系统U盘 首先下载软件ventoy,制作系统U盘,买个新U盘。先在笔记本电脑安装ventoy软件&a…

MongoDB安装使用

部分转载于:MongoDB安装配置教程(详细版) 文章目录 1. mongodb server安装使用2. mongodb客户端连数据库背景 1. mongodb server安装使用 前言:MongoDB是前端开发人员普遍使用的数据库,因为MongoDB不需要图形界面&…

YiOVE书源:不只是书源,还有对书源的一些预处理,比如提前查看书源数量,以及包含哪些小说站

引言 我是一个小说爱好者,阅读APP更是其中的效果斐然的不错宝器,平时自己也会收集一些书源。但是在这过程中产生了一些需求,比如:书源的数目是多少?书源链接还有效吗? 于是,自己基于Flask写了…

推荐这7个交互软件,交互效果更丰富

在现代Web设计中,交互效果是吸引用户注意力、增强用户体验的关键因素之一。通过使用交互效果软件,设计师可以为网站和应用程序增加动态元素和交互特性,提供更具吸引力和互动性的用户体验。本文将介绍7个操作简单,交互效果丰富的交…

【运维工程师学习四续集】Web服务之Linux配置安装Nginx

【运维工程师学习四续集】Web服务之Linux配置安装Nginx 0、查看是否安装wget1、安装wget2、下载 Nginx 安装包wget下载nginx安装包 3、解压nginx tar包4、安装相关依赖文件解释 5、切换到nginx目录6、配置当前nginx7、编译安装nginx8、切换到nginx的sbin目录9、查看nginx的版本…

RabbitMQ集群搭建与高可用实现(未完待续)

文章目录 一、RabbitMQ集群概述1、为什么要使用RabbitMQ集群2、RabbitMQ如何支持集群3、RabbitMQ的节点类型 二、普通集群1、什么是普通集群2、Docker搭建普通集群模式(1)安装docker(2)安装RabbitMQ(3)检验…

线程任务异步回调

1、需要掌握概念 //同步,异步,异步回调 //MQ消息中间件 例子:工作邮件、微信、QQ 原理: 同步、异步、异步回调 2、代码 public static void main(String[] args) throws Exception {//同步,异步,异步…

X2000 Linux 测试VL53L4CD

在X2000 Linux 调试VL53L4CD驱动章节中已从官方下载了驱动文件,文件如下: 一、 拷贝测试代码 将user拷贝到sdk\demo下,如下所示: 2、修改Makefile 修改\user\test\Makefile指令CC为mips-linux-gnu-gcc CC : mips-linux-gnu-gcc…

北约峰会遭遇RomCom黑客组织攻击

昨天(7月11日),微软正式披露了一个未修补的零日安全漏洞,该漏洞存在于多个Windows和Office产品中,可以通过恶意Office文档远程执行代码。 未经身份验证的攻击者可在无用户交互的情况下利用该漏洞(跟踪为CVE-2023-3688…

IMU背包对动物行为影响测试

动物行为是一种可观察和可测量的指标,轻量化和低成本的传感器技术的先进发展为研究人员提供了以最小干预来跨越空间和时间跟踪动物的机会。特别是对于家禽业来说,已经从传统的笼养系统转变为无笼养系统。许多技术可用于检测大群鸡的行为、活动和位置。为…

哈希的应用->布隆过滤器

为什么用布隆过滤器 这个是基于位图的一个超级牛皮的一个数据结构。举个例子,假设我们创建Steam账号,我们的账户名字是不允许重复的,所以我们需要找到一个没有人使用过的名字,但是我们得知道现在这个名字是否有人用过&#xff0c…