当前位置: 首页 > article >正文

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

相关文章:

【深度学习】CNN简述

文章目录 一、卷积神经网络(CNN)二、CNN结构特性1. CNN 典型结构2. 局部连接3. 权重共享4.空间或时间上的次采样 三、理解层面 一、卷积神经网络(CNN) 卷积神经网络(Convolutional Neural Network,CNN)是一种用于处理…...

强化学习课程:stanford_cs234 学习笔记(3)introduction to RL

文章目录 前言7 markov 实践7.1 markov 过程再叙7.2 markov 奖励过程 MRP(markov reward process)7.3 markov 价值函数与贝尔曼方程7.4 markov 决策过程MDP(markov decision process)的 状态价值函数7.4.1 状态价值函数7.4.2 状态…...

紫檀博物馆一游与软件开发

今天去逛了中国紫檀博物馆,里边很多层展品,也有一些清代的古物,檀木,黄花梨木家具和各种摆件,馆主陈丽华女士也是发心复原、保留和弘扬中国的传统文化,和西游记唐僧扮演者迟成瑞先生一家。 每一件展品都精…...

RocketMQ初认识

ProducerCustomerNameServer: Broker的注册服务发现中心BrokerServer:主要负责消息的存储、投递和查询以及服务高可用保证 RocketMQ的集群部署: 单个master的分支多个Master 模式:集群中有多个 Master 节点,彼此之间相互独立。生产者可以将消…...

第十三章:持久化存储_《凤凰架构:构建可靠的大型分布式系统》

第十三章 持久化存储 一、Kubernetes存储设计核心概念 (1)存储抽象模型 PersistentVolume (PV):集群级别的存储资源抽象(如NFS卷/云存储盘)PersistentVolumeClaim (PVC):用户对存储资源的声明请求&#…...

Chrome开发者工具实战:调试三剑客

在前端开发的世界里,Chrome开发者工具就是我们的瑞士军刀,它集成了各种强大的功能,帮助我们快速定位和解决代码中的问题。今天,就让我们一起来看看如何使用Chrome开发者工具中的“调试三剑客”:断点调试、调用栈跟踪和…...

教程:如何使用 JSON 合并脚本

目录 1. 介绍 2. 使用方法 3. 注意事项 4. 示例 5.完整代码 1. 介绍 该脚本用于将多个 COCO 格式的 JSON 标注文件合并为一个 JSON 文件。COCO 格式常用于目标检测和图像分割任务,包含以下三个主要部分: "images":图像信息&a…...

C++/Qt 模拟sensornetwork的工作

C/Qt 可视化模拟sensornetwork的工作 C/Qt 模拟sensornetwork的工作 C/Qt 可视化模拟sensornetwork的工作内容简介(一) 需求和规格说明(1)问题描述(2)设计目的(3)基本要求&#xff0…...

ffmpeg音频分析

对一个16k 单声道音频,生成频谱图 ./ffmpeg -i input.wav -lavfi "showspectrumpics800x400:modecombined:scalelin:gain1.5" spectrum.png...

【多线程】CAS机制

目录 一. CAS的概念 二. CAS的原理 三.标准库中的CAS 四. CAS的应用 (1)原子类的使用 (2) 自旋锁的实现 五. CAS的ABA问题 一. CAS的概念 CAS(Compare And Swap)机制是一种无锁的并发控制技术&#…...

音视频(四)android编译

前言 前面已经讲了在windows上应用了,这章主要讲述android上编译 1:环境 git 如果失败 直接跑到相应网站 手动下载 ubuntu22.* android ndk r21e download:https://developer.android.google.cn/ndk/downloads/index.html?hluk 为什么用这个&#xff0…...

Chapter07_图像压缩编码

文章目录 图像压缩编码图像压缩编码基础图像压缩的基本概念信息相关信息冗余信源编码及其分类 图像编码模型信源编码器模型信源解码器模型 数字图像的信息熵信源符号码字平均长度信息熵信息量 变长编码费诺码霍夫曼编码 位平面编码格雷码 图像压缩编码 数字图像的压缩是指在满…...

团体设计程序天梯赛L2-025 # 分而治之

文章目录 题目解读输入格式输出格式 思路Ac Code参考 题目解读 在战争中,我们希望首先攻下敌方的部分城市,使其剩余的城市变成孤立无援,然后再分头各个击破。为此参谋部提供了若干打击方案。本题就请你编写程序,判断每个方案的可…...

Linux网络套接字

Socket 编程 UDP 本章将函数介绍和代码编写实战一起使用。 IPv4 的 socket 网络编程,sockaddr_in 中的成员 struct in_addr.sin_addr 表示 32 位 的 IP 地址 但是我们通常用点分十进制的字符串表示 IP 地址,以下函数可以在字符串表示和in_addr 表示之间转换; 字符串转 in_addr…...

看爬山虎学本领 软爬机器人来创新 各种场景能适应

*本文只做阅读笔记分享* 一、灵感来源:向植物取经 大家好!今天来聊一款超酷的软爬机器人,它的灵感来自会攀爬的植物——爬山虎。 大家都知道,爬墙高手爬山虎能在各种复杂墙面轻松生长攀爬,可现有的攀爬机器人在复杂…...

1-Docker安装

1.准备环境 1.第一步:创建以自己的姓名全拼的用户名 [roothadoop ~]# useradd qiwenyong [roothadoop ~]# passwd qiwenyong Changing password for user qiwenyong. New password: BAD PASSWORD: The password is shorter than 7 characters Retype new passwor…...

