卷积神经网络 - 卷积层(具体例子)

news2025/3/22 18:17:15

为了更一步学习卷积神经网络之卷积层,本文我们来通过几个个例子来加深理解。

一、灰度图像和彩色图像的关于特征映射的例子

下面我们通过2个例子来形象说明卷积层中“特征映射”的概念,一个针对灰度图像,一个针对彩色图像。

例子 1:灰度图像的特征映射

假设

  • 输入:一幅 5×5 的灰度图像,像素值如下
  • 卷积核(滤波器):一个简单的边缘检测核

过程

  1. 卷积核在图像上以一定步幅滑动(这里采用步长为1),每次取出 3×3 的局部区域。
  2. 对每个局部区域,将该区域的像素与卷积核中对应的权重逐元素相乘,再求和,得到一个输出值。
  3. 所有输出值排列成一个新的矩阵,这个矩阵就是该卷积核对输入图像生成的“特征映射”。例如,如果在某个区域上存在明显的水平边缘,那么这个局部区域经过卷积后会产生较大的正值或负值,从而在特征映射中形成明显的响应。

直观理解

  • 这个卷积核专门检测左右方向上(水平)的亮度差异,能“捕捉”到边缘信息。
  • 在输出的特征映射中,响应值较大的位置表示原始图像中在这些位置出现了该卷积核关注的特征(例如边缘)。

例子 2:彩色图像的特征映射

假设

  • 输入:一张 32×32 的彩色图像(RGB),其形状为 32×32×3。这里每个像素有红、绿、蓝三个通道的值。
  • 卷积层:采用一个 3×3 的卷积核,但由于输入有三个通道,卷积核的尺寸为 3×3×3。例如,我们设计一个检测边缘的滤波器,其三个通道的权重可能相同,也可能不同(设计者可以根据任务调整)。假设我们用下面的核来检测垂直边缘:

过程

  1. 卷积核同时在三个通道上执行卷积操作。具体来说,对于图像上某个局部区域,将三个通道分别与对应的 3×3 核进行逐元素乘积求和,然后将三个通道的结果相加,再加上偏置(如果有)并通过激活函数,生成该位置上的输出值。
  2. 输出的结果是一个二维的特征图,其每个值表示该局部区域中是否存在垂直边缘这一特征。
  3. 如果卷积层有多个卷积核(例如16个),则会产生16个不同的特征映射,每个映射对应一个卷积核提取的不同特征。

直观理解

  • 跨通道信息整合:卷积核的每个通道参数结合了红、绿、蓝三种颜色信息,帮助网络同时考虑颜色和形状特征。
  • 局部特征检测:与灰度图像的情况类似,每个卷积核只关注图像的一小块区域,并产生该区域的特征响应,这些响应通过不同核的堆叠构成了丰富的特征表示,供后续层进一步抽象和分类。

总结

  • 灰度图像:输入只有一个通道,卷积核在每个局部区域产生一个数值(例如边缘强度),所有这些数值构成一个二维矩阵,即特征映射。
  • 彩色图像:输入有RGB三个通道,卷积核尺寸为3×3×3,它会同时处理三个通道信息,并将它们组合成一个响应值,从而得到二维特征图;多个卷积核可以生成多个特征映射,进一步丰富图像特征的表达。

这种特征映射的思想是卷积层的核心:通过局部、可重复的运算自动提取输入数据中具有判别意义的特征,从而为后续的分类或检测任务提供基础。

二、卷积层输出 𝑃 个特征映射的例子

我们可以通过一个具体的二维卷积示例来说明卷积层输出 PPP 个特征映射时的三维结构表示和过程。下面以一个简单的灰度图像为例,假设我们希望通过卷积层输出 P=2P=2P=2 个特征映射,也就是使用两个不同的卷积核来提取不同的局部特征。

示例设置

输入图像:
我们有一幅 5×5 的灰度图像 I:

这里每个元素表示一个像素的灰度值。

