图像识别-全连接层-卷积层-卷积层的计算-多输入通道场景-多输出通道场景-感受野-填充-VALID 与 SAME-stride-池化-CNN架构

news2025/1/5 18:06:32

文章目录

  • 全连接层
    • 卷积神经网络的作用
    • 全连接层的问题
      • 场景
      • 图像处理和数据转换
      • 信息丢失的实例
      • 特征提取阶段
      • 分类阶段
  • 卷积层
  • 卷积层的计算
  • 多输入通道场景
  • 多输出通道场景
    • 批量操作
  • 感受野
  • 填充(padding)
  • VALID 与 SAME
  • stride
  • 池化
    • 池化的作用
  • CNN架构

全连接层

卷积神经网络的作用

卷积神经网络(Convolutional Neural Network),多用于图像识别,但不仅仅用于图像识别。不过我们在学习卷积神经网络的过程中,可以把图像识别当成假想任务,理解起来会更直观一些。

全连接层的问题

为什么图像数据从多维(图像的原始格式)转化为一维向量(供全连接神经网络处理)时,为何会丢失空间和通道的相关信息,以及可能隐藏的模式信息。

场景

想象我们正在处理一张包含蓝天和绿色草地的照片,天空和草地之间有一个清晰的分界线。

图像处理和数据转换

  1. 多维数据(图像格式)

    • 在图像中,蓝天部分的像素可能具有高蓝色值,例如RGB(135, 206, 235)。
    • 草地的像素可能是绿色的,例如RGB(34, 139, 34)。
    • 在图像格式中,这些像素彼此相邻,形成了可视的界限和模式,如天空和草地的分界。
  2. 转换为一维向量

    • 当这张图像被转换为一维向量以输入到全连接神经网络时,所有像素都会被展开成一个长长的数字序列。这个序列简单地将每个像素的RGB值依次排列。
    • 例如,如果图像是100x100像素,那么向量将是一个长度为30000的数组(每个像素3个颜色通道)。

信息丢失的实例

  1. 丢失的空间相关性

    • 在原始图像中,相邻的像素(如天空中的相邻蓝色像素或草地中的绿色像素)展示了高度的空间相关性。这种相关性有助于我们理解和解释图像的结构(如天空通常在上方,草地在下方)。
    • 转换为一维向量后,这些空间上的关联性丢失了。向量中的值只是色彩信息的简单连续,而不保留任何像素之间原有的物理邻近关系。
  2. 忽略的形状信息和模式

    • 原图中的形状和模式,如天空与草地的交界线,是视觉上的关键信息,可能揭示了图像的某些重要特征或物体的边界。
    • 当这些数据被转换为一维向量时,所有这些形状信息和模式都被降维处理,使得全连接网络难以从这种一维表示中重新识别或学习到这些重要的空间特征。


在这里插入图片描述
为了解决上述问题,我们引入卷积神经网络进行特征提取,既能提取到相邻像素点之间的特征模式,又能保证参数的个数不随图片尺寸变化。一个典型的卷积神经网络结构,多层卷积和池化层组合作用在输入图片上,在网络的最后通常会加入一系列全连接层,ReLU激活函数一般加在卷积或者全连接层的输出上,网络中通常还会加入Dropout来防止过拟合。

在这里插入图片描述
这个图像描述了一个典型的卷积神经网络(CNN)的结构,用于图像识别任务,这里以手写数字识别为例。整个网络分为两大部分:特征提取和分类。

特征提取阶段

这一阶段主要由多个卷积层和池化层(下采样层)组成,目的是从输入图像中自动学习到有用的特征。

  1. 输入: 网络接收一个32x32像素的图像(例如,这里的手写数字“3”)。
  2. 第一层卷积(C1): 使用5x5的卷积核对输入图像进行卷积操作,生成多个特征图(feature maps),这里得到28x28的特征图。卷积层通过滑动卷积核提取图像的局部特征,每个特征图代表图像在不同卷积核作用下的响应。
  3. 第一层池化(S1): 对卷积后的特征图使用2x2的池化窗口进行下采样,通常用最大池化或平均池化来降低特征图的维度(这里降至14x14),减少计算量并保持特征的主要信息。
  4. 第二层卷积(C2): 再次使用5x5的卷积核对池化后的特征图进行卷积,进一步提取特征,输出更小尺寸(10x10)的特征图。
  5. 第二层池化(S2): 对第二层卷积的输出进行池化,进一步降低特征图的尺寸(这里到5x5)。

