卷积神经网络 - 卷积层

卷积神经网络一般由卷积层、汇聚层和全连接层构成,本文我们来学习卷积层。

卷积层(Convolutional Layer)是卷积神经网络(CNN)的核心组件,专门用于处理具有网格结构的数据(如图像、音频、时间序列等)。它的核心思想是通过局部连接权重共享,高效提取数据的局部特征。

一、核心思想:用“滑动窗口”提取局部特征

假设你正在观察一张猫的图片:

  • 全连接层:需要将整张图片的像素展开成一维向量,每个像素与神经元独立连接,导致参数爆炸。

  • 卷积层:像用放大镜扫描图片,每次只观察一个小窗口(如3×3的区域),通过重复使用同一组权重(卷积核)扫描全图。

类比
卷积层相当于一组“可学习的特征探测器”,每个探测器(卷积核)专门捕捉一种局部模式(如边缘、纹理、颜色过渡等)。

卷积层在CNN中的输出通常用一个三维张量表示,其结构为 (H, W, D):

  • H(高度)和 W(宽度):对应卷积后得到的特征图的空间尺寸。这个尺寸取决于原始输入图像的大小、卷积核尺寸、步幅(stride)和填充(padding)策略。
  • D(深度或通道数):对应卷积层使用的滤波器(卷积核)的个数。每个滤波器在整个输入上滑动后会生成一个二维特征图,这些二维特征图堆叠起来形成第三个维度。

举个例子:

假设输入是一张尺寸为32×32的RGB彩色图像(即32×32×3),我们在卷积层中使用了16个大小为5×5的卷积核(每个卷积核的深度与输入通道一致,即5×5×3)。如果采用适当的填充(例如“same”填充)和步幅为1,那么卷积层输出的特征图尺寸依然为32×32。因此,输出张量的尺寸就是 32×32×16。

这种三维表示方式能保留图像的空间结构(高度和宽度),同时通过多个滤波器提取不同的局部特征(深度),为后续的层提供丰富的特征信息。

卷积层的三维结构表示如下:

二、卷积层的数学操作

1. 单通道输入(灰度图像)
  • 输入矩阵:X(尺寸 H×W,如5×5)

  • 卷积核:K(尺寸 Kh×Kw​,如3×3)

  • 输出特征图:Y(尺寸 (H−Kh+1)×(W−Kw+1))

计算示例
输入矩阵:

[[1, 2, 3, 4, 5],[6, 7, 8, 9, 10],[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25]]

卷积核:

[[1, 0, -1],[1, 0, -1],[1, 0, -1]]

输出计算(以左上角3×3区域为例):

Y[0,0]=1×1+2×0+3×(−1)+6×1+7×0+8×(−1)+11×1+12×0+13×(−1)=−24

负值表示检测到从亮到暗的垂直边缘

2. 多通道输入(如RGB图像)
  • 输入:Cin​ 个通道的矩阵(尺寸 H×W×Cin​)

  • 卷积核:每个输出通道对应 Cin​ 个核(尺寸 Kh×Kw)

  • 输出:CoutCout​ 个特征图(尺寸 H′×W′×Cout)

参数计算
参数总量 = Kh×Kw×Cin×Cout+Cout(含偏置项)

三、特征映射的概念

卷积层中的“特征映射”(Feature Map)是指通过卷积核(滤波器)对输入数据进行局部运算后产生的一组输出矩阵,每个矩阵对应一种特定的特征响应。通俗地讲,可以这样理解:

  • 局部响应:每个卷积核在输入图像上滑动,对每个局部区域计算加权和(加上偏置,并通过激活函数处理),这个计算结果反映了该区域是否包含卷积核所“关注”的特定模式(例如边缘、纹理、角点等)。

  • 特征“激活”图:卷积核得到的输出矩阵就是一个特征映射。矩阵中每个数值代表在对应位置上该特征出现的强度。比如,一个专门检测垂直边缘的滤波器,会在图像中存在垂直边缘的区域输出较高的激活值。

  • 多通道组合:通常一个卷积层会有多个卷积核,每个核负责提取不同的特征。这样,该层的输出就不只是一个矩阵,而是多个矩阵的组合(通道),每个通道对应一个特征映射,整体提供了丰富的局部特征信息。

  • 空间信息保留:特征映射保留了输入图像的空间结构,只不过经过滤波器转换成了另一种表示。这种空间保持性使得后续层能够进一步组合这些局部特征,形成更高层次的语义理解。

总之,特征映射就是卷积层对输入局部区域进行特定模式检测后输出的“图像”,反映了卷积核在整个输入上的响应情况。这一过程使得网络能从原始像素中自动学习并提取有意义的局部特征,为进一步的图像理解和分类提供基础。

四、卷积层的核心特性

1. 局部连接(Local Connectivity)
  • 原理:每个神经元仅连接输入的一个局部区域。

  • 优势

    • 减少参数量(如3×3卷积核仅需9个权重,而全连接层需连接所有像素)。

    • 聚焦局部特征,避免全局噪声干扰。

