【深度学习】CNN简述

文章目录

  • 一、卷积神经网络(CNN)
  • 二、CNN结构特性
    • 1. CNN 典型结构
    • 2. 局部连接
    • 3. 权重共享
    • 4.空间或时间上的次采样
  • 三、理解层面


一、卷积神经网络(CNN)

  • 卷积神经网络(Convolutional Neural Network,CNN)是一种用于处理图像和其他多维数据的深度学习模型。它在计算机视觉任务中表现出色,如图像分类、目标检测、语义分割等。
  • CNN的核心思想是利用卷积操作来提取图像的特征,并通过层层堆叠的方式进行深度学习。CNN

二、CNN结构特性

1. CNN 典型结构

  • 卷积块:由连续 M(2 - 5)个卷积层和 b(0 或 1)个池化层构成。多个卷积层可逐步提取不同层次的图像特征,池化层则在适当位置对数据降维。
  • 卷积网络堆叠:一个卷积网络中可堆叠 N(1 - 100 或更大)个连续的卷积块,之后连接 K(0 - 2)个全连接层。卷积块负责特征提取,全连接层整合特征用于最终任务。CNN典型结构

2. 局部连接

传统FNN中神经元与所有输入相连,参数众多;而CNN里神经元仅与输入数据的局部区域相连,大幅降低参数数量,增强了模型对图像的特征提取能力。

全连接神经网络(FNN)
FNN 的局限性:

  • 参数巨大:权重矩阵的参数数量庞大,计算量呈指数级增长和训练时间过长。
  • 特征提取困难:图像具有局部不变性特点,即局部区域特征在不同位置可能具有相似性,但 FNN 难以有效捕捉这类特征,限制了其在图像分析任务中的表现。

FNNvsCNN

  • 卷积层(Convolutional Layer)
    • 功能:卷积层是 CNN 的核心组件,主要负责提取图像的局部特征,并完整输出特征图。
    • 参数包含
      • 卷积核(Kernels):卷积核如同特征提取的 “探测器”,具有不同的个数、大小(用宽 W 和高 H 表示)以及通道数(Channel,分为单通道和多通道)。不同的卷积核能够捕捉不同类型的特征,如边缘、纹理等。
      • 步长(Stride):步长用于控制卷积核在输入数据上滑动的距离,不同的步长设置会改变输出特征图的大小。较大的步长会使特征图尺寸变小,减少计算量,但可能会丢失一些细节信息;较小的步长则能保留更多细节,但计算量会相应增加。
      • 补边/填充(Padding):为避免卷积操作时边缘信息的丢失,在输入数据的边缘添加像素值,即补边 / 填充。通过合适的填充,可以使卷积操作后的输出和输入尺寸保持一致,确保边缘区域的特征也能被有效提取。