分类阶段

提取到的特征被平展(flatten)成一维向量,并通过一个或多个全连接层(fully connected layers)进行处理,以进行最终的分类。

  1. 全连接层: 特征向量被送入全连接层,全连接层的神经元将学习特征之间的复杂关系,输出每个类别(这里是数字0-9)的得分。
  2. 输出层: 最后的输出层通常使用softmax激活函数,将得分转换为概率,每个数字对应一个概率。

整个网络通过反向传播算法训练,优化卷积核和全连接层中的权重,以提高分类的准确性。CNN特别适合图像处理,因为它们可以自动地从图像中学习有用的局部特征,而不需要手动特征工程。

卷积层

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

卷积层的计算

在这里插入图片描述
在这里插入图片描述

多输入通道场景

在这里插入图片描述
在这里插入图片描述

多输出通道场景

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

批量操作

在这里插入图片描述
在这里插入图片描述

感受野

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

填充(padding)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
卷积核为奇数方便计算使得卷积之后图像尺寸不变的填充大小
在这里插入图片描述

VALID 与 SAME

在这里插入图片描述

  • 在“有效”填充模式中,不添加任何额外的padding。这意味着卷积核仅在输入数据的有效边界内进行操作,不越过边缘。因此,卷积后的输出尺寸通常会比输入尺寸小。
  • 如图所示,使用步长为3和卷积核大小为5的设置,最后一个元素不能进行卷积处理,因为它没有足够的空间完成整个卷积操作,这导致一部分输入数据被丢弃。

在这里插入图片描述

在这里插入图片描述

“相同”填充模式下,通过适当地添加padding来保持输出特征图的尺寸与输入特征图相同。这通常通过在输入的两边均匀添加足够的零来完成。
在图中,卷积核每次移动时都有适当的空间进行操作,包括在输入的开始和结束添加了零填充。这确保了每个输入元素都可以被卷积核覆盖,从而保持输入和输出尺寸相同。

在这里插入图片描述

stride

在这里插入图片描述
在这里插入图片描述

池化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

池化的作用

在这里插入图片描述
池化操作提高模型对图像小的平移变化的鲁棒性,主要原因在于它减少了每个被池化区域内的细节水平,只保留了最显著的特征(如最大值或平均值)。这种方法降低了模型对输入数据中细微位置改变的敏感性。具体来说,这种鲁棒性是通过以下方式实现的:

  1. 局部不变性

    • 当使用最大池化时,只有区域内的最大值会被保留,其他的背景信息和不那么显著的特征被忽略。例如,如果一个区域内有一个眼睛的部分和其他面部特征,无论眼睛具体在这个小区域的哪个位置,只要它是最明显的特征,它就会被选取出来。
    • 这意味着,如果眼睛稍微向左或向右移动,只要它仍然是那个小区域内最显著的特征,最大池化仍然会选择它。
  2. 降维效应

    • 通过将大量像素的输出缩减到较小的输出代表,池化操作有效地减少了数据的维度。这种降维意味着相邻的像素间的轻微变动(如轻微平移)对整体输出的影响被缓和,因为整个区域被总结为一个单一的输出值。
  3. 统计特征摘要

    • 在平均池化中,由于它计算的是区域内所有值的平均,因此对小的局部变化(如图像的轻微平移)不太敏感。平均值反映了区域内的一般特征而不是具体的位置变化,使得输出对于输入的小幅度变动更为稳定。

CNN架构

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

MATLAB 车牌自动识别系统设计 SVM支持向量机方法 车牌识别

