卷积神经网络的入门基本介绍 | 带你快速上手各种概念【附图解】

news2024/9/9 5:52:14

文章目录

  • 1、简介
  • 2、核心概念
  • 3、关键操作
  • 4、常见架构
  • 5、训练过程
  • 6、重要概念图解⭐
    • 6.1、卷积神经网络工作⭐
    • 6.2、卷积核
    • 6.3、全连接与卷积网络的对比
    • 6.4、池化层
    • 6.5、感受野和卷积堆叠
    • 6.6、神经元计算和激活函数
  • 7、卷积网络可以改进的地方
  • 8、结论

🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎人工智能和前端开发。
🦅个人主页:@逐梦苍穹
📕所属专栏:人工智能
🌻gitee地址:xzl的人工智能代码仓库
✈ 您的一键三连,是我创作的最大动力🌹

1、简介

卷积神经网络(Convolutional Neural Network, CNN)理论知识

卷积神经网络(Convolutional Neural Network,简称CNN)是一种专门用于处理数据具有网格拓扑(如图像)的深度神经网络。
CNN广泛应用于计算机视觉任务,如图像分类、目标检测和图像分割等。

2、核心概念

  1. 卷积层(Convolutional Layer)
    • 卷积层是CNN的核心组件。它使用卷积核(或称滤波器)在输入数据上进行滑动操作,提取特征。
    • 卷积操作本质上是对局部区域进行加权和,这些权重由卷积核参数决定。
    • 卷积层可以减少参数数量,因为卷积核在输入数据上共享参数。
  2. 池化层(Pooling Layer)
    • 池化层用于减少数据的空间尺寸降低计算量防止过拟合
    • 常见的池化操作包括最大池化(Max Pooling)和平均池化(Average Pooling)。
    • 最大池化取池化窗口中的最大值,平均池化取池化窗口中的平均值。
  3. 激活函数(Activation Function)
    • 激活函数用于引入非线性,使模型可以表示更复杂的函数
    • 常用的激活函数包括ReLU(Rectified Linear Unit)、Sigmoid和Tanh。
  4. 全连接层(Fully Connected Layer)
    • 全连接层将前面层的输出展开为一维向量,并通过一个或多个线性层进行处理。
    • 全连接层通常用于分类任务的最后几层,将特征映射到类别空间。
  5. 批量归一化(Batch Normalization)
    • 批量归一化用于加速训练,稳定模型。它在每层之后对每个小批次的输出进行归一化,使其均值为0,方差为1。
  6. 正则化(Regularization)
    • 正则化技术用于防止过拟合。
    • 常用的正则化方法包括L2正则化(权重衰减)和Dropout(随机丢弃部分神经元)。

3、关键操作

  1. 卷积操作
    • 输入数据通常是一个多通道(如RGB图像有三个通道)的三维矩阵。
    • 卷积核也是一个三维矩阵,它在输入数据上进行滑动,每次计算局部区域的加权和。
    • 卷积操作的输出称为特征图(Feature Map)。
  2. 步幅(Stride)
    • 步幅是卷积核在输入数据上滑动的步长。
    • 较大的步幅可以减少特征图的尺寸。
  3. 填充(Padding)
    • 填充是在输入数据的边缘添加额外的像素,通常为零值。
    • 填充可以保持特征图的空间尺寸,使得边缘信息不丢失。

4、常见架构

  1. LeNet
    • LeNet是最早的CNN之一,最初用于手写数字识别。
    • 结构简单,包括多个卷积层、池化层和全连接层。
  2. AlexNet
    • AlexNet在ImageNet竞赛中取得了突破性的成绩,推动了深度学习的发展。
    • 采用较深的网络结构,引入了ReLU激活函数和Dropout正则化。
  3. VGGNet
    • VGGNet通过使用多个小卷积核(3x3)堆叠来增加网络深度。
    • 结构统一,便于理解和实现。
  4. ResNet
    • ResNet引入了残差连接(Residual Connections),解决了深层网络训练困难的问题。
    • 残差连接允许梯度直接通过跳跃层传播,有助于训练更深的网络。
  5. Inception
    • Inception网络通过并行的多尺度卷积核和池化操作提取特征。
    • Inception模块有效地减少了计算量和参数数量。

