卷积神经网络(Convolutional Neural Network, CNN)是一种专门用于处理网格状数据 (如图像、语音、视频)的深度学习模型。它的核心思想是通过局部连接 和权值共享来有效提取数据的空间特征,同时大大减少模型参数。

一、 核心动机:为什么需要CNN?
传统全连接神经网络(Dense Layer)在处理图像时存在巨大缺陷:
- 参数爆炸:一张 1000x1000 像素的彩色图像,输入层就有 300 万个节点。如果第一隐藏层有 1000 个节点,仅这一层就需要 30 亿个参数,训练成本极高。
- 空间信息丢失:全连接层将图像"压平"成一维向量,破坏了像素之间的空间关系(如边缘、纹理)。
CNN 通过模仿人类视觉系统,解决了这两个问题。
二、 核心组件详解
1. 卷积层 (Convolutional Layer)
这是 CNN 的灵魂,用于提取特征。
- 工作原理 :使用一个小的卷积核 (Filter/Kernel,如 3x3 或 5x5 的矩阵)在输入图像上从左到右、从上到下滑动 。在每一个位置,计算卷积核与对应图像区域的点积 ,得到一个数值,最终输出一个特征图(Feature Map)。
- 关键概念 :
- 局部连接:每个神经元只连接输入的一小块区域(感受野),而不是全部。
- 权值共享:同一个卷积核在图像不同位置使用相同的权重。这意味着无论边缘出现在图像的哪个角落,都由同一个"边缘检测器"来识别。
- 参数 :
Stride(步长,决定滑动距离)、Padding(填充,决定输出尺寸)。
2. 池化层 (Pooling Layer)
用于降维 和保持平移不变性。
- 工作原理 :对特征图进行下采样,通常使用最大池化 (Max Pooling)或平均池化(Average Pooling)。例如,一个 2x2 的池化窗口会取该区域内最大的值作为输出。
- 作用 :
- 减少计算量,防止过拟合。
- 使模型对图像中物体的微小位移(如猫头稍微移动)不敏感。
3. 全连接层 (Fully Connected Layer)
通常在网络的末端,将提取到的二维特征图"展平"成一维向量,然后像传统神经网络一样进行分类或回归。
三、 经典架构流程
一个典型的 CNN 结构遵循"卷积-激活-池化"的堆叠模式,最后接全连接层。
输入图像 → [卷积层 → 激活函数(ReLU) → 池化层] × N → 展平 → 全连接层 → 输出
- 浅层卷积:提取低级特征(如边缘、角点、颜色)。
- 深层卷积:组合低级特征,形成高级语义特征(如眼睛、鼻子、车轮)。
四、 经典模型示例
- LeNet-5:用于手写数字识别,开创了 CNN 的先河。
- AlexNet:在 ImageNet 竞赛中一战成名,证明了深度学习在视觉领域的巨大潜力。
- VGGNet:探索了网络深度的重要性(使用连续的 3x3 卷积)。
- ResNet:引入"残差连接",解决了深度网络难以训练(梯度消失)的问题。
五、 总结
CNN 通过卷积 提取局部特征,通过池化 压缩信息,通过深度堆叠组合复杂特征,使其成为计算机视觉领域最基础且最强大的工具之一。