从全连接层到卷积神经网络:D2L项目中的计算机视觉基础
引言:为什么需要卷积神经网络?
在传统机器学习中,处理表格数据时,全连接的多层感知机(MLP)是非常有效的工具。表格数据的特点是每行代表一个样本,每列代表一个特征。然而,当面对高维感知数据(如图像)时,全连接网络会面临巨大挑战。
以分辨猫狗图片为例,假设我们收集了百万像素(1MP)的图片数据集。这意味着每个输入样本有100万个维度。即使将隐藏层压缩到1000个神经元,全连接层也需要10^9个参数。这样的参数量不仅训练成本高昂,而且容易过拟合。
图像数据的结构性特征
人类和计算机能有效识别图像,是因为图像具有以下关键特性:
- 平移不变性:物体识别不应依赖于物体在图像中的具体位置
- 局部性:图像的局部区域通常包含足够的信息,不需要考虑相距很远的像素
这些特性启发我们设计更高效的网络结构——卷积神经网络(CNN)。
从全连接层到卷积层
全连接层的局限性
传统MLP处理图像时,将二维图像展平为一维向量,丢失了空间结构信息。更合理的做法是将隐藏层也保持为二维结构,使每个隐藏单元对应图像的一个空间位置。
数学上,我们可以用四阶张量W来表示权重:
[H]_{i,j} = U_{i,j} + ∑∑ W_{i,j,k,l} X_{k,l}
这种表示虽然保留了空间信息,但参数量仍然巨大。
引入卷积思想
通过施加平移不变性约束,我们要求权重不依赖于具体位置(i,j),简化为:
[H]_{i,j} = u + ∑∑ V_{a,b} X_{i+a,j+b}
这本质上就是卷积操作!我们使用相同的滤波器V在整个图像上滑动计算。
再施加局部性约束,限制感受野范围Δ:
[H]_{i,j} = u + ∑_{a=-Δ}^Δ ∑_{b=-Δ}^Δ V_{a,b} X_{i+a,j+b}
这样,参数量从O(n²)骤降至O(Δ²),实现了参数共享和局部连接。
卷积的数学本质
严格来说,上述操作在数学上称为互相关(cross-correlation),而卷积的定义是:
(f*g)(i,j) = ∑∑ f(a,b) g(i-a,j-b)
两者的区别仅在于滤波器是否翻转。在深度学习中,我们通常忽略这种区别,因为学习过程会自动适应滤波器的方向。
多通道扩展
真实图像是三维张量(高度×宽度×通道),因此需要扩展卷积操作:
- 输入X变为三阶张量X_{i,j,c}
- 滤波器V变为四阶张量V_{a,b,c,d}
- 输出H变为三阶张量H_{i,j,d}
完整公式为:
[H]_{i,j,d} = ∑∑∑ V_{a,b,c,d} X_{i+a,j+b,c}
每个输出通道d可以学习检测不同的特征(如边缘、纹理等)。
卷积神经网络的优势
- 参数效率:共享权重大幅减少参数量
- 平移等变性:物体移动导致特征图相应移动
- 局部感知:更适合图像的局部相关性
- 层次化特征:浅层学习简单特征,深层组合为复杂特征
总结
卷积神经网络通过巧妙利用图像的空间结构特性,解决了全连接网络在处理图像数据时的诸多问题。D2L项目中展示的从全连接层到卷积层的演变过程,揭示了深度学习模型设计中的核心思想:根据问题特性设计合适的归纳偏置,从而构建高效且强大的模型。
理解这些基础概念对于后续学习更复杂的CNN架构(如AlexNet、ResNet等)至关重要。在接下来的章节中,我们将深入探讨卷积神经网络的具体实现和优化方法。
热门内容推荐
最新内容推荐
项目优选