卷积核滑过输入特征图((Input FeatureMap),滑动到每一个位置时,卷积核中的每个元素与其覆盖的阴影部分输入数据对应位置的每个元素做乘积再求和,得到表示当前位置的输出数据,在全部滑动位置都计算完成后,就得到了输出矩阵,也叫做输出特征图(Output Feature Map)
其中卷积核也叫过滤器或者滤波器,滤波器在输入像素矩阵上扫过的面积称之为感受野卷积

  • 池化层(Pooling Layer)

    • 功能:池化层也称为下采样层,通常在连续的卷积层之间会周期性地插入一个池化层。降低数据维度,减少参数数量,降低计算复杂度。
    • 常见的池化类型有:
      • 平均池化AveragePool:计算局部区域的平均值作为新元素,对特征进行平滑处理,保留整体特征的同时减少噪声影响。
      • 最大池化MaxPool:选取局部区域的最大值作为新的特征图元素,能够突出显著特征,例如在图像中强化边缘和纹理等关键信息。
        [图片]
    • 反池化:与池化操作相反,用于在特定场景下恢复数据的维度,在一些需要上采样的任务中发挥作用。
    • 池化层也有步长(Stride)参数,计算输出大小时一般不需要 填充(Padding)。
  • 全连接层(Fully Connected Layer)

    • 位于卷积层之后,需先将卷积层输出的特征图“摊平” 。
    • 功能:整合之前所有层提取的特征,使网络拥有全局视野,用于最终分类或回归任务。连接前一层的特征,将输出值传入激活函数(如Softmax、ReLU等)。

激活函数(Activation Function)

  • 卷积层和池化层后通常会添加激活函数,用于引入非线性特性。
  • 常见的激活函数:
    • ReLU
      [图片]
    • Sigmoid
      [图片]
    • Softmax
      [图片]

3. 权重共享

同一卷积核在处理图像不同位置时,权重保持不变。这极大减少了参数数量,同时也体现了图像局部不变性的特性,即相同特征无论出现在图像何处,都能用同一卷积核检测。
[图片]

4.空间或时间上的次采样

主要由池化层实现,在空间(图像场景)或时间(视频等时间序列数据场景)维度上对数据进行下采样,降低数据规模,突出关键特征。

三、理解层面

  • 特征学习:CNN旨在学习输入图像的特征。通过多层网络结构,逐步从原始像素数据中提取不同层次的特征。
  • 层级理解
    • 前几层主要检测图像的边缘、线条等基础特征。
    • 中间几层开始检测物体的部分区域,如纹理、形状片段等。
    • 靠后几层能够检测完整的物体,实现对图像内容更高级、更抽象的理解。

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

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

相关文章

理解OSPF 特殊区域NSSA和各类LSA特点

本文基于上文 理解OSPF Stub区域和各类LSA特点 在理解了Stub区域之后,我们再来理解一下NSSA区域,NSSA区域用于需要引入少量外部路由,同时又需要保持Stub区域特性的情况 一、 网络总拓扑图 我们在R1上配置黑洞路由,来模拟NSSA区域…

论文阅读笔记:Denoising Diffusion Implicit Models (5)

0、快速访问 论文阅读笔记:Denoising Diffusion Implicit Models (1) 论文阅读笔记:Denoising Diffusion Implicit Models (2) 论文阅读笔记:Denoising Diffusion Implicit Models &#xff08…

蓝桥杯2024年第十五届省赛真题-R 格式

题目链接&#xff1a; 思路&#xff1a; 通过数组模拟d的每一位&#xff0c;逐位进行计算&#xff0c;从而实现对d的精确处理。 代码&#xff1a; #include<bits/stdc.h> #define int long long using namespace std; const int N 2020;int n; string s; vector<i…

深入探索 Linux Top 命令:15 个实用示例

在 Linux 系统管理中&#xff0c;top 命令是系统性能监控不可或缺的工具。它能够实时显示系统的 CPU、内存、进程等资源的使用情况&#xff0c;帮助您快速识别性能瓶颈和异常进程。本文将详细介绍 15 个实用的 top 命令使用示例&#xff0c;旨在帮助您更高效地进行系统管理与优…

15.1linux设备树下的platform驱动编写(知识)_csdn

上一章我们详细的讲解了 Linux 下的驱动分离与分层&#xff0c;以及总线、设备和驱动这样的驱动框架。基于总线、设备和驱动这样的驱动框架&#xff0c; Linux 内核提出来 platform 这个虚拟总线&#xff0c;相应的也有 platform 设备和 platform 驱动。 上一章我们讲解了传统的…

Eclipse 视图(View)

Eclipse 视图(View) Eclipse 视图(View)是 Eclipse 界面的重要组成部分,它提供了用户交互的平台,使得用户可以通过图形界面来编辑、调试、分析代码等。在本文中,我们将深入探讨 Eclipse 视图的功能、使用方法以及它们在软件开发中的作用。 1. 视图的功能 Eclipse 视图具…

Python解决“数字插入”问题

Python解决“数字插入”问题 问题描述测试样例解题思路代码 问题描述 小U手中有两个数字 a 和 b。第一个数字是一个任意的正整数&#xff0c;而第二个数字是一个非负整数。她的任务是将第二个数字 b 插入到第一个数字 a 的某个位置&#xff0c;以形成一个最大的可能数字。 你…

ubuntu部署ollama+deepseek+open-webui

ubuntu部署ollamadeepseekopen-webui 全文-ubuntu部署ollamadeepseekopen-webui 大纲 Ollama部署 安装Ollama&#xff1a;使用命令apt install curl和curl -fsSL https://ollama.com/install.sh | sh ollama-v网络访问配置&#xff1a;设置环境变量OLLAMA_HOST0.0.0.0:11434&…

Java的Selenium常用的元素操作API

click 触发当前元素的点击事件 clear() 清空内容 sendKeys(...) 往文本框一类元素中写入内容 getTagName() 获取元素的的标签名 getAttribute(属性名) 根据属性名获取元素属性值 getText() 获取当前元素的文本值 isDisplayed() 查看元素是否显示 get(String url) 访…

洛谷题单3-P1035 [NOIP 2002 普及组] 级数求和-python-流程图重构

题目描述 已知&#xff1a; S n 1 1 2 1 3 … 1 n S_n 1\dfrac{1}{2}\dfrac{1}{3}…\dfrac{1}{n} Sn​121​31​…n1​。显然对于任意一个整数 k k k&#xff0c;当 n n n 足够大的时候&#xff0c; S n > k S_n>k Sn​>k。 现给出一个整数 k k k&#xff0…

CMDB平台(进阶篇):3D机房大屏全景解析

在数字化转型的浪潮中&#xff0c;数据中心作为企业信息架构的核心&#xff0c;其高效、智能的管理成为企业竞争力的关键因素之一&#xff0c;其运维管理方式也正经历着革命性的变革。传统基于二维平面图表的机房监控方式已难以满足现代企业对运维可视化、智能化的需求。乐维CM…

小白速通:Verilog流水线实现及时序分析

目录 题目&#xff1a;时序分析&#xff1a;时钟频率为50MHz数据1: a10, b20, c30, d40, e2数据2: a5, b15, c25, d35, e3数据3: a8, b12, c16, d24, e4 流水线效率分析 题目&#xff1a; verilog中&#xff0c;y(abcd)*e&#xff0c;时钟频率为50Mhz&#xff0c;用流水线的形式…

【RK3588 嵌入式图形编程】-SDL2-扫雷游戏-创建网格

创建网格 文章目录 创建网格1、概述2、更新Globals.h文件3、创建单元4、创建网格5、传递事件6、清空单元7、反馈单元格已清除8、测试9、完整代码10、总结在本文中,将详细介绍如何构建一个二维的交互式扫雷单元格网格。 1、概述 在本文中,我们将专注于构建扫雷游戏的基础结构…

高精度矢量内积计算方法 (单精度浮点, 超长矢量)

高精度矢量内积计算方法 (单精度浮点, 超长矢量) 对于单精度浮点类型的超长矢量(超过1亿元素)内积计算&#xff0c;累加误差确实是一个重要问题。以下是几种减少误差的方法&#xff1a; 1. Kahan求和算法 这是最常用的补偿求和算法&#xff0c;可以有效减少累加误差&#xf…

Java基础:Logback日志框架

什么是日志 日志技术 可以将系统执行信息&#xff0c;方便的记录到指定位置&#xff08;控制台&#xff0c;文件中&#xff0c;数据库中&#xff09; 可以随时可以开关的形式控制日志的启停&#xff0c;无需侵入到源代码中去进行修改 LogBack日志框架 LogBack快速入门 logb…

MessageQueue --- RabbitMQ WorkQueue and Prefetch

MessageQueue --- RabbitMQ WorkQueue and Prefetch 什么是WorkQueue分发机制 --- RoundRobin分发机制 --- PrefetchSpring example use prefetch --- Fair Dispatch 什么是WorkQueue Work queues&#xff0c;任务模型。简单来说就是让多个消费者绑定到一个队列&#xff0c;共同…

RNN模型与NLP应用——(9/9)Self-Attention(自注意力机制)

声明&#xff1a; 本文基于哔站博主【Shusenwang】的视频课程【RNN模型及NLP应用】&#xff0c;结合自身的理解所作&#xff0c;旨在帮助大家了解学习NLP自然语言处理基础知识。配合着视频课程学习效果更佳。 材料来源&#xff1a;【Shusenwang】的视频课程【RNN模型及NLP应用…

详解AI采集框架Crawl4AI,打造智能网络爬虫

大家好&#xff0c;Crawl4AI作为开源Python库&#xff0c;专门用来简化网页爬取和数据提取的工作。它不仅功能强大、灵活&#xff0c;而且全异步的设计让处理速度更快&#xff0c;稳定性更好。无论是构建AI项目还是提升语言模型的性能&#xff0c;Crawl4AI都能帮您简化工作流程…

从零开始玩python--python版植物大战僵尸来袭

大家好呀&#xff0c;小伙伴们&#xff01;今天要给大家介绍一个超有趣的Python项目 - 用pygame制作植物大战僵尸游戏的进阶版本。相信不少小伙伴都玩过这款经典游戏&#xff0c;今天我们就用Python来实现它&#xff0c;让编程学习变得更加有趣&#xff01;&#x1f31f; 一、…

图解AUTOSAR_SWS_FlashTest

AUTOSAR Flash Test模块详解 基于AUTOSAR 4.4.0规范的Flash测试模块分析与图解 目录 概述 1.1 Flash Test模块的作用 1.2 工作原理架构设计 2.1 整体架构 2.2 依赖关系状态管理 3.1 状态转换图 3.2 前台与后台测试模式配置结构 4.1 配置类图 4.2 关键配置参数交互流程 5.1 序列…