初始CNN(卷积神经网络)

         卷积神经网络(Convolutional Neural Network,简称 CNN)作为深度学习的重要分支,在图像识别、目标检测、语义分割等领域大放异彩。无论是手机上的人脸识别解锁,还是自动驾驶汽车对道路和行人的识别,背后都离不开 CNN 的强大能力

一、CNN 诞生的背景与意义​

   在 CNN 出现之前,传统的图像识别方法主要依赖人工提取特征,例如使用 SIFT(尺度不变特征变换)、HOG(方向梯度直方图)等算法。这些方法需要大量的人工设计和调试,而且通用性较差,面对复杂多变的图像数据往往效果不佳。随着图像数据量的爆炸式增长和对识别精度要求的不断提高,传统方法逐渐难以满足需求。​

       CNN 的诞生彻底改变了这一局面。它通过模拟人类视觉神经系统的工作方式,能够自动从大量图像数据中学习特征,大大减少了人工设计特征的工作量,并且在性能上远超传统方法。CNN 的出现不仅推动了图像领域的发展,还为其他领域如自然语言处理、语音识别等提供了新的思路和方法,成为深度学习发展历程中的重要里程碑。​

 

二、CNN 的核心组件​

(一)卷积层​

       卷积层是 CNN 的核心部分,它的作用是提取图像中的特征。我们可以把卷积层想象成一个 “特征探测器”,它通过卷积核(也称为滤波器)在图像上滑动,对图像的局部区域进行计算,从而提取出不同的特征。​

卷积核是一个由权重参数组成的小矩阵,其大小通常为 3×3、5×5 等。例如,一个 3×3 的卷积核在图像上每次滑动一个像素(步长为 1),将卷积核与图像对应区域的像素值相乘再相加(内积计算),得到一个新的数值,这个过程就叫做卷积运算。通过使用多个不同的卷积核,我们可以提取出图像中不同类型的特征,比如边缘、纹理、形状等。​

        以识别手写数字图像为例,一个卷积核可能专门用于检测图像中的垂直线条,另一个卷积核则用于检测圆形区域。随着卷积层的不断叠加,网络能够从简单的特征(如线条)逐步学习到更复杂的特征(如数字的形状)。​

(二)池化层​

      池化层的主要作用是对数据进行降维,减少计算量,同时还能提高模型的鲁棒性。常见的池化方法有最大池化和平均池化。​

        最大池化是在一个固定大小的区域(如 2×2)内选取最大值作为输出,而平均池化则是计算该区域内的平均值作为输出。比如,对于一个 8×8 的图像区域,使用 2×2 的最大池化窗口,步长为 2,经过池化后,图像的尺寸就会缩小到 4×4。​

       池化层在保留图像主要特征的同时,降低了数据的维度,减少了后续层的参数数量,防止模型过拟合。而且,由于池化操作对图像的微小平移、旋转等变化具有一定的不变性,所以能够增强模型的鲁棒性,使模型在面对不同姿态和位置的图像时也能准确识别。​

(三)全连接层​

         全连接层位于 CNN 的末端,它的作用是将前面卷积层和池化层提取到的特征进行整合,并输出最终的分类结果。在全连接层中,每个神经元都与上一层的所有神经元相连,通过一系列的加权求和和激活函数运算,将特征映射到不同的类别上。​

     例如,在一个手写数字识别任务中,经过前面的卷积层和池化层提取特征后,全连接层会将这些特征进行综合分析,计算出图像属于 0 - 9 每个数字的概率,最终选择概率最高的类别作为识别结果。​

(四)激活函数​

       激活函数在神经网络中扮演着至关重要的角色,它为神经网络引入了非线性因素。如果没有激活函数,无论神经网络有多少层,其输出都是输入的线性组合,这样的网络只能解决线性可分的问题,无法处理现实世界中复杂的非线性问题。​

       常见的激活函数有 ReLU(修正线性单元)、Sigmoid、Tanh 等。ReLU 函数是目前使用最广泛的激活函数之一,它的表达式为 f (x) = max (0, x),即当输入大于 0 时,输出等于输入;当输入小于等于 0 时,输出为 0。ReLU 函数计算简单,能够有效缓解梯度消失问题,加快网络的训练速度。​

三、CNN 的工作流程​

(一)数据预处理​

在将图像数据输入到 CNN 之前,需要进行预处理操作。首先是数据的归一化,将图像的像素值范围调整到一个固定的区间,通常是 [0, 1] 或 [-1, 1],这样可以加快模型的收敛速度,提高训练效率。其次是数据增强,通过对原始图像进行旋转、翻转、缩放、添加噪声等操作,扩充数据集的规模,增加数据的多样性,从而提高模型的泛化能力,防止过拟合。​

