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

卷积神经网络(CNN)

目标:

  • 了解什么是卷积神经网络
  • 了解卷积神经网络的组成
  • 了解有哪些代表性的卷积神经网络

基础概念:

  • 卷积:一般指卷积核和运算方式,后续会有详解
  • 感受野 CNN 中输出特征图上的一个像素点对应输入图像的区域大小。它描述了 “特征图上的一个点能‘看到’输入图像的多大范围”,是理解 CNN 层级特征提取逻辑的关键。神经元感受野的范围越大表示其能接触到的原始图像范围就越大,也意味着它能学习更为全局,语义层次更高的特征信息;相反,范围越小则表示其所包含的特征越趋向局部和细节。因此感受野的范围可以用来大致判断每一层的抽象层次。并且我们可以很明显地知道网络越深,神经元的感受野越大。由此可知,深度卷积神经网络中靠前的层感受野较小,提取到的是图像的纹理、边缘等局部的、通用的特征;靠后的层由于感受野较大,提取到的是图像更深层次、更具象的特征。因此在迁移学习中常常会将靠前的层的参数冻结(不参与训练,因为他们在迁移到新的场景之前已经具备了提取通用特征的能力),来节省训练的时间和算力消耗。
  • 权值共享在卷积运算中采用权值共享可以有效减少需要求解的参数。通俗地来讲,在一个卷积核在和一个n通道的特征图(为方便理解,这里可以暂时理解为3通道的RGB输入图像)进行卷积运算时,可以看作是用这个卷积核作为一个滑块去“扫”这个特征图,卷积核里面的数就叫权重,这个特征图每个位置是被同样的卷积核“扫”的,所以权重是一样的,也就是共享。
  • 网络深度指神经网络中所有层的总数量(包括卷积层、池化层、激活层、全连接层等),代表模型的 “层级复杂度”
  • 卷积深度有两个含义,一是卷积的层数,二是输出特征图的通道数
  • 上采样是一个升维操作,就是将小分辨率变成大分辨率的图像,一般方式为插值(双线性插值、最近邻插值法)
  • 下采样主要用于降维,是一个信息损失的过程,作用有两个,一是减少计算量,防止过拟合二是增大感受野;一般方式为池化操作(最大池化、平均池化)

卷积神经网络

概念:在整个神经网络过程中含有卷积运算的网络,就叫做卷积神经网络(CNN),是一个统称。

神经网络的基本结构大致包括:输入层、卷积层、激活函数、池化层、全连接层、输出层

网络训练基本步骤:

  CNN的训练,也称神经网络的学习算法与经典BP网络是一样的,都属于随机梯度下降,也称增量梯度下降,实验中用于优化可微分目标函数的迭代算法。

  • Step 1:用随机数初始化所有的卷积核和参数/权重

  • Step 2:将训练图片作为输入,执行前向步骤(卷积, ReLU,池化以及全连接层的前向传播)并计算每个类别的对应输出概率。

  • Step 3:计算输出层的总误差

  • Step 4:反向传播算法计算误差相对于所有权重的梯度,并用梯度下降法更新所有的卷积核和参数/权重的值,以使输出误差最小化

 注:卷积核个数、卷积核尺寸、网络架构这些参数,是在 Step 1 之前就已经固定的,且不会在训练过程中改变——只有卷 积核矩阵和神经元权重会更新。

1.CNN 的核心组成部分

CNN 的典型结构由 “特征提取模块” 和 “分类 / 回归模块” 组成,各层按顺序协作,从输入数据中逐步提取 “低级特征”(如边缘、颜色)到 “高级特征”(如眼睛、车轮),最终输出任务结果。

1. 输入层(Input Layer)

功能:接收原始网格数据,将其转化为模型可处理的张量格式。

数据格式:通常为 H×W×C(Height:高度,Width:宽度,Channels:通道数)。

例:RGB 彩色图像为 224×224×3(224 像素高、224 像素宽、3 个颜色通道);MNIST 手写数字图像(灰度)为 28×28×1。