卷积核:
我们设计两个 3×3 的卷积核(不考虑翻转问题,此处直接使用交叉相关运算):

  • 卷积核 K1:

    这个核通常用于检测图像中垂直边缘(例如:当局部区域从左到右有较大变化时,输出值会较大)。

  • 卷积核 K2:

    这个核用于检测水平边缘,即当图像上方和下方的像素值有明显差异时会产生较大的响应。

卷积方式:
采用无填充(valid convolution)和步幅为1。由于输入尺寸为5×5,卷积核尺寸为3×3,输出尺寸为 (5−3+1)×(5−3+1)=3×3。

计算过程

对于 K1​ 得到的特征映射 O1

我们逐个计算 O1(i,j) 的值。

  1. 输出 (1,1)
    取图像的子矩阵(行1–3,列1–3):

    卷积计算:

  2. 输出 (1,2)
    子矩阵(行1–3,列2–4):

    计算:

  3. 输出 (1,3)
    子矩阵(行1–3,列3–5):

    计算:

  4. 输出 (2,1)
    子矩阵(行2–4,列1–3):

    计算:

  5. 输出 (2,2)
    子矩阵(行2–4,列2–4):

    计算:

  6. 输出 (2,3)
    子矩阵(行2–4,列3–5):

    计算:

  7. 输出 (3,1)
    子矩阵(行3–5,列1–3):

    计算:

  8. 输出 (3,2)
    子矩阵(行3–5,列2–4):

    计算:

  9. 输出 (3,3)
    子矩阵(行3–5,列3–5):

    计算:

所以,卷积核 K1 生成的特征映射 O1 为:

对于 K2​ 得到的特征映射 O2

同样计算,使用卷积核 K2​:

类比K1的算法,同理可以得出,卷积核 K2​ 生成的特征映射 O2 为:

3. 输出的三维结构表示

由于我们有两个卷积核,最终卷积层的输出由两个特征映射组成,可以将它们堆叠在一起形成一个三维张量。假设这两个特征映射分别为 O1​ 和 O2,那么输出张量形状为:

3×3×2,

其中前两个维度表示空间尺寸,第三个维度(通道数)即为特征映射的个数 P=2。

4. 总结

  • 目的:通过卷积层,我们希望利用多个卷积核分别提取输入图像中不同类型的局部特征,每个卷积核产生一个特征映射。
  • 例子说明:我们用一个 5×5 灰度图像和两个 3×3 卷积核做了具体计算,得到两个 3×3 的特征映射 O1 和 O2。将它们堆叠后就形成了一个 3×3×2 的输出张量。
  • 直观理解:每个特征映射都是卷积核在整个输入上滑动计算得到的局部响应图,它们共同构成了卷积层的输出,提供了丰富的特征信息供后续网络层进一步处理。

这种示例不仅展示了卷积运算的计算过程,也帮助理解卷积层如何通过多个滤波器输出多个特征映射,从而捕捉图像中多样化的局部模式。

三、卷积层中的切片举例

在卷积神经网络中,“切片”通常指的是从输入张量中按照卷积核大小提取出局部区域(即局部感受野)的操作。换句话说,当卷积核在输入上滑动时,我们实际上是在“切出”一个个小块,每个小块就是一个“切片”,然后用该切片与卷积核做逐元素乘积和求和。

通俗解释

  • 局部感受野:想象你有一张大照片,而你用一个固定大小的“窗口”在照片上扫描。每次你把窗口移动到照片的某个部分,这个窗口内的区域就是一个“切片”。卷积操作就是在每个切片上进行计算(乘积求和),检测该区域内是否存在某种特定模式。

  • 多通道情况:如果图像是彩色的(例如RGB图像),每个切片不仅包含空间区域的信息,还包含多个通道的数据。假设输入图像尺寸为 H×W×C,当你用大小为 k×k 的卷积核时,每个切片实际上是一个 k×k×C 的小块。卷积核也会有相同的深度,然后对每个切片进行计算。

具体例子

假设有一幅灰度图像(单通道),尺寸为5×5,如下:

