核心要点

  • 局部连接 + 权值共享让参数量与图像尺寸解耦,远小于全连接

  • 卷积核全图复用带来平移等变,目标位置变了特征也跟着平移

  • 堆叠卷积与池化逐层扩大感受野,浅层学边缘、深层学语义

  • 小数据/边缘部署选 CNN,大数据全局建模选 ViT,可蒸馏互补

简要回答

CNN 用局部感受野滑动扫描图像,同一卷积核在全图权值共享,天然具有平移等变性,以远少于全连接的参数学到从边缘纹理到物体语义的层次特征。

标准回答

局部连接(Locality):每个神经元只关注局部 patch,符合图像「相邻像素强相关」的先验,避免全连接带来的参数爆炸。

权值共享(Weight Sharing):同一 kernel 扫过整张图,参数量与图像尺寸解耦,并带来平移等变性——目标平移后特征图也相应平移,利于检测/分割。

层次特征(Hierarchy):浅层学边缘、纹理;中层学部件;深层学语义(可用 Grad-CAM 等可视化验证)。典型栈:Conv → 激活(ReLU)→ Pooling/Stride 降采样 → 全局池化或 FC 分类。

与现代 ViT 对比:ViT 依赖大数据预训练做全局建模;CNN 在小数据、边缘部署(手机/NPU)场景仍常见。工业界也有 ConvNeXt、混合架构等折中方案。

工程落地:预处理(resize、normalize)、数据增强(翻转、裁剪)与 OpenCV 流水线常配合 PyTorch 训练。详见知识库 计算机视觉入门

常见误区

⚠️ 常见踩坑

把「平移不变性」说成「旋转不变性」(需数据增强或专用结构);只会背 AlexNet 层数却不会解释 inductive bias;忽视 padding/stride 对输出尺寸的影响。

追问

追问 11×1 卷积有什么用?

跨通道线性组合(升维/降维)、在不扩大感受野的前提下做 channel mixing,后接激活引入非线性。Inception、ResNet bottleneck 中用于减参。

追问 2CNN 和 ViT 如何选型?

题库专题:什么是卷积神经网络(CNN)?何时使用?

数据少、需强归纳偏置、边缘算力紧 → CNN/ConvNeXt;有大规模预训练、追求全局上下文 → ViT/Swin。也可蒸馏:大 ViT 教小 CNN。

题库延伸:与本追问相关的专题题 → 什么是卷积神经网络(CNN)?何时使用?

追问 3感受野如何计算?

逐层递推:第 l 层感受野 RF_l = RF_{l-1} + (k_l - 1) × ∏ 之前各层 stride,其中 k 为卷积核大小。直觉上 stride 和池化会成倍放大感受野,堆叠更多层、更大核或空洞卷积都能扩大它。小目标检测要保证浅层特征图感受野不过大,否则细节被淹没。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。

🛠️ AI 工具

  • OpenCV

    开源计算机视觉库,87,181+ stars。全球最广泛使用的计算机视觉库,提供 2500+ 优化算法,涵盖图像处理、目标检测、人脸识别、相机标定等领域。支持 C++、Python、Java,是 AI 视觉应用的基石。

  • Pytorch

    Meta 开源的深度学习框架,100K+ stars。以动态计算图和 Pythonic 风格著称,在学术界和工业界都有广泛应用,支持分布式训练、移动端部署和 ONNX 导出