news 2026/4/10 20:43:30

深度学习——卷积神经网络CNN

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深度学习——卷积神经网络CNN

卷积神经网络CNN

图像原理

我们眼中的图像,在计算机世界里其实是一组有序排列的数字矩阵。

对于黑白灰度图,每个像素的数值范围是 0-255,0 代表最暗的黑色,255 代表最亮的白色,整个图像就是一个二维矩阵。

彩色图像则采用 RGB 颜色模型,通过红、绿、蓝三原色的不同比例组合生成各种色彩,对应着三个并列的二维矩阵,也就是三维张量(Tensor),可以用 “宽 × 高 × 深(通道数)” 来描述,其中每个矩阵称为一个通道(Channel)。这种数字化表示是 CNN 能够处理图像的基础。

图像不变性

图像识别的核心挑战在于 “不变性”—— 一个物体无论在画面的左侧还是右侧(平移不变性)、旋转一定角度(旋转不变性)、缩放大小(尺度不变性),甚至在不同光照条件下(光照不变性),都应该被准确识别为同一物体。

希望所建立的网络可以尽可能的满足这些不变性特点

传统神经网络面对这类变体时显得力不从心,因为它会将图像像素全部摊平为一维向量输入,丢失了空间结构信息,需要海量标注数据和极深的网络才能勉强学习这些变体特征。而 CNN 通过特殊的网络结构,天然具备了学习这些不变性的能力。

如下图所示:

卷积层

什么是卷积?

对图像(不同的窗口数据)和卷积核(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。

卷积层原理

a、步长stride:每次滑动的位置步长。

b. 卷积核的个数:决定输出的depth厚度。同时代表卷积核的个数。

c. 填充值zero-padding:在外围边缘补充若干圈0,方便从初始位置以步长为单位可以刚好滑倒末尾位置,通俗地讲就是为了总长能被步长整除。

数据窗口每次移动两个步长取3*3的局部数据,即stride=2。

两组神经元(卷积核),即depth=2,意味着有两个滤波器。

zero-padding=1

神经网络的构造

图片精通卷积核处理后的样子

与人眼观看事物原理相似,先看事物的轮廓

卷积层计算的结果

例如:输入数据为32*32*3的图像,用10个5*5*3的卷积核来进行操作,步长为1,边界0填充为2, 最终输出结果为?

(32-5+2*2)/1 +1 =32,输出规模为32*32*10的特征图

池化层

池化层的作用

一种降采样,减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合

常见的池化层

最大池化、平均池化、全局平均池化、全局最大池化。

平均池化(average pooling):计算图像区域的平均值作为该区域池化后的值。

最大池化(max pooling):选图像区域的最大值作为该区域池化后的值。是最为常见的。 通常来说,CNN的卷积层之间都会周期性地插入池化层。

池化层操作方法

与卷积层类似,池化层运算符由一个固定形状的窗口组成,该窗口根据其步幅大小在输入的所有区域上滑动,为固定形状窗口(有时称为 池化窗口)遍历的每个位置计算一个输出。 然而,不同于卷积层中的输入与卷积核之间的互相关计算,池化层不包含参数。

最大池化的原理分析

Max pooling的主要功能是压缩,却不会损坏识别结果。 这意味着卷积后的Feature Map中有对于识别物体不必要的冗余信息。 那么我们就反过来思考,这些“冗余”信息是如何产生的。

全连接层(Fully Connected Layer)

当抓取到足以用来识别图片的特征后,接下来的就是如何进行分类。

全连接层(也叫前馈层)就可以用来将最后的输出映射到线性可分的空间。 通常卷积网络的最后会将末端得到的长方体平摊(flatten)成一个长长的向量,并送入全连接层配合输出层进行分类。

感受野

例如图片是3通道:

卷积核为7*7的,则卷积核所需要的参数个数为:7*7=49个

卷积核为3个3*3的,则卷积核所需要的参数个数为:(3*3*3) =27

一张250*250的图片和一张500*500的图片,卷积层的权重参数数谁多?

答案:一样多

卷积神经网络的多种模型

LeNet:第一个成功的卷积神经网络应用

AlexNet:类似LeNet,但更深更大。使用了层叠的卷积层来抓取特征(通常是一个卷积层马上一个max pooling层)

ZF Net:增加了中间卷积层的尺寸,让第一层的stride和filter size更小。

GoogLeNet:减少parameters数量,最后一层用max pooling层代替了全连接层,更重要的是Inception-v4模块的使用。

VGGNet:只使用3x3 卷积层和2x2 pooling层从头到尾堆叠。 ResNet:引入了跨层连接和batch normalization。

DenseNet:将跨层连接从头进行到尾。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/30 12:20:55

django基于python的社区老年人关爱服务系统的设计与实现

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着人口老龄化加剧,社区老年人关爱服务需求日益增长。传统服务模式存在效率低、资源分配不均等问题&…

作者头像 李华
网站建设 2026/4/5 8:29:12

django-flask基于python的大学生兼职网站的设计与实现

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着互联网技术的快速发展,在线兼职平台已成为大学生获取社会实践机会的重要渠道。本文基于Python技术栈&…

作者头像 李华
网站建设 2026/4/1 3:15:33

学霸同款9个AI论文软件,本科生轻松搞定毕业论文!

学霸同款9个AI论文软件,本科生轻松搞定毕业论文! 1.「千笔」—— 一站式学术支持“专家”,从初稿到降重一步到位(推荐指数:★★★★★)对于本科生来说,论文写作不仅是对知识的综合运用&#xff…

作者头像 李华
网站建设 2026/4/1 5:05:22

槽型光电开关传感器原理图设计,已量产(光电传感器)

目录 1、光电检测前端:信号的 “源” 电路 2、信号缓冲:小器件解决电平与驱动问题 3、电路工作流程:从遮挡到信号输出 4、设计细节:避免踩坑的几个小技巧 在嵌入式设备的位置限位、物料计数等场景中,槽型光电开关是性价比极高的传感器方案 —— 它通过遮挡发射器与接收…

作者头像 李华
网站建设 2026/4/8 2:50:05

零基础学习大语言模型之十四:注意力机制

本文首先介绍了自然语言处理从基于规则到深度学习的演进过程,重点分析了词嵌入技术在语义表示中的关键作用。随后详细阐述了编码器-解码器结构,引入了注意力机制和多头注意力的讨论。注意力机制是当前生成式AI取得突破的技术基础。 生成式人工智能是指通过学习训练数据的分布…

作者头像 李华
网站建设 2026/3/30 15:21:39

高性能32位MCU微控制器数字电源参考方案

在电源管理领域,数字电源凭借其智能化、可编程与高集成度优势,正逐步取代传统开关电源。数字电源不仅具备基本的电压转换功能,还集成了实时通信、数控调节及环境参数监测等能力,大幅提升了系统的可靠性与灵活性。英尚微电子基于MM…

作者头像 李华