5、训练过程

  1. 前向传播(Forward Propagation)
    • 输入数据通过网络的每一层,逐层计算输出,直到得到最终的预测结果。
  2. 损失计算(Loss Calculation)
    • 通过损失函数计算预测结果与真实标签之间的误差。
  3. 反向传播(Backward Propagation)
    • 计算损失相对于每个参数的梯度,使用链式法则逐层传播梯度。
  4. 参数更新(Parameter Update)
    • 使用优化算法(如SGD、Adam)更新模型参数,减小损失。

6、重要概念图解⭐

6.1、卷积神经网络工作⭐

这里以输入汽车数据为例子,输入层输入数据集之后,经由卷积层、池化层、全连接层之后,到达输出层,此时经过训练,完成汽车品牌分类。
image.png
上图的卷积层

输入图片通过多个卷积核(滤波器),提取出特征图(红色矩形表示)。
卷积操作在图片的局部区域内滑动,并进行加权和运算,从而提取特征。

下图则强调了卷积操作在多尺度特征提取的作用。
卷积核(滤波器)在图片的不同局部区域滑动,提取出多种尺度的特征图
(红色和蓝色矩形表示不同尺度的特征图)
image.png
全连接层

多尺度特征图被展开成一维向量,并传递到全连接层。
全连接层对这些多尺度特征进行组合和处理(绿色矩形表示全连接层)。
图中展示了从“局部”到“整体”的特征组合过程,强调了全连接层如何整合多尺度特征进行最终的分类。

6.2、卷积核

卷积核
中间部分展示了三个不同的卷积核(滤波器):

  1. 第一个卷积核:用于提取边缘特征。具体的卷积核参数为[[1, 2, 1], [0, 0, 0], [-1, -2, -1]],这类似于Sobel算子,用于检测垂直边缘。
  2. 第二个卷积核:用于提取不同方向的边缘特征。具体的卷积核参数为[[-1, 0, 1], [-2, 0, 2], [-1, 0, 1]],这也是Sobel算子的一种,用于检测水平边缘。
  3. 第三个卷积核:用于模糊图像。具体的卷积核参数为[[0.1, 0.1, 0.1], [0.1, 0.2, 0.1], [0.1, 0.1, 0.1]],这是一个简单的模糊滤波器。

卷积结果
右边展示了通过这三个卷积核对原始图片进行卷积操作后的结果:

  1. 使用第一个卷积核提取出的垂直边缘特征图。
  2. 使用第二个卷积核提取出的水平边缘特征图。
  3. 使用第三个卷积核模糊处理后的图像。

image.png
下图则是演示滑动效果:
image.png
卷积操作
中间部分展示了卷积操作的过程:

  1. 卷积核在输入图像上滑动,每次在局部区域进行加权和运算。
  2. 滑动窗口(卷积核)逐步覆盖输入图像的不同部分。

6.3、全连接与卷积网络的对比

全连接网络:
image.png
image.png
image.png
卷积网络:
image.png
对比分析:

  1. 连接方式
    • 全连接层:每个神经元与前一层的每个神经元相连,捕捉输入的全局信息。这种连接方式会产生大量的参数。
    • 卷积层:每个神经元仅与前一层的局部区域相连,捕捉局部特征,并通过参数共享减少了参数数量。
  2. 参数数量
    • 全连接层:参数数量非常庞大,尤其是在处理高维输入数据时。
    • 卷积层:通过参数共享和局部连接,参数数量显著减少,更加高效。
  3. 特征提取
    • 全连接层:对输入数据进行全局特征提取,适用于处理展平后的数据。
    • 卷积层:对输入数据进行局部特征提取,保留空间结构和位置信息,适用于处理图像等具有空间结构的数据。
  4. 空间平移不变性
    • 全连接层:没有空间平移不变性,输入数据的微小变化可能导致输出的较大变化。
    • 卷积层:具有空间平移不变性,输入图像的平移不会显著影响特征图。

总结:

  • 全连接层:适用于对输入数据进行全局特征提取,参数较多,计算量较大。
  • 卷积层:适用于对图像等具有空间结构的数据进行局部特征提取,参数较少,具有空间平移不变性。

6.4、池化层

池化层的优势——降低数据维度、减少训练参数、避免过拟合:
image.png