基于支持向量机(SVM)方法的车牌自动识别系统是一种利用SVM算法对车牌进行分类和识别的技术。该系统通过将车牌的图像处理和特征提取与SVM分类相结合,实现车牌的自动检测与识别。 1. 系统概述 车牌自动识别系统旨在从车辆图像中自动识别车牌…

《Vue3实战教程》39:Vue3无障碍访问

如果您有疑问,请观看视频教程《Vue3实战教程》 无障碍访问​ Web 无障碍访问 (也称为 a11y) 是指创建可供任何人使用的网站的做法——无论是身患某种障碍、通过慢速的网络连接访问、使用老旧或损坏的硬件,还是仅处于某种不方便的环境。例如,…

C++ 【回调函数】详解与代码解读

在现代软件开发中,回调函数是一个常用的工具,能够实现函数调用的延迟绑定,广泛应用于事件驱动、异步操作以及模块解耦等场景。本文将从基础概念、分类、实现方式到代码示例,全面讲解 C 回调函数的实现和应用。 什么是回调函数&…

No.1十六届蓝桥杯备战|第一个C++程序|cin和cout|命名空间

第一个C程序 基础程序 使用DevC5.4.0 写一个C程序 在屏幕上打印hello world #include <iostream> using namespace std;int main() {cout << "hello world" << endl;return 0; } 运行这个C程序 F9->编译 F10->运行 F11->编译运行 mai…

【Vim Masterclass 笔记05】第 4 章:Vim 的帮助系统与同步练习

文章目录 Section 4&#xff1a;The Vim Help System&#xff08;Vim 帮助系统&#xff09;S04L14 Getting Help1 打开帮助系统2 退出帮助系统3 查看具体命令的帮助文档4 查看帮助文档中的主题5 帮助文档间的上翻、下翻6 关于 linewise7 查看光标所在术语名词的帮助文档8 关于退…

印象笔记07——试一试PDF标注

印象笔记07——试一试PDF标注 [!CAUTION] 根据第六期&#xff0c;我再次查询了资料&#xff0c;印象笔记还是有一些可圈可点的功能的&#xff08;当然部分有平替&#xff09;&#xff0c;针对会员作用&#xff0c;开发使用场景虽然是逆向的&#xff0c;但我坚信这是一部分人的现…

JDK17源码分析Jdk动态代理底层原理

本文侧重分析JDK17中jdk动态代理的源码&#xff0c;若是想看JDK8源码分析可以看我的这一篇文章 JDK8源码分析Jdk动态代理底层原理-CSDN博客 两者之间有着略微的差别&#xff0c;JDK17在JDK8上改进了不少 目录 JDK 17的动态代理源码 核心入口方法 newProxyInstance 获取代理类…

【网络协议】开放式最短路径优先协议OSPF详解(一)

OSPF 是为取代 RIP 而开发的一种无类别的链路状态路由协议&#xff0c;它通过使用区域划分以实现更好的可扩展性。 文章目录 链路状态路由协议OSPF 的工作原理OSPF 数据包类型Dijkstra算法、管理距离与度量值OSPF的管理距离OSPF的度量值 链路状态路由协议的优势拓扑结构路由器O…

vim 的基础使用

目录 一&#xff1a;vim 介绍二&#xff1a;vim 特点三&#xff1a;vim 配置四&#xff1a;vim 使用1、vim 语法格式2、vim 普通模式&#xff08;1&#xff09;保存退出&#xff08;2&#xff09;光标跳转&#xff08;3&#xff09;文本删除&#xff08;4&#xff09;文本查找&…

为什么深度学习和神经网络要使用 GPU?

为什么深度学习和神经网络要使用 GPU&#xff1f; 本篇文章的目标是帮助初学者了解 CUDA 是什么&#xff0c;以及它如何与 PyTorch 配合使用&#xff0c;更重要的是&#xff0c;我们为何在神经网络编程中使用 GPU。 图形处理单元 (GPU) 要了解 CUDA&#xff0c;我们需要对图…

工厂模式与抽象工厂模式在Unity中的实际应用案例