使用一个3×3的卷积核 K:

切片操作示例

  • 当卷积核滑动到图像左上角时,它覆盖的子矩阵就是:

    在这一步,计算卷积核与这个切片的元素逐一乘积之和,就得到输出特征映射中(1,1)的位置上的值。

  • 当卷积核继续向右移动一格,提取新的切片:

    同样进行乘积求和,得到输出特征映射中(1,2)的位置的值。

最终,卷积核在整个图像上滑动,提取出多个 3×3 的切片,每个切片都参与计算,最终形成一个输出矩阵(特征映射)。

对于彩色图像的情况: 假设输入是一幅彩色图像,尺寸为 32×32×3,使用一个 3×3 卷积核(实际尺寸为 3×3×3),每次提取的切片是一个包含RGB三个通道的3×3块。对这个切片,卷积核在每个通道做逐元素乘积求和,再将三个通道的结果加在一起(通常再加上偏置和经过激活函数),生成该位置的输出值。

总结

“切片”是指卷积过程中,从输入图像中按卷积核大小提取局部区域的操作。每个提取出来的小区域都被称为一个切片,然后与卷积核进行运算得到一个输出值,这些输出值排列起来就形成了整个卷积层的特征映射。这一过程保留了输入的空间结构,同时通过局部运算提取出了有用的特征信息。

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

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

相关文章

测试Claude3.7 sonnet画蛋白质

测试Claude3.7 sonnet画蛋白虽然画的很粗糙,但是大致画了出来

java项目之基于ssm的游戏攻略网站(源码+文档)

项目简介 游戏攻略网站实现了以下功能: 管理员主要负责填充图书和其类别信息,并对已填充的数据进行维护,包括修改与删除,管理员也需要审核老师注册信息,发布公告信息,管理自助租房信息等。 💕…

本地基于Ollama部署的DeepSeek详细接口文档说明

前文,我们已经在本地基于Ollama部署好了DeepSeek大模型,并且已经告知过如何查看本地的API。为了避免网络安全问题,我们希望已经在本地调优的模型,能够嵌入到在本地的其他应用程序中,发挥本地DeepSeek的作用。因此需要知…

python NameError报错之导库报错

在日常代码编写中,经常出现如 图1 一样的报错,在代码多时很难找到问题,但翻看代码后就会发现是因为未导库, 图1 报错 代码: time.sleep(0.1) print("time库") 解决方法: 第一步:在代码中添加导库代码 import time #…

Web3网络生态中数据保护合规性分析

Web3网络生态中数据保护合规性分析 在这个信息爆炸的时代,Web3网络生态以其独特的去中心化特性,逐渐成为数据交互和价值转移的新平台。Web3,也被称为去中心化互联网,其核心理念是将数据的控制权归还给用户,实现数据的…

C++ 语法之数组指针

一维数组: 如果我们定义了一个一维数组,那么这个数组名,就是指向第一个数组元素的地址,也即,是整个数组分配的内存空间的首地址。 比如 int a[3]; 定义了一个包含三个元素的数组。因为一个int占4个字节,那…

PLY格式文件如何转换成3DTiles格式——使用GISBox软件实现高效转换

一、概述 在三维GIS和数字孪生领域,3DTiles格式已成为主流的数据格式之一。它由Cesium团队提出,专为大规模3D数据可视化设计,能够高效地加载和展示海量模型数据。而PLY格式则是一种常见的三维模型文件格式,主要用于存储点云数据或…

Java定时任务的三重境界:从单机心跳到分布式协调

《Java定时任务的三重境界:从单机心跳到分布式协调》 本文将以生产级代码标准,揭秘Java定时任务从基础API到分布式调度的6种实现范式,深入剖析ScheduledThreadPoolExecutor与Quartz Scheduler的线程模型差异,并给出各方案的性能压…

【Linux网络】手动部署并测试内网穿透

📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…

java项目之在线购物系统(源码+文档)

