一、一句话定义
卷积神经网络(Convolutional Neural Network,CNN) 是专门用来处理网格结构数据(最常见是图片)的深度神经网络,核心靠「卷积操作」提取图像局部特征,大幅减少参数量,解决普通全连接网络处理图片时参数爆炸、易过拟合的问题。
二、为什么普通神经网络不适合图片?
一张 224×224 的 RGB 图片:224×224×3 = 150528 个像素。
如果直接全连接:第一层权重参数会达到上亿级,训练慢、极易记住训练集噪声(过拟合)。
CNN 两大优势:
局部感受野:只看一小块像素,不一次性看整张图;
权值共享:提取同一种特征(边缘、纹理)用同一套卷积核,极大减少参数。
三、CNN 五大核心层(完整流水线)
- 卷积层 Conv(核心)
卷积核(滤波器 Kernel)
一个小矩阵(3×3、5×5 最常用),相当于特征探测器:
3×3 核 → 检测边缘;
横向核 → 检测横线条;
对角核 → 检测斜纹;
多层卷积叠加:低层抓边缘纹理,中层抓五官 / 部件,高层抓完整物体。
卷积计算逻辑
滑动窗口:卷积核在图片矩阵上逐格滑动,对应位置相乘再求和,生成一张特征图 Feature Map。
超参数:
步长 Stride:每次滑动几格;
填充 Padding:边缘补 0,控制输出尺寸不变。 - 激活层(ReLU 为主)
卷积输出是线性结果,加非线性激活,让网络能学习复杂图案。
ReLU:负数置 0,正数保留,计算快、缓解梯度消失。 - 池化层 Pooling(下采样)
作用:压缩特征图尺寸,保留关键特征,降低计算量
两种常用:
最大池化 MaxPool:窗口内取最大值,保留最明显特征;
平均池化 AvgPool:窗口取平均,柔和全局信息。 - 归一化层 BN(Batch Normalization)
把每层数据标准化,加速训练、稳定梯度、减轻过拟合。 - 全连接层 FC / 分类头
经过多轮「卷积 + 激活 + 池化」后,把 2D 特征图展平成一维向量,再接全连接层,最后输出分类概率(如猫 / 狗 / 车)。
四、典型经典 CNN 结构递进
LeNet-5(1998):最早 CNN,手写数字识别,两层卷积;
AlexNet(2012):CNN 爆发起点,ReLU、Dropout、GPU 训练,图像分类夺冠;
VGG16/VGG19:全部 3×3 小卷积堆叠,结构简单易复现;
GoogLeNet(Inception):多尺度卷积并行,降低参数量;
ResNet 残差网络:引入残差连接,解决深层网络梯度消失,能训练上百层;
MobileNet:深度可分离卷积,轻量化 CNN,手机 / 嵌入式设备使用。
五、CNN 完整工作流程举例(猫狗分类)
输入彩色图片 →
卷积 1:提取边缘、明暗轮廓;
ReLU 激活 + 最大池化:缩小图片;
卷积 2:组合边缘,提取纹理、色块;
卷积 3:组合纹理,提取眼睛、耳朵等局部部件;
深层卷积:组合部件,识别整张猫 / 狗轮廓;
展平 + 全连接层 → 输出「是猫 / 是狗」概率。
六、CNN 适用场景
计算机视觉主流:图像分类、目标检测(YOLO)、图像分割、人脸识别;
也可处理一维网格数据:语音信号、时序数据;
医疗影像识别、自动驾驶视觉、OCR 文字识别。
七、核心特点总结
局部感知:不用全局连接,模拟人眼先看局部;
权值共享:一个卷积核全图复用,参数远少于全连接;
平移不变性:物体在图中左右上下移动,依然能识别;
分层特征提取:低层简单特征,高层抽象语义特征。