预处理:需对输入数据标准化(如将像素值从 [0,255] 归一化到 [0,1] 或 [-1,1]),避免数值差异影响训练。

2. 卷积层(Convolutional Layer,核心层)

卷积核(Kernel/Filter:即 “特征提取器”,是一个小型的可学习矩阵(如 3×3、5×5),深度与输入特征图的通道数(C)一致。

例:输入为 3 通道(RGB),卷积核的深度必为 3(每个通道对应一个 2D 核,最终结果求和)。

步长(Stride:卷积核在输入特征图上滑动的 “步幅”,默认值为 1。步长越大,输出特征图尺寸越小。

填充(Padding):在输入特征图边缘补 0(或其他值),用于保持输出特征图尺寸与输入一致(“Same Padding”),或减少尺寸(“Valid Padding”)。

特征图(Feature Map:卷积操作的输出结果,每个卷积核对应一个特征图(通道数 = 卷积核数量)。

卷积的方式:标准卷积、深度卷积、膨胀卷积、可形变卷积

3. 激活函数层(Activation Layer)

功能:为卷积层的线性输出引入非线性,使模型能拟合复杂的特征映射关系(若没有非线性,深层 CNN 等价于单层线性模型)。

常用激活函数:

ReLU:f(x) = max(0, x),解决梯度消失问题,计算高效,是目前最常用的激活函数。

4. 池化层(Pooling Layer)

功能:对卷积层输出的特征图进行下采样,

常见类型:

最大池化(Max Pooling):取局部区域的最大值(保留最显著特征,如边缘强度),例:2×2 最大池化(步长 = 2)将特征图尺寸减半。

平均池化(Average Pooling):取局部区域的平均值(保留整体趋势,常用于网络末尾)。

5. 归一化层(Normalization Layer)

功能:缓解 “内部协变量偏移”(训练中每层输入分布不断变化),加速训练收敛,提升模型稳定性。

代表类型:

批量归一化(Batch Normalization, BN):对每个批次的输入数据进行标准化(均值 = 0,方差 = 1),是目前主流的归一化方法,通常插入在卷积层与激活函数之间。

6. 全连接层(Fully Connected Layer,FC Layer)

功能:将卷积 / 池化提取的 “局部特征” 转化为 “全局特征”,并映射到任务的输出维度(如分类任务的类别数)。

7. 输出层(Output Layer)

功能:根据任务类型输出最终结果,激活函数的选择取决于任务:

分类任务:

二分类:用 Sigmoid 激活,输出单个概率值(0~1);

多分类:用 Softmax 激活,输出每个类别的概率(所有类别概率和为 1)。

回归任务:用线性激活函数(无激活),直接输出连续值(如目标检测中的坐标、图像分割中的像素值)。

注意事项:每一个网络结构不相同,可能会出现很多次卷积,上述只是一个大概流程


常见卷积网络

模型名称提出年份核心创新点关键特点典型应用场景
LeNet-51998首个实用 CNN 架构,奠定 CNN 基本框架5 层结构(2 卷积 + 2 池化 + 1 全连接),用于灰度图像手写数字识别(MNIST 数据集)
AlexNet2012首次在 ImageNet 比赛证明 CNN 有效性,引爆深度学习8 层结构,用 ReLU 激活、重叠池化、Dropout 防过拟合ImageNet 图像分类(1000 类)
VGGNet2014用 “小卷积核(3×3)” 替代大核,加深网络层数16/19 层结构,参数量大(约 1.38 亿),特征提取能力强图像分类、特征提取(迁移学习)
GoogLeNet(Inception v1)2014提出 “Inception 模块”,多尺度特征融合22 层结构,用 1×1 卷积降维,参数量仅为 VGG 的 1/12高效图像分类、目标检测
ResNet(残差网络)2015引入 “残差连接(Skip Connection)”,解决深层网络梯度消失可实现 152 层深层结构,训练稳定,成为后续模型的基础图像分类、目标检测、图像分割
DenseNet(密集连接网络)2016提出 “密集连接”,前所有层与当前层直接连接特征复用率高,参数量小,抗过拟合能力强医学图像分析、小样本学习
MobileNet v12017提出 “深度可分离卷积”,大幅减少计算量轻量化架构,计算量仅为 AlexNet 的 1/8,参数量 1/32移动端 / 嵌入式设备(如手机拍照识别)
EfficientNet2019提出 “复合缩放策略”(深度、宽度、分辨率协同缩放)在相同计算量下,性能远超 ResNet、MobileNet高效图像分类、工业级计算机视觉任务


文章转载自:

http://CzrkKCuY.jfbgn.cn
http://9wtJ60oo.jfbgn.cn
http://PxJhRx10.jfbgn.cn
http://ZhSQY8YM.jfbgn.cn
http://jEX0EM0M.jfbgn.cn
http://ciaWlbkQ.jfbgn.cn
http://XH5BCfqN.jfbgn.cn
http://fH3KcHDH.jfbgn.cn
http://uUr7Ng97.jfbgn.cn
http://0Usfm6eQ.jfbgn.cn
http://g6uVlJy9.jfbgn.cn
http://fVRf4Dwx.jfbgn.cn
http://0k8IUOdq.jfbgn.cn
http://vJasR1Kd.jfbgn.cn
http://B9Z1j3EQ.jfbgn.cn
http://mZozmLB8.jfbgn.cn
http://sRpo0762.jfbgn.cn
http://w5i0uLcz.jfbgn.cn
http://K1cYYfto.jfbgn.cn
http://r2kxukXg.jfbgn.cn
http://lRgBhZqQ.jfbgn.cn
http://VCWBHuyj.jfbgn.cn
http://xY0DzE2S.jfbgn.cn
http://WDEcg6P1.jfbgn.cn
http://uwLCJaxR.jfbgn.cn
http://0vMwQrE1.jfbgn.cn
http://2uFbMCp5.jfbgn.cn
http://lcuE5olC.jfbgn.cn
http://lu5X232x.jfbgn.cn
http://PFQEhYJO.jfbgn.cn
http://www.dtcms.com/a/380497.html

相关文章:

  • 第1篇:MCP核心概念与组件实战
  • 戳气球-区间dp
  • ResNet(详细易懂解释):残差网络的革命性突破
  • RFIC射频芯片由什么组成?
  • OpenCV的cv2.VideoCapture如何加GStreamer后端
  • 自由学习记录(98)
  • 【爬坑指南】亚马逊文件中心 AWS S3 预签名URL 前端直传
  • 【技术教程】如何将文档编辑器集成至用PHP编写的Web应用程序中
  • AWS RDSInstance模型优化实践:从字段长度调整到索引策略全面提升
  • ADSP-ADI sharc 内存配置笔记
  • 嵌入式C语言-关键字typedef
  • daily notes[44]
  • 手机端APP解析工具开发实战——从0到1实现漏洞检测与接口分析
  • Mysql数据库多表设计
  • open和fopen的区别
  • 排序---选择排序(Selection Sort)
  • 玩转PostMan之调试天气接口-心知天气 API
  • OpenHarmony DHCP 全栈深度剖析:从 DhcpClientStateMachine 到双栈 dhcpd 的客户端-服务器架构设计与源码实现
  • Linux 前后台作业控制及管理
  • 【设计模式】题目小练2
  • 软考中级习题与解答——第五章_面向对象方法(2)
  • 【智慧城市】2025年中国地质大学(武汉)暑期实训优秀作品(4):智矿中国
  • wslg 应用白色边框问题(Jetbrains 系列白色边框)
  • jmeter配置数据库连接步骤
  • Dest1ny安全漫谈-如何做好一个安全项目
  • qt中给QListWidget添加上下文菜单(快捷菜单)
  • Elasticsearch的理解与使用
  • android ndk编译valgrind
  • 实现调用libchdb.a静态连接库中的未公开导出函数
  • Deepoc具身智能无人机:为天空装上「自主决策大脑」