一、实验目的 实践工厂模式和抽象工厂模式的实际应用。 创建一个小型的游戏场景&#xff0c;通过应用这些设计模式提升游戏的趣味性和可扩展性。 掌握在复杂场景中管理和使用不同类型的对象。 比较在实际游戏开发中不同设计模式的实际效果和应用场景。 学习如何进行简单的性…

jrc水体分类对水体二值掩码修正

使用deepwatermap生成的水体二值掩码中有部分区域由于被云挡住无法识别&#xff0c;造成水体不连续是使用jrc离线数据进行修正&#xff0c;jrc数据下载连接如下&#xff1a;https://global-surface-water.appspot.com/download 选择指定区域的数据集合下载如图&#xff1a; 使…

计算机网络 (20)高速以太网

一、发展背景 随着计算机技术和网络应用的不断发展&#xff0c;传统的以太网速率已逐渐无法满足日益增长的带宽需求。因此&#xff0c;高速以太网应运而生&#xff0c;它以提高数据传输速率为主要目标&#xff0c;不断推动着以太网技术的发展。 二、技术特点 高速传输&#xff…

基于SpringBoot的校园二手交易平台的设计与实现(源码+SQL+LW+部署讲解)

文章目录 摘 要1. 第1章 选题背景及研究意义1.1 选题背景1.2 研究意义1.3 论文结构安排 2. 第2章 相关开发技术2.1 前端技术2.2 后端技术2.3 数据库技术 3. 第3章 可行性及需求分析3.1 可行性分析3.2 系统需求分析 4. 第4章 系统概要设计4.1 系统功能模块设计4.2 数据库设计 5.…

2024年中国新能源汽车用车发展怎么样 PaperGPT(二)

用车趋势深入分析 接上文&#xff0c;2024年中国新能源汽车用车发展怎么样 PaperGPT&#xff08;一&#xff09;-CSDN博客本文将继续深入探讨新能源汽车的用车强度、充电行为以及充电设施的现状。 用车强度 月均行驶里程&#xff1a;2024年纯电车辆月均行驶超过1500公里&…

antd-vue - - - - - a-date-picker限制选择范围

antd-vue - - - - - a-date-picker限制选择范围 1. 效果展示2. 代码展示 1. 效果展示 如图&#xff1a;限制选择范围为 今年 & 去年 的 月份. 2. 代码展示 <template><a-date-picker:disabledDate"disabledDate"picker"month"/> &l…

滑动窗口、流量控制和拥塞控制

1. 确认应答机制 确认应答机制是计算机网络中&#xff0c;用于确保数据可靠传输的一种方法。 它通过发送 ACK 数据段来通知对方&#xff0c;每一个 ACK 数据段都有一个确认序号&#xff0c;表明&#xff1a; 确认序号之前的所有数据都已被接收&#xff0c;接下来从确认序号开…

TCP粘/拆包----自定义消息协议

今天是2024年12月31日&#xff0c;今年的最后一天&#xff0c;希望所有的努力在新的一年会有回报。❀ 无路可退&#xff0c;放弃很难&#xff0c;坚持很酷 TCP传输 是一种面向二进制的&#xff0c;流的传输。在传输过程中最大的问题是消息之间的边界不明确。而在服务端主要的…

前端,npm install安装依赖卡在sill idealTree buildDeps(设置淘宝依赖)

输入npm i后&#xff0c;一直卡在sill idealTree buildDeps&#xff0c;一动不动 cnpm可以安装成功&#xff0c;但使用cnpm不会生成package-lock.json文件 设置淘宝依赖&#xff0c;依然卡住&#xff0c;挂梯子也不行 解决方法&#xff1a; // 取消ssl验证 set strict-ssl …

【有作图代码】Highway Network与ResNet:skip connection如何解决深层网络欠拟合问题

【有作图代码】Highway Network与ResNet&#xff1a;skip connection如何解决深层网络欠拟合问题 关键词&#xff1a; #Highway Network #ResNet #skip connection #深层网络 #欠拟合问题 具体实例与推演 假设我们有一个深层神经网络&#xff0c;其层数为L&#xff0c;每一…