2. 权重共享(Weight Sharing)
  • 原理:同一卷积核在不同位置重复使用。

  • 优势

    • 参数效率极高(1个核扫描全图)。

    • 捕捉平移不变性(无论猫耳朵在图像左侧还是右侧,同一核均可检测)。

3. 平移不变性(Translation Invariance)
  • 原理:物体在图像中的位置变化不影响检测结果。

  • 实现:通过滑动窗口覆盖所有位置,同一核在不同位置激活相同特征。

五、卷积层的实际效果

1. 浅层卷积:边缘与纹理检测
  • 示例核

    • 水平边缘检测:[[1,1,1], [0,0,0], [-1,-1,-1]]

    • 垂直边缘检测:[[1,0,-1], [1,0,-1], [1,0,-1]]

2. 深层卷积:抽象语义提取
  • 组合低级特征:如通过边缘检测结果组合出车轮、窗户等物体部件。

  • 高级语义:最终识别出“汽车”“人脸”等复杂概念。

3. 特征图可视化
  • 浅层特征:显示边缘、颜色块等低级模式。

  • 深层特征:对应抽象形状或物体部件。

六、卷积层与全连接层的对比

特性卷积层全连接层
连接方式局部连接 + 权重共享全局连接 + 独立参数
参数量与输入尺寸无关与输入尺寸成正比
空间信息保留保留多维结构(如图像的2D布局)展平为一维向量(丢失结构)
适用场景图像、视频、语音等网格数据简单分类任务

七、卷积层的核心价值

  1. 高效特征提取:通过滑动窗口和权重共享,以极少的参数捕捉局部模式。

  2. 层次化学习:浅层提取边缘/纹理,深层组合抽象语义。

  3. 空间不变性:无论目标在图像中的位置如何,均能稳定检测。

实际应用建议

  • 图像分类:堆叠多个卷积层,逐步抽象特征。

  • 目标检测:用卷积层生成候选区域(如Faster R-CNN)。

  • 语义分割:全卷积网络(FCN)保持空间分辨率。

最终理解
卷积层是CNN的“智能扫描仪”,通过可学习的局部模板,在数据中逐段寻找重复出现的模式。这种设计既保留了空间/时序结构,又避免了参数冗余,是处理网格化数据的基石。

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

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

相关文章

Vue3全局化配置(ConfigProvider)

效果如下图: 在线预览 APIs ConfigProvider 参数说明类型默认值theme主题对象Theme{}abstractboolean是否不存在 DOM 包裹元素truetagstringConfigProvider 被渲染成的元素,abstract 为 true 时有效‘div’ Theme Type 名称说明类型默认值common?全…

LabVIEW烟气速度场实时监测

本项目针对燃煤电站烟气流速实时监测需求,探讨了静电传感器结构与速度场超分辨率重建方法,结合LabVIEW多板卡同步采集与实时处理技术,开发出一个高效的烟气速度场实时监测系统。该系统能够在高温、高尘的复杂工况下稳定运行,提供高…

若依excel工具类导出excel模板数据带下拉映射

导出模板代码&#xff0c;原理是combo属性 传递一个数组 里面是label下拉数组。 Overridepublic void downloadTemplate(HttpServletResponse response) {ExcelUtil<ThMachineryManageExcel> util new ExcelUtil<>(ThMachineryManageExcel.class);List<SysDist…

3.8 Spring Boot监控:Actuator+Prometheus+Grafana可视化

在Spring Boot应用中&#xff0c;通过整合Actuator、Prometheus和Grafana可以构建完整的监控体系&#xff0c;实现指标采集、存储和可视化。以下是具体实现步骤&#xff1a; 一、Spring Boot Actuator 配置 作用&#xff1a;暴露应用健康指标、性能数据等监控端点。 1. 添加依…

启幕数据结构算法雅航新章,穿梭C++梦幻领域的探索之旅——二叉树序列构造探秘——堆的奥义与实现诗篇

人无完人&#xff0c;持之以恒&#xff0c;方能见真我&#xff01;&#xff01;&#xff01; 共同进步&#xff01;&#xff01; 文章目录 一、堆的定义与结构二、堆的实现1.堆的初始化和销毁堆的初始化堆的销毁 2.向上调整算法和入堆向上调整算法入堆 3.向下调整算法和出堆顶数…

“Failed to Load SteamUI.dll” 错误详解:全面解析与高效解决方案,助你快速修复 Steam 客户端问题

在使用 Steam 客户端时&#xff0c;你是否遇到过 failed to load steamui.dll 错误&#xff1f;这个令人头疼的问题可能导致 Steam 无法正常启动&#xff0c;影响游戏体验。Failed to load steamui.dll 错误通常与文件损坏、系统配置或软件冲突有关&#xff0c;但无需担心&…

STM32 DAC详解:从原理到实战输出正弦波