6.5、感受野和卷积堆叠

卷积操作
image.png
感受野:
image.png
卷积堆叠:
image.png
总结:

  1. 卷积操作
    • 卷积操作通过卷积核在输入图像上滑动,提取局部特征。卷积核的值用于计算输入图像中每个感受野区域的加权和。
  2. 感受野
    • 感受野是卷积核作用的局部区域。通过不断滑动卷积核,可以覆盖整个输入图像,生成特征图。
  3. 多层卷积堆叠
    • 多层卷积的堆叠允许模型逐层提取特征,从低级特征(如边缘)到高级特征(如复杂形状和对象)。这种层次化的特征提取方式使得卷积神经网络能够处理复杂的视觉任务。

6.6、神经元计算和激活函数

神经元计算

  1. 神经元接收多个输入特征,通过各自的权重加权,然后将结果相加,最后通过激活函数得到输出。
  2. 这种计算方式允许神经网络通过调整权重和偏置来学习数据中的模式。

image.png激活函数的作用

  1. 激活函数引入非线性,使得神经网络能够表示和学习复杂的非线性函数。
  2. ReLU是最常用的激活函数之一,具有计算简单和缓解梯度消失问题的优点。

ReLU激活函数

  1. ReLU函数将输入中的负值全部变为0,正值保持不变,有助于提高模型的训练效率和性能。
  2. ReLU在特征图上的应用可以清楚地看到其对负值的抑制作用,这有助于提高模型的稀疏性和鲁棒性。

image.png

7、卷积网络可以改进的地方

①级联和初始化方法
image.png
②激活函数的改进
image.png

8、结论

卷积神经网络通过引入局部连接、参数共享和池化操作,有效地处理了高维数据(如图像)中的特征提取和分类任务。
其多层次的特征表示使得CNN在图像处理、语音识别和自然语言处理等领域取得了显著的成功。
理解CNN的基本概念和操作是进一步研究和应用深度学习的基础。

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

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

相关文章

清爽简洁!这可能是开源界功能最强大的项目开发管理系统

💂 个人网站: IT知识小屋🤟 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 文章目录 写在前面项目简介项目特点设计思想技术栈项目展示项目获取 写在前…

(免费领源码)java+SpringBoot+mysql车辆故障报修系统26719-计算机毕业设计项目选题推荐

摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,车辆维修行业当然也不例外。车辆故障报修系统是以实际运用为开发背景,运用软件工程原理和开发方法&#xff…

SpringBoot内置Tomcat启动原理

文章目录 概要整体架构流程技术细节 概要 Springboot 内嵌 tomcat是如何启动的 ? 整体架构流程 springboot启动 ---- autoconfiguration ---- tomcat springboot在启动后,通过context 确定是 org.springframework.boot.web.servlet.context.Annotatio…

微软蓝屏事件:全球网络安全与系统稳定性的警示

文章目录 每日一句正能量前言探讨软件更新流程中的风险管理和质量控制机制软件更新的风险风险管理策略质量控制措施测试流程缺陷识别实施质量控制结论 提供预防类似大规模故障的最佳方案或应急响应对策设计冗余系统实施灾难恢复计划建立高可用架构应急响应对策利用自动化工具和…

DRAM的可靠性受什么因素影响

挑战 随着IC尺寸的不断减小,它们变得更容易受到多种环境因素的损害,尤其是对于放置在高温或低温且空气中含有微粒的恶劣环境中的系统。在远程维护受限的室外偏远地区设置的系统特别容易受到攻击。 IC质量不均。晶圆内的IC可能不一定具有相同的质量。一个…

Coggle数据科学 | Kaggle赛题总结:AI数学奥赛挑战赛

本文来源公众号“Coggle数据科学”,仅用于学术分享,侵权删,干货满满。 原文链接:Kaggle赛题总结:AI数学奥赛挑战赛 赛题名称:AI Mathematical Olympiad - Progress Prize 1 赛题类型:大模型、…

Python开源项目月排行 2024年6月

#2024年6月2024年7月1日1wxPython一个基于C的跨平台GUI工具包wxWidgets的Python封装库。它提供了丰富的GUI组件,如按钮、文本框、菜单、对话框等,使得开发者能够轻松构建功能齐全且用户体验良好的桌面应用。wxPython的设计目标是尽可能地利用操作系统的原…

