简要回答
CNN 用局部感受野滑动扫描图像,同一卷积核在全图权值共享,天然具有平移等变性,以远少于全连接的参数学到从边缘纹理到物体语义的层次特征。
标准回答
一、先给出结论和背景
- 局部连接(Locality):每个神经元只关注局部 patch,符合图像「相邻像素强相关」的先验,避免全连接带来的参数爆炸。
- 权值共享(Weight Sharing):同一 kernel 扫过整张图,参数量与图像尺寸解耦,并带来平移等变性——目标平移后特征图也相应平移,利于检测/分割。
二、拆开关键步骤和判断点
- 层次特征(Hierarchy):浅层学边缘、纹理;中层学部件;深层学语义(可用 Grad-CAM 等可视化验证)。典型栈:Conv → 激活(ReLU)→ Pooling/Stride 降采样 → 全局池化或 FC 分类。
- 与现代 ViT 对比:ViT 依赖大数据预训练做全局建模;CNN 在小数据、边缘部署(手机/NPU)场景仍常见。工业界也有 ConvNeXt、混合架构等折中方案。
三、补上落地边界和取舍
面试里可以补一个视觉任务例子:卷积神经网络CNN为什么适合图像任务 在分类、检测、分割或多模态理解里分别会影响数据增强、模型结构、指标选择和误检漏检分析。这样回答会比单独讲概念更像真实项目经验。
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:把「平移不变性」说成「旋转不变性」(需数据增强或专用结构);只会背 AlexNet 层数却不会解释 inductive bias;忽视 padding/stride 对输出尺寸的影响。
追问
追问 1:1×1 卷积有什么用?
跨通道线性组合(升维/降维)、在不扩大感受野的前提下做 channel mixing,后接激活引入非线性。Inception、ResNet bottleneck 中用于减参。
追问 2:CNN 和 ViT 如何选型?
题库专题:目标检测中两阶段(R-CNN)与单阶段(YOLO)有何区别?数据少、需强归纳偏置、边缘算力紧 → CNN/ConvNeXt;有大规模预训练、追求全局上下文 → ViT/Swin。也可蒸馏:大 ViT 教小 CNN。
题库延伸:与本追问相关的专题题 → 目标检测中两阶段(R-CNN)与单阶段(YOLO)有何区别?
追问 3:感受野如何计算?
可以这样答:感受野不是只看当前卷积核大小,而是要把前面每一层的 kernel、stride 和 padding 累积起来算。面试时先说“当前层一个特征点能看到输入图像多大区域”,再举例:两层 3×3、stride=1 的卷积,感受野会从 3 扩到 5;如果中间有 stride=2,后续每一层扩张会更快。最后补一句工程意义:感受野太小看不到全局,太大但有效感受野不足也可能抓不住细节。
🔗 相似问题
同一考点的不同问法,换着练更稳
延伸学习
按主题分类的相关资源,便于系统复习
