核心思想与动机
传统全连接神经网络在处理图像时面临巨大问题:一张1000x1000像素的彩色图像有300万个输入节点,假设第一隐层有1000个神经元,就会产生30亿个连接参数,这会导致:

- 参数爆炸,极易过拟合。
- 忽略了图像的空间结构信息,打乱像素顺序的图片和原图没有本质区别。
CNN通过三个关键思想解决了这些问题:
- 局部感受野:每个神经元只与前一层图像的一小块区域(局部区域)连接,而不是全部像素,这一小块区域称为“感受野”。
- 参数共享:同一个特征(如边缘、角点)可能出现在图像的任何位置,我们可以使用相同的卷积核(滤波器) 扫描整张图像来检测该特征,这极大地减少了参数数量。
- 空间或时间上的降采样:通过池化层逐渐降低数据的空间尺寸,进一步减少参数和计算量,同时获得一定程度的平移不变性。
核心组件架构
一个典型的CNN由以下几种层依次堆叠而成:
卷积层(Convolutional Layer) - 核心中的核心
- 功能:使用一组可学习的滤波器(或卷积核) 在输入数据上进行滑动窗口计算,提取局部特征。
- 关键概念:
- 滤波器:一个小尺寸的权重矩阵(如3x3, 5x5),每个滤波器负责提取一种特定的特征(如垂直边缘、45度纹理)。
- 卷积操作:滤波器在输入图像上从左到右、从上到下滑动,在每一步计算滤波器与当前图像区域的点积,结果输出到特征图的对应位置。
- 特征图:一个滤波器滑动计算后产生一张二维矩阵,称为一个“特征图”或“激活图”,它代表了该特征在整个输入上的响应强度分布。
- 深度:一层卷积层通常使用多个滤波器,因此会输出一个三维张量:
[宽度, 高度, 通道数],其中通道数等于该层滤波器的数量。 - 步长:滤波器每次滑动的像素数,步长越大,输出特征图尺寸越小。
- 填充:在输入图像边缘填充0,以控制输出特征图的尺寸(常用
same填充保持尺寸,或valid填充不填充)。
激活函数层(Activation Function Layer)
- 功能:对卷积层的输出进行非线性变换,赋予网络拟合复杂函数的能力。
- 常用函数:
- ReLU:
f(x) = max(0, x),最常用,计算简单,能有效缓解梯度消失问题。 - Leaky ReLU, ELU:ReLU的改进版本,解决“神经元死亡”问题。
- ReLU:
池化层(Pooling Layer)
- 功能:对特征图进行降采样,压缩数据和参数数量,扩大后续层的感受野,并增强模型对微小平移的鲁棒性。
- 操作:类似卷积的滑动窗口,但执行的是最大或平均操作。
- 最大池化:取窗口内的最大值,更常用,能更好地保留纹理特征。
- 平均池化:取窗口内的平均值。
- 常用尺寸:2x2,步长为2,能将特征图尺寸减半。
全连接层(Fully Connected Layer)
- 功能:通常出现在网络的最后几层,将前面卷积和池化层提取到的分布式特征表示映射到样本标记空间(如图像的类别)。
- 操作:将三维的特征图展平成一维向量,然后像传统神经网络一样进行连接和计算。
丢弃层(Dropout Layer) - 正则化技术
- 功能:在训练过程中,随机“丢弃”(暂时忽略)一部分神经元,以防止过拟合,增强模型的泛化能力。
经典CNN架构示例
通过组合这些层,研究者设计了许多里程碑式的网络架构:
- LeNet-5(1998):由Yann LeCun提出,用于手写数字识别,结构为:
卷积 -> 池化 -> 卷积 -> 池化 -> 全连接 -> 输出,奠定了CNN的基本结构。 - AlexNet(2012):在ImageNet大赛上以巨大优势夺冠,点燃了深度学习热潮,使用了ReLU、Dropout、数据增强等技术,网络更深。
- VGGNet(2014):结构非常简洁,全部使用3x3小卷积核和2x2最大池化堆叠而成,证明了网络的深度是性能的关键。
- GoogLeNet / Inception(2014):提出了Inception模块,在同一层使用不同尺寸的卷积核并行提取特征,并高效地合并,在保持性能的同时大幅减少了参数。
- ResNet(2015):革命性地引入了残差连接,通过“跳跃连接”让网络可以轻松地学习恒等映射,解决了极深网络(超过100层)的梯度消失/爆炸和退化问题,使得训练数百甚至上千层的网络成为可能。
- 现代架构:如DenseNet, EfficientNet等,在连接方式、模型效率等方面做了进一步优化。
为什么CNN对图像如此有效?
- 平移不变性:同样的滤波器扫描整个图像,无论特征出现在哪里,都能被检测到。
- 局部性:专注于局部区域,符合图像的语义特征(物体的部分由相邻像素构成)。
- 层次化特征提取:
- 浅层卷积:提取低级特征(边缘、角点、颜色、纹理)。
- 中层卷积:组合低级特征,形成中级特征(部分、图案,如眼睛、轮子)。
- 深层卷积:组合中级特征,形成高级语义特征(整个物体,如人脸、汽车)。
- 参数效率:由于参数共享和局部连接,参数量远少于全连接网络,降低了过拟合风险。
应用领域
- 图像分类:识别图像中的主要物体。
- 目标检测:定位并识别图像中的多个物体(如YOLO, SSD, Faster R-CNN)。
- 语义分割:对图像中的每个像素进行分类(如FCN, U-Net)。
- 人脸识别。
- 图像生成:如生成对抗网络。
- 其他领域:视频分析、医学影像分析、棋盘游戏(AlphaGo)、自然语言处理(文本也可以看作一维序列,使用一维卷积)。
CNN通过卷积层高效提取空间局部特征,通过池化层进行降采样和抽象,通过深度堆叠实现从低级到高级的层次化特征学习,并利用参数共享和局部连接两大法宝,在极大地减少参数量的同时,完美地契合了图像数据的特性,从而成为计算机视觉乃至其他领域最强大、最基础的工具之一。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。