WPS JS宏编程教程(从基础到进阶)-- 第三部分:JS宏编程语言开发基础

第三部分:JS宏编程语言开发基础 @[TOC](第三部分:JS宏编程语言开发基础)**第三部分:JS宏编程语言开发基础**1. 变量与数据类型**变量声明:三种方式****示例代码****数据类型判断****实战:动态处理单元格类型**2. 运算符全解析**算术运算符****易错点:字符串拼接 vs 数值相…...

BT-Basic函数之首字母T

BT-Basic函数之首字母T 文章目录 BT-Basic函数之首字母Ttabtesttest conttest monitortest on boardstest scanworkstest shortstesthead cleanuptesthead configurationtesthead istesthead power on/offtesthead statustestjet print level istestordertestplan generationth…...

经典算法 约数之和

原题目链接 问题描述 假设现在有两个自然数 A 和 B,设 S 为 A^B 的所有约数之和。 请你计算:S mod 9901 的值。 输入格式 在一行中输入两个用空格隔开的整数 A 和 B。 输出格式 输出一个整数,表示 S mod 9901 的值。 数据范围 0 ≤ A, …...

Flinksql--订单宽表

参考: https://chbxw.blog.csdn.net/article/details/115078261 (datastream 实现) 一、ODS 模拟订单表及订单明细表 CREATE TABLE orders (order_id STRING,user_id STRING,order_time TIMESTAMP(3),-- 定义事件时间及 Watermark(允许5秒乱序&#x…...

C# 窗体应用(.FET Framework ) 打开文件操作

一、 打开文件或文件夹加载数据 1. 定义一个列表用来接收路径 public List<string> paths new List<string>();2. 打开文件选择一个文件并将文件放入列表中 OpenFileDialog open new OpenFileDialog(); // 过滤 open.Filter "(*.jpg;*.jpge;*.bmp;*.png…...

极客天成NVFile:无缓存直击存储性能天花板,重新定义AI时代并行存储新范式

在AI算力需求呈指数级爆发的今天&#xff0c;存储系统正面临一场前所未有的范式革命。传统存储架构中复杂的缓存机制、冗余的数据路径、僵化的扩展能力&#xff0c;已成为制约千卡GPU集群算力释放的重要因素。极客天成NVFile并行文件存储系统以全栈并行化架构设计和无缓存直通数…...

Java实现N皇后问题的双路径探索:递归回溯与迭代回溯算法详解

N皇后问题要求在NN的棋盘上放置N个皇后&#xff0c;使得她们无法互相攻击。本文提供递归和循环迭代两种解法&#xff0c;并通过图示解释核心逻辑。 一、算法核心思想 使用回溯法逐行放置皇后&#xff0c;通过冲突检测保证每行、每列、对角线上只有一个皇后。发现无效路径时回退…...

【代码艺廊】pyside6桌面应用范例:homemade-toolset

在研发测试日常工作中&#xff0c;通常会遇到很多琐碎的事情&#xff0c;占用我们工作的时间和精力&#xff0c;从而导致我们不能把大部分的注意力放在主要的工作上面。为了解决这个问题&#xff0c;除了加人之外&#xff0c;我们通常会开发一些日常用的效率工具&#xff0c;比…...

LeetCode 3047 求交集区域内的最大正方形面积

探寻矩形交集中的最大正方形面积 在算法与数据结构的探索之路上&#xff0c;二维平面几何问题一直占据着独特的地位&#xff0c;它们不仅考验我们的空间思维能力&#xff0c;还要求我们能够巧妙地运用算法逻辑。今天&#xff0c;我们将深入剖析一道极具代表性的二维平面几何算…...

谷歌开源单个 GPU 可运行的Gemma 3 模型,27B 超越 671B 参数的 DeepSeek

自从 DeepSeek 把训练成本打下来之后&#xff0c;各个模型厂家现在不再堆参数进行模型的能力对比。而是转向了训练成本优化方面&#xff0c;且还要保证模型能力不减反增的效果。包括使用较少的模型参数&#xff0c;降低 GPU 使用数量&#xff0c;降低模型内存占用等等技术手段。…...

C++_类和对象(下)

【本节目标】 再谈构造函数Static成员友元内部类匿名对象拷贝对象时的一些编译器优化再次理解封装 1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值。 class Date { public:Date(in…...

《Java实战:素数检测算法优化全解析——从暴力枚举到筛法进阶》

文章目录 摘要一、需求分析二、基础实现代码与问题原始代码&#xff08;暴力枚举法&#xff09;问题分析 三、优化版代码与解析优化1&#xff1a;平方根范围剪枝优化2&#xff1a;偶数快速跳过完整优化代码 四、性能对比五、高阶优化&#xff1a;埃拉托斯特尼筛法算法思想代码实…...

基于Python+Flask的服装零售商城APP方案,用到了DeepSeek AI、个性化推荐和AR虚拟试衣功能

首先创建项目结构&#xff1a; fashion_store/ ├── backend/ │ ├── app/ │ │ ├── __init__.py │ │ ├── models/ │ │ ├── routes/ │ │ ├── services/ │ │ └── utils/ │ ├── config.py │ ├── requirements.t…...

二,<FastApi>FastApi的两个核心组件

FastAPI的两个核心组件Pydantic和Starlette。 Starlette 负责Web部分(Asyncio),Starlette Starlette是一个轻量级的ASGI框架/工具包&#xff0c;非常适合在Python构建异步Web服务。 它已经准备好生产&#xff0c;并为您提供以下内容&#xff1a; 轻巧的低复杂性HTTP Web框架。W…...