【中项】系统集成项目管理工程师-第8章 信息安全工程-8.2信息安全系统

前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…

OAK相机扩展NDVI功能检测植物健康情况

什么是NDVI? 首先,NDVI代表归一化差异植被指数。这听起来很花哨,但这实际上只是衡量植物健康的一种高级方法。NDVI摄像机使用可见光和近红外 (NIR) 光捕获图像。健康的植物反射更多的近红外光并吸收更多的可见光,而生病的植物反射…

spring源码 循环依赖

spring框架两大核心:IOC和AOP IOC(Inverse of Control)控制反转 将对象的创建权交给 Spring 容器去创建,利用了工厂模式将对象交给容器管理,只需要在spring配置文件中配置相应的bean,以及设置相关的属性,让spring容器…

社区养老服务小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,服务人员管理,服务产品管理,服务预约管理,服务状态管理,服务退订管理,活动管理,视频管理 微信端账号功能包…

单线程 和多线程区别,看打印输出1000个数字效果

执⾏过程: 加载func() -> 执⾏main -> 创建⼦线程t -> ⼦线程t启动 -> 执⾏func中的内容 |-> 继续执⾏main from threading import Thread #此线程不用安装自带。T是大写注意哟 def func():for i in range(1000):print(func,i) #定义一个函数打印 if __name__ …

因子分析★★★★★

该博客为个人学习清风建模的学习笔记,代码全部摘自清风老师,部分课程可以在B站:【强烈推荐】清风:数学建模算法、编程和写作培训的视频课程以及Matlab等软件教学_哔哩哔哩_bilibili 该博文可以与主成分分析一起看,博主…

Microsoft Print To PDF如何打印到网络地址

正常情况下,Microsoft Print To PDF是仅提供本地PDF打印功能的。不过还是可以通过配置,打印到网络地址。 这里需要用到文件共享功能 假设我们要使用Microsoft Print To PDF从A电脑打印到B电脑的D:\output文件夹。操作方法如下 1、打开D:\output文件夹属…

结合Java代码实现RocketMQ的生产与消费消息

前言 在前面的文章中,已经详细介绍并使用到了消息生产者,消息消费者,broker等集群相关的知识,这篇文章介绍一下其他的小组件以及使用Java代码实现生产者对消息的生成,消费者消费消息等知识点。 希望这篇文章能帮助到…

【信创】samba的命令行使用 _ 统信 _ 麒麟 _ 中科方德

原文链接:【信创】samba的命令行使用 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天给大家带来一篇关于在信创终端操作系统上使用Samba命令操作的文章。Samba是一种用于实现文件和打印共享的免费软件,它允许不同操作系统&#xf…

《昇思25天学习打卡营第27天》

今天我们继续Diffusion扩散模型的后半部分学习 条件U-Net 网络构建过程如下: 首先,将卷积层应用于噪声图像批上,并计算噪声水平的位置 接下来,应用一系列下采样级。每个下采样阶段由2个ResNet/ConvNeXT块 groupnorm attentio…

JAVA(IO流-字符流)day 7.30

ok了家人们今天继续学习IO流, 一.字符集 使用字节流输出中文可能有乱码。 因为每次读取的字节没有完全读取一个字的字节。 二.字符流 2.1 字符输出流【Writer】(抽象类) Writer是所有字符流的超类(父类) 字符输出…

蚓链数字化营销系统:“爆省”!“爆赚”!“爆值”!“爆快”!“爆增”!“爆享”!

随着信息技术的飞速发展和消费者行为的深刻变化,数字化营销已成为企业在市场竞争中取得优势的关键手段。蚓链数字化营销系统凭借其创新的功能和策略,为企业带来了一系列“爆”优势! “按效果付费--信息化建设费用爆省”! “按效果…

Win11没有记事本怎么办?更新至win11无法右键新建txt文件?

博主更新至Win11系统后目前用了不到一个月时间,今天突然发现 鼠标右键无法新建txt文件 了,一开始还以为Win11系统不支持txt类型文件,遂查找各种网上恢复教程。本文综合了多篇教程的方法,力求一文解决所有可能出现的情况&#xff0…