目录 一、DAC基础原理1.1 DAC的作用与特性1.2 DAC功能框图解析 二、DAC配置步骤2.1 硬件配置2.2 初始化结构体详解 三、DAC数据输出与波形生成3.1 数据格式与电压计算3.2 正弦波生成实战3.2.1 生成正弦波数组3.2.2 配置DMA传输3.2.3 定时器触发配置 四、常见问题与优化建议4.1 …

CNN 稠密任务经典结构

FCN UNet FPN FCNUNETFPNpadding无&#xff08;逐渐变小&#xff09; 有&#xff08;左右对称&#xff09;上采样 双线性双线性 最近邻跳跃链接 相加 Cropcat 1x1卷积相加 三个网络差不多&#xff0c;UNet名字最直观&#xff0c;后续流传…

AI学习第二天--监督学习 半监督学习 无监督学习

目录 1. 监督学习&#xff08;Supervised Learning&#xff09; 比喻&#xff1a; 技术细节&#xff1a; 形象例子&#xff1a; 2. 无监督学习&#xff08;Unsupervised Learning&#xff09; 比喻&#xff1a; 技术细节&#xff1a; 形象例子&#xff1a; 3. 半监督学…

Elasticsearch:为推理端点配置分块设置

推理端点对一次可处理的文本量有限&#xff0c;具体取决于模型的输入容量。分块&#xff08;Chunking&#xff09; 是指将输入文本拆分成符合这些限制的小块的过程&#xff0c;在将文档摄取到 semantic_text 字段时会进行分块。分块不仅有助于保持输入文本在可处理范围内&#…

Unity打包Android平台调用sherpa-onnx

https://github.com/xue-fei/sherpa-onnx-unity 最初测试了PC的Win和Linux平台&#xff0c;直接从nuget缓存包中拷贝相关文件&#xff0c;按示例写了语音转文字和文字转语音的测试代码&#xff0c;功能都正常。 然后是Android端&#xff0c;看了示例发现有编译好的jni.so之类的…

传统会议室接入神旗视讯-2 Android会议室大屏设备 (Maxhub, Newline, TCL等)

随着企业对视频会议安全性、稳定性和统一管理的需求日益增长&#xff0c;私有化视频会议系统凭借其全平台兼容性、高安全性部署和智能化会控能力&#xff0c;成为政企客户的核心选择。Android会议室大屏设备&#xff08;Maxhub, Newline, TCL等&#xff09;作为国内主流智能会议…

个人blog系统 前后端分离 前端js后端go

系统设计&#xff1a; 1.使用语言&#xff1a;前端使用vue&#xff0c;并使用axios向后端发送数据。后端使用的是go的gin框架&#xff0c;并使用grom连接数据库实现数据存储读取。 2.设计结构&#xff1a; 最终展示&#xff1a;仅展示添加模块&#xff0c;其他模块基本相似 前…

分支结构- P5717-三角形分类-第二十一天

洛谷题单 第二十一天&#xff1a;3.18&#xff08;周二&#xff09; 题目&#xff1a;分支结构–P5717 代码 #include <stdio.h>//本题目卡住的点&#xff1a;1.逻辑问题 2.对if-else if-else结构的运行理解&#xff0c;导致了逻辑混乱//注意&#xff1a;程序会组个…

华为OD机试 - 最长回文字符串 - 贪心算法(Java 2024 E卷 100分)

题目描述 如果一个字符串正读和反读都一样(大小写敏感),则称之为一个「回文串」。例如: level 是一个「回文串」,因为它的正读和反读都是 level。art 不是一个「回文串」,因为它的反读 tra 与正读不同。Level 不是一个「回文串」,因为它的反读 leveL 与正读不同(因大小…

C语言文件操作入门

本节重点 理解文件的形式与基本概念二进制文件与文本文件文件的打开与关闭文件读写函数、文件缓冲区 正文开始--------------------------------------------------------------------------------------------------------------------- 一、为什么使用文件 程序运行时数据存…

Doris:联邦认证

LDAP​ 接入第三方 LDAP 服务为 Doris 提供验证登录和组授权服务。 LDAP 验证登录​ LDAP 验证登录指的是接入 LDAP 服务的密码验证来补充 Doris 的验证登录。Doris 优先使用 LDAP 验证用户密码&#xff0c;如果 LDAP 服务中不存在该用户则继续使用 Doris 验证密码&#xff…

stm32第六天继电器

一&#xff1a;继电器 1.继电器的工作原理 继电器是一个电控开关&#xff0c;工作原理基于电磁感应&#xff0c;继电器包括一个电磁线圈和一组触点。常用于控制高电流或高电压的电路&#xff0c;例如自动控制原理&#xff0c;电力系统和自动化设备中&#xff0c;由于可靠性和电…

Vue渲染函数 - render 函数

文章目录 Vue渲染函数 - render 函数1. 什么是 render 函数2、页面展示过程3、render 函数的参数4. 如何使用&#xff08;1&#xff09;基本渲染&#xff08;2&#xff09;传递属性和事件&#xff08;3&#xff09;条件渲染 5. render 函数的实际使用6.View Design 组件中的使用…