
卷积神经网络 是一种专门用于处理具有类似网格结构数据的深度学习神经网络。最典型的应用就是图像数据(可以看作是二维的像素网格)。“卷积”这个词指的是网络中最核心的一种操作——卷积运算。
简单来说,CNN 被设计用来自动且有效地学习图像的空间层次特征。
传统机器学习:需要人工设计特征(如边缘、角点)。
CNN:直接从原始像素数据中学习这些特征,从低级的边缘、纹理,到中级的图案、部件,再到高级的物体整体。
想象一下一张 1000x1000 像素的彩色图片。如果直接输入到一个全连接神经网络,输入层就需要 300 万个节点(1000 * 1000 * 3)。假设第一个隐藏层有 1000 个节点,那么仅这一层就会有 30 亿(3e9) 个连接参数!这会导致:
计算量巨大,难以训练。
极易过拟合。
CNN 通过以下三种核心思想解决了这些问题:
局部感受野:人的视觉皮层细胞只负责处理一小块区域的视觉信息。CNN 借鉴了这一思想,每个神经元只与前一层的一个小区域(比如 3x3 或 5x5)相连。这个小区域就是“局部感受野”。这极大地减少了参数数量。
权值共享:同一个卷积核(一组固定的权重)会滑过整个图像。这意味着无论这个特征(比如一个垂直边缘)出现在图像的哪个位置,都由同一个卷积核来检测。这进一步大幅减少了参数。
池化:对输入进行降采样,减少数据量,同时保留最重要的信息。
一个典型的 CNN 由多个层级堆叠而成,主要包括以下几种类型的层:
功能:使用多个卷积核在输入数据上进行滑动窗口计算,以提取各种不同的特征。
卷积核:可以看作是一个特征探测器,通常是一个小矩阵(如 3x3, 5x5)。不同的卷积核用于检测不同的特征(边缘、颜色、纹理等)。
工作原理:卷积核在输入图像上逐像素滑动,在每一步,计算核与对应图像区域的点积,生成一个二维的特征图。
示例:一个检测垂直边缘的卷积核,在与图像的垂直边缘区域重合时,会输出一个高值。
重要概念:
步长:卷积核每次移动的像素数。步长越大,输出特征图越小。
填充:在输入图像边缘填充一圈0,以控制输出特征图的大小。
功能:将卷积层的输出进行非线性变换,使网络能够学习复杂的模式。没有它,无论多深的网络都等价于一个单层线性模型。
常用函数:ReLU。它简单地将所有负值置为零(f(x) = max(0, x)),计算高效且能有效缓解梯度消失问题。
功能:逐步降低数据维度,减少计算量和参数数量,同时也能防止过拟合。它还能使网络对输入图像的小幅平移(即物体位置稍有变化)不敏感。
工作原理:在特征图上用一个窗口(通常是 2x2)进行滑动,并对窗口内的值进行一个操作。
最大池化:取窗口内的最大值。这是最常用的方法,能更好地保留纹理特征。
平均池化:取窗口内的平均值。
效果:通常步长等于窗口大小,所以一个 2x2 的池化会将特征图的宽和高都减半,数据量变为原来的 1/4。
功能:在经过多轮卷积和池化后,提取出的高级特征图会被展平成一个一维向量,并输入到一个或多个全连接层中。它的作用是将学习到的“分布式特征表示”映射到最终的样本标记空间(即分类结果)。
位置:通常位于网络的最后几层。
输出层:最后一个全连接层通常使用 Softmax 激活函数,将输出转换为每个类别的概率分布。
输入:原始图像。
特征学习:
第一层:卷积层使用多个小核,提取低级特征(如边缘、角点)。 -> ReLU 激活 -> 池化层降维。
中间层:更深的卷积层,接收上一层的特征图,组合低级特征形成更复杂的中级特征(如眼睛、鼻子、轮子)。 -> ReLU -> 池化。
深层:继续卷积,组合中级特征形成高级特征和语义概念(如人脸、汽车)。 -> ReLU。(深层可能不再使用池化)。
分类:
展平:将最后卷积层输出的三维特征图展平成一维向量。
全连接层:学习这些高级特征之间的非线性组合。
输出层:通过 Softmax 输出每个类别的概率(如:“猫:95%”,“狗:4%”,“其他:1%”)。
LeNet-5 (1998):由 Yann LeCun 提出,用于手写数字识别,是 CNN 的开山鼻祖。
AlexNet (2012):在 ImageNet 大赛上以巨大优势夺冠,引发了深度学习的热潮。它更深,并成功使用了 ReLU 和 Dropout 等技术。
VGGNet (2014):探索了网络深度,通过堆叠小的 3x3 卷积核来构建更深的网络,结构简洁。
GoogLeNet (2014):引入了 Inception 模块,在增加深度的同时高效地控制了计算成本。
ResNet (2015):提出了 残差连接 解决了极深网络的梯度消失和退化问题,使得构建上百甚至上千层的网络成为可能,是当前许多模型的基础。
图像识别与分类:最经典的应用,如物体识别、场景识别。
目标检测:不仅识别物体是什么,还要定位出它在图像中的位置(边框)。如 YOLO, Faster R-CNN。
图像分割:对图像中的每个像素进行分类,常用于自动驾驶(识别道路、行人)、医疗影像分析(分割肿瘤)。
人脸识别:识别或验证人物身份。
图像生成:通过生成对抗网络(GAN)或扩散模型生成新的图像。
其他:视频分析、图像风格迁移、图像超分辨率重建等。
卷积神经网络通过其独特的局部连接、权值共享和池化结构,高效地处理图像等网格数据,能够自动学习从低级到高级的层次化特征表示。它不仅是计算机视觉领域的基石,其思想也深刻影响了语音识别、自然语言处理等其他方向,是深度学习史上最重要的发明之一。