(二)特征提取与学习​

       数据预处理完成后,将图像输入到 CNN 中。卷积层通过卷积核在图像上滑动,进行卷积运算,提取图像的特征。随着网络层数的增加,提取到的特征越来越复杂和抽象。每经过一个卷积层,通常会紧接着一个激活函数,对卷积层的输出进行非线性变换,使网络能够学习到更丰富的特征。​

       池化层在卷积层之后,对卷积层输出的特征图进行降维处理,减少数据量和计算量。经过多个卷积层和池化层的交替作用,网络逐步学习到图像中具有代表性的特征。​

(三)分类与输出​

           经过卷积层和池化层的特征提取后,数据会被输入到全连接层。全连接层将前面提取到的特征进行整合,通过一系列的加权求和和激活函数运算,输出每个类别的预测概率。最后,使用 Softmax 函数对全连接层的输出进行处理,将输出值转换为概率分布,概率最大的类别即为模型的预测结果。​

四、CNN 的经典应用场景​

(一)图像识别​

图像识别是 CNN 应用最为广泛的领域之一。无论是在工业生产中的产品缺陷检测,还是在安防领域的人脸识别、车牌识别,CNN 都展现出了强大的能力。例如,在医学图像识别中,CNN 可以帮助医生快速准确地诊断疾病,通过对 X 光、CT、MRI 等医学图像进行分析,检测出肿瘤、病变等异常区域,为疾病的早期诊断和治疗提供重要依据。​

(二)目标检测​

目标检测不仅要识别图像中物体的类别,还要确定物体在图像中的位置。基于 CNN 的目标检测算法,如 YOLO(You Only Look Once)、Faster R - CNN 等,能够在复杂的场景中实时检测出多个目标。在自动驾驶领域,目标检测算法可以识别道路上的车辆、行人、交通标志等物体,为车辆的决策和控制提供关键信息,保障行车安全。​

(三)语义分割​

语义分割是将图像中的每个像素分配到相应的类别中,实现对图像的像素级分类。在智能城市建设中,语义分割可以用于对城市街道、建筑物、绿化带等进行精确的分割和识别,为城市规划、环境监测等提供数据支持。在农业领域,语义分割可以帮助农民识别农作物和杂草,实现精准喷洒农药,提高农业生产效率。​​

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

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

相关文章

深度解析Spring Bean生命周期:从字节码到可用对象的奇幻旅程

🌱 深度解析Spring Bean生命周期:从字节码到可用对象的奇幻旅程 你是否曾困惑:为什么PostConstruct有时不执行?为什么循环依赖报错如此难解?为什么AOP代理在某些场景失效? 本文将彻底拆解Spring Bean的16个…

MySQL 复合查询和内外连接 -- 子查询,多表查询,自连接,合并查询,表的内外连接

目录 1. 子查询 1.1 单行子查询 1.2 多行子查询 1.3 多列子查询 1.4 在 from 子句中使用子查询 2. 多表查询 3. 自连接 4. 合并查询 4.1 union 4.2 union all 5. 表的内连接 6. 表的外连接 下列先给出该博客中所用到的所有表的数据。 (1)部…

【STM32+LAN9252+HAL库】EtherCAT从站搭建 保姆级教程

目录 一、生成协议栈及XML文件 二、使用stm32CuboMX配置外设 三、协议栈移植 鉴于本人对EtherCAT的掌握程度十分有限,这篇文章仅作为我搭建基础从站的过程记录不做更多讲解。本文内容主要为SPI模式的基础搭建,更多深入的学习资料和细节,大家…

【LeetCode 热题 100】239. 滑动窗口最大值——(解法二)滑动窗口+单调队列

Problem: 239. 滑动窗口最大值 题目:给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值 。 【LeetCode 热题 100】239. 滑…

MySQL 8.0 连接 5.x 服务器认证问题

总的来说,答案是:可以,但是需要特别注意认证方式的兼容性问题。 MySQL 8.0 引入了新的默认认证插件 caching_sha2_password,而 MySQL 5.x(及更早版本)使用的是 mysql_native_password。当你用一个 8.0 的客…

Spring原理揭秘(一)

什么是spring? spring框架是一个轻量级的开源的JavaEE框架。 所谓轻量级则是:占用空间小,代码侵入性低,代码耦合度低,降低代码复杂度,可以轻易适配多种框架。 随着spring的不断发展,它所占用…

Visual Studio Code自用搜索技巧整理