项目简介 在线购物系统实现了以下功能: 使用在线购物系统的用户分管理员和用户两个角色的权限子模块。 管理员所能使用的功能主要有:主页、个人中心、用户管理、商品分类管理、商品信息管理、系统管理、订单管理等。 用户可以实现主页、个人中心、我的…

OO_Unit1

第一次作业 UML类图 代码复杂度分析 其中Expr中的toString方法认知复杂度比较高,主要源于多层条件嵌套和分散的字符串处理逻辑,重构时可重点关注这两部分的解耦。 代码量分析 1.”通用形式“ 我觉得我的设计的最大特点就是“通用形式”,具…

重要重要!!fisher矩阵元素有什么含义和原理; Fisher 信息矩阵的形式; 得到fisher矩阵之后怎么使用

fisher矩阵元素有什么含义和原理 目录 fisher矩阵元素有什么含义和原理一、对角线元素( F i , i F_{i,i} Fi,i​)的含义与原理二、非对角线元素( F i , j F_{i,j} Fi,j​)的含义与原理Fisher 信息矩阵的形式矩阵的宽度有位置权重数量决定1. **模型参数结构决定矩阵维度**2.…

[已解决]jupyter notebook报错 500 : Internal Server Error及notebook闪退

jupyter notebook出现如上图的报错,可以在黑色窗口中检查是为什么报错。 我检查发现是nbconvert导致的问题,卸载重装nbconvert。 但是这时候出现,jupyter notebook闪退问题。jupyter的黑色窗口出现一秒钟就没了。 在Anaconda Prompt中检查ju…

2025年渗透测试面试题总结- 某亭-安全研究员(题目+回答)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 一、SQL注入过滤单引号绕过方法 二、MySQL报错注入常用函数 三、报错注入绕WAF 四、MySQL写文件函数…

Redis分布式锁如何实现——简单理解版

目录 前言 满足条件 加锁之后产生的问题 避免死锁的方法 Lua脚本实现避免释放其他锁 看门狗判断过期 扩展 Lua脚本 Redission 前言 在如今开发的某些项目中,多个进程必须以互斥的方式独占共享资源,这时用分布式锁是最直接有效的,分布式…

数字化转型驱动卫生用品安全革新

当315晚会上晃动的暗访镜头揭露卫生巾生产车间里漂浮的异物、纸尿裤原料仓中霉变的碎屑时,这一触目惊心的场景无情地撕开了“贴身安全”的遮羞布,暴露的不仅是部分企业的道德缺失,更凸显了当前检测与监管体系的漏洞,为整个行业敲响…

自适应柔顺性策略:扩散引导控制中学习近似的柔顺

24年10月来自斯坦福大学和 TRI 的论文“Adaptive Compliance Policy: Learning Approximate Compliance for Diffusion Guided Control”。 柔顺性在操作中起着至关重要的作用,因为它可以在不确定的情况下平衡位置和力的并发控制。然而,当今的视觉运动策…

SVN简明教程——下载安装使用

SVN教程目录 一、开发中的实际问题二、简介2.1 版本控制2.2 Subversion2.3 Subversion的优良特性2.4 工作原理2.5 SVN基本操作 三、Subversion的安装与配置1. 服务器端程序版本2. 下载源码包3. 下载二进制安装包4. 安装5. 配置版本库① 为什么要配置版本库?② 创建目…

“智改数转”新风口,物联网如何重构制造业竞争力?

一、政策背景 为深化制造业智能化改造、数字化转型、网络化联接,江苏省制定了《江苏省深化制造业智能化改造数字化转型网络化联接三年行动计划(2025-2027年)》,提出到2027年,全省制造业企业设备更新、工艺…

从数据洪流到智能洞察:人工智能如何解锁大数据的价值?

引言:数据洪流时代,企业的机遇与挑战 在这个信息爆炸的时代,数据正以前所未有的速度增长。IDC预测,全球数据量将在未来几年内持续飙升,企业每天都会产生海量的用户行为数据、市场交易数据、设备传感数据等。理论上&…