从零开始理解 CNN上为什么图像任务需要卷积神经网络 星恒随风个人主页❄️ 个人专栏《指针合集》《C语言基础》《数据结构》《机器学习导论》《前端基础》✨ 数据即知识压缩即智能写在前面在前面的文章中我们已经学习了 MLP也就是多层感知机。MLP 的核心思想是把输入数据看成一个向量然后通过多层线性变换和激活函数完成预测。但是当我们把 MLP 直接用于图像任务时很快就会遇到一个问题图像有空间结构目录从零开始理解 CNN上为什么图像任务需要卷积神经网络一、先从一个问题开始MLP 为什么不太适合直接处理图像二、图片被“压扁”后空间关系被破坏了三、CNN 的核心想法不要一口气看全图而是先看局部四、卷积核可以理解成什么五、类比卷积核像侦察兵六、特征图是什么七、CNN 为什么适合图像八、特点一局部连接——先看局部再理解整体九、特点二参数共享——同一个探测器全图复用十、特点三层次化特征提取——从边缘到语义十一、CNN 和 MLP 的本质区别十二、CNN 的历史位置十三、上篇总结一、先从一个问题开始MLP 为什么不太适合直接处理图像假设有一张224 × 224的 RGB 图片。它的输入维度是224 × 224 × 3 150528也就是说一张图片在计算机眼里本质上是150528 个数字。如果使用 MLP通常要先把图片拉平成一个长向量224 × 224 × 3 → 150528这听起来好像可以但问题很快出现了。二、图片被“压扁”后空间关系被破坏了我们识别图片时不只是看每个像素的数值还要看它们之间的空间关系。例如识别一片水稻叶片时我们可能会关注视觉线索对识别有什么帮助叶片边缘判断叶片轮廓叶脉纹理判断植物结构颜色变化判断是否发黄、枯萎病斑形状判断病害类型病斑分布判断病害严重程度这些信息都不是孤立像素能表达的而是由局部区域共同构成的。如果把图片拉平成一维向量模型当然仍然能训练但它没有天然利用图像的二维空间结构。形象理解这就像你把一张地图剪成很多小块然后排成一条直线。地图上的城市、河流、道路都还在但它们之间的相对位置关系变得很难利用。图 1MLP 将二维图像拉平成一维向量后局部空间关系会被削弱。三、CNN 的核心想法不要一口气看全图而是先看局部CNN 的思路非常符合人类看图像的方式。我们看一张图时往往不是一眼就理解所有内容而是先观察局部边缘在哪里纹理有什么变化有没有明显斑点有没有局部形状局部结构之间如何组合CNN 也是这样做的。它不会让每个神经元一开始就连接整张图片而是使用一个小窗口在图片上滑动一块一块地观察局部区域。这个小窗口就是卷积核也叫 filter 或 kernel四、卷积核可以理解成什么卷积核可以理解成一个特征探测器它在图片上滑动每到一个位置就问一个问题“这里有没有我想找的特征”比如有没有竖直边缘有没有水平边缘有没有颜色突变有没有某种纹理有没有病斑形状如果有输出值就比较大如果没有输出值就比较小。所以卷积层不是神秘操作它更像是一组会学习的“图像侦察兵”。图 2卷积核在图像上滑动每次只观察一个局部区域并生成对应的特征响应。五、类比卷积核像侦察兵你可以把整张图片想象成一片地图。卷积核就是一个侦察兵。它不会一次看完整张地图而是从左到右、从上到下慢慢巡逻。每走到一个位置它就检查这里有没有边缘这里有没有纹理这里有没有斑点这里有没有某种局部形状如果发现目标它就在输出图上做一个标记。这张输出图就叫特征图Feature Map六、特征图是什么特征图可以理解为模型在整张图片上找到某种特征的位置分布图。比如一个卷积核负责找竖直边缘另一个卷积核负责找水平边缘另一个卷积核负责找斑点纹理另一个卷积核负责找颜色突变。那么不同卷积核就会输出不同的特征图。换句话说卷积层的输出不再是原始像素而是模型眼中“有用特征”的响应分布。图 3不同卷积核会学习不同的观察方式因此会产生不同的特征图。七、CNN 为什么适合图像CNN 之所以适合图像主要依赖三个核心特点特点含义为什么重要局部连接一次只看图像局部区域符合图像的局部结构特点参数共享同一个卷积核在整张图上复用大幅减少参数量层次化特征提取从简单特征逐层组合成复杂特征符合视觉理解过程八、特点一局部连接——先看局部再理解整体图像中的一个像素通常和它附近的像素关系更密切。比如一条边缘往往来自相邻像素之间的颜色或亮度突变。一个病斑也往往表现为某个局部区域内颜色、纹理、形状的共同变化。因此CNN 没有必要让每个神经元一开始就看整张图。它只需要先看局部区域。例如一个3×3卷积核每次只观察一个3×3的小窗口。这就是局部连接。九、特点二参数共享——同一个探测器全图复用假设有一个卷积核学会了检测“竖直边缘”。那么这个卷积核不应该只在图片左上角生效。因为竖直边缘可能出现在图片任何位置。所以 CNN 会让同一个卷积核在整张图片上滑动。这就是参数共享。参数共享的好处减少参数量提升特征复用能力同一个特征探测器可以在全图工作更适合处理目标位置变化的问题。十、特点三层次化特征提取——从边缘到语义CNN 最精彩的地方是它可以逐层构建特征。浅层可能学到边缘 亮暗变化 颜色变化 简单纹理。中间层可能学到角点 局部图案 叶脉纹理 病斑边缘 局部形状组合。深层可能学到叶片整体结构 病害区域模式 物体部件 类别相关语义。这就是层次化特征提取。图 4CNN 通过多层卷积逐步完成从低级视觉特征到高级语义特征的抽象。十一、CNN 和 MLP 的本质区别对比点MLPCNN输入方式通常先拉平成向量保留图像二维结构参数连接全连接局部连接参数复用较弱同一卷积核全图共享图像结构利用不直接利用空间结构天然利用空间结构适合任务表格、简单向量特征图像、视觉任务所以 CNN 不是简单地“比 MLP 更高级”。更准确地说CNN 的结构更符合图像数据的特点。十二、CNN 的历史位置CNN 并不是突然出现的。LeNet 是早期非常经典的 CNN 代表被用于手写字符和文档识别任务。后来AlexNet 在 ImageNet 大规模图像分类任务中取得突破让深度卷积神经网络真正成为计算机视觉领域的重要主线。CNN 不只是一个“课堂概念”而是推动计算机视觉发展的重要基础结构。后面的 VGG、ResNet、YOLO 等模型都和 CNN 的思想密切相关。十三、上篇总结这一篇我们主要解决了一个问题为什么图像任务需要 CNN答案可以总结为三句话第一图像有空间结构不能简单当成长向量处理。第二卷积核可以像滑动窗口一样扫描局部区域提取边缘、纹理、斑点等局部特征。第三CNN 通过局部连接、参数共享和层次化特征提取更自然地适配图像数据。