多文件跨行搜索 用途 在多个日志文件中搜索跨行日志 方法 1.用VS Code打开待搜索文件所在的目录; 2.按快捷键(CtrlShiftF)打开全局搜索; 3.点击搜索框右侧的开启正则表达式; 4.输入正则表达式,例如&…

Axure PR 9 验证码登录 案例

大家好,我是大明同学。 这期内容,我们来用Axure来制作一个短信验证登录页面的小案例。 验证码登录小案例 创建手机号输入框所需的元件 1.打开一个新的 RP 文件并在画布上打开 Page 1。 2.在元件库中拖出一个矩形元件,选中矩形元件&#xf…

监听器模式

1. 问题背景 假设我们有一个 银行账户管理系统,该系统需要监控用户账户余额的变动,并在发生变动时,自动执行一些相关的操作,比如发送 余额变动通知(如短信、邮件等)。为了实现这一功能,我们希望…

帕鲁杯应急响应赛题:知攻善防实验室

一、背景信息 在这个跳跃的数字舞台上,数据安全成了政企单位稳航的重要压舱石。某政企单位,作为一艘驶向未来 的巨轮,对数据的把控丝毫不敢松懈。眼下,我们即将启航一场无与伦比的探险——“信息安全探索之 旅”。 这趟旅程的目的…

【硬核数学】2.2 深度学习的“微积分引擎”:自动微分与反向传播《从零构建机器学习、深度学习到LLM的数学认知》

欢迎来到本系列的第七篇文章。在上一章,我们用张量武装了我们的线性代数知识,学会了如何描述和操作神经网络中的高维数据流。我们知道,一个神经网络的“前向传播”过程,就是输入张量经过一系列复杂的张量运算(矩阵乘法…

DAY 45 Tensorboard使用介绍

浙大疏锦行https://blog.csdn.net/weixin_45655710知识点回顾: tensorboard的发展历史和原理tensorboard的常见操作tensorboard在cifar上的实战:MLP和CNN模型 作业:对resnet18在cifar10上采用微调策略下,用tensorboard监控训练过程…

2023年全国硕士研究生招生考试英语(一)试题总结

文章目录 题型与分值分布完形填空错误 1:考察连词 or 前后内容之间的逻辑关系错误2:错误3:错误4:这个错得最有价值,因为压根没读懂错误5:学到的短语: 仔细阅读排序/新题型翻译小作文大作文 题型…

react-数据Mock实现——json-server

什么是mock? 在前后端分离的开发模式下,前端可以在没有实际后端接口的支持下先进行接口数据的模拟,进行正常的业务功能开发 json-server实现数据Mock json-server是一个node的包,可以在不到30秒内获得零编码的完整Mock服务 实现…

使用POI导入解析excel文件

首先校验 /*** 校验导入文件* param file 上传的文件* return 校验结果,成功返回包含成功状态的AjaxResult,失败返回包含错误信息的AjaxResult*/private AjaxResult validateImportFile(MultipartFile file) {if (file.isEmpty()) {return AjaxResult.er…

从0开始学习计算机视觉--Day06--反向传播算法

尽管解析梯度可以让我们省去巨大的计算量,但如果函数比较复杂,对这个损失函数进行微分计算会变得很困难。我们通常会用反向传播技术来递归地调用链式法则来计算向量每一个方向上的梯度。具体来说,我们将整个计算过程的输入与输入具体化&#…

企业流程知识:《学习观察:通过价值流图创造价值、消除浪费》读书笔记

《学习观察:通过价值流图创造价值、消除浪费》读书笔记 作者:迈克鲁斯(Mike Rother),约翰舒克(John Shook) 出版时间:1999年 历史地位:精益生产可视化工具的黄金标准&am…

Day02_C语言IO进程线程

01.思维导图 02.将当前的时间写入到time. txt的文件中,如果ctrlc退出之后,在再次执行支持断点续写 1.2022-04-26 19:10:20 2.2022-04-26 19:10:21 3.2022-04-26 19:10:22 //按下ctrlc停止,再次执行程序 4.2022-04-26 20:00:00 5.2022-04-26 2…

FFmpeg中TS与MP4格式的extradata差异详解

在视频处理中,extradata是存储解码器初始化参数的核心元数据,直接影响视频能否正确解码。本文深入解析TS和MP4格式中extradata的结构差异、存储逻辑及FFmpeg处理方案。 📌 一、extradata的核心作用 extradata是解码必需的参数集合&#xff0…

【CV数据集介绍-40】Cityscapes 数据集:助力自动驾驶的语义分割神器

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…