你有 8 万张医学影像,二分类,域与 ImageNet 差异较大,标注质量中等。候选策略:A 冻结 ImageNet 预训练 ResNet-50,只训最后 FC;B 全量微调 ResNet-50;C 先冻结主干训 head 几个 epoch,再解冻全量微调;D 随机初始化训练一个小 CNN。你会选哪个?学习率、BatchNorm、数据增强、类别不平衡分别怎么处理?请说明依据和风险。
面试官在考什么
判断候选人是否理解迁移学习在域差异/数据量/标注质量下的策略选择,以及 BN、学习率、增强和不平衡的工程细节。
回答框架 · 前两步
- 选 C 通常更稳:先冻结主干训 head,避免随机 head 的大梯度破坏预训练特征;再解冻全量用小学习率微调。8 万张且域差异大,全量微调可行,但要防过拟合和负迁移。
- 学习率:head 用较大 lr(如 1e-3 量级),主干微调用小 lr(如 1e-5~1e-4 量级),可分层衰减;训练策略用余弦/阶梯。
还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。
延伸阅读
想看这个方向的整体准备路线? 进入「深度学习基础」方向页
同一能力域的其他题
- 某模块原来是单层 7×7 卷积:输入 56×56×64、输出 56×56×64、stride=1、padding=3。现在候选方案是堆 3 个 3×3 卷积(每层通道都是 64→64、stride=1、padding=1)。请回答:两者的感受野是否相同?参数量之比是多少?FLOPs 之比是多少(按乘法次数算即可)?并说明在什么样的场景下这个替换不划算。
- 在一个移动端实时语义分割任务中,输入 512×512,某阶段特征图为 64×64×128,需要下采样到 32×32×128,同时要尽量保留小目标边界。候选方案:A 3×3 stride=2 conv,padding=1;B 2×2 max pooling stride=2;C 3×3 average pooling stride=2;D 先 1×1 conv 把通道降到 64,再 3×3 stride=2 conv 升回 128。你会选哪种?请给出参数/乘加量级、对边界和小目标的影响,以及部署端算子支持/延迟上的取舍。
- 团队里有人提议把线上检测模型 backbone 中所有 MaxPool 全部换成 stride=2 的 3×3 卷积,理由是「池化丢信息、卷积可学习、精度更高」。模型输入 640×640,backbone 下采样 32 倍,当前在端侧 NPU 上单帧 38ms,业务预算是 33ms(30FPS),INT8 量化部署。作为技术负责人,你会批准、有条件批准还是否决?请给出你的判断依据和决策链。
- 一段 backbone 按顺序是:conv3×3 stride2 → conv3×3 stride1 → maxpool2×2 stride2 → conv3×3 stride1(全部 same padding,无空洞)。最后一层输出上一个像素,对应到输入图像上的理论感受野是多少像素?请写出从后往前的推导过程。另外,把第三层的 maxpool2×2 stride2 换成 conv3×3 stride2,感受野变成多少?
- 在一个分割模型中,输入 512×512,backbone 前几层依次为:3×3 s1、3×3 s2、3×3 s1、2×2 maxpool s2、3×3 s1。请计算最后一个 3×3 输出特征图位置的理论感受野。若大目标直径约 200 像素,仅继续堆 3×3 s1 卷积需要多少层?你会怎么改结构,在计算量、特征图分辨率和感受野之间取舍?
- 你负责一个 512×512 输入的缺陷分割任务,目标尺寸跨度极大:小的约 8×8 像素,大的约 300×300 像素。当前 backbone 的理论感受野已经超过 900 像素,但小目标召回长期上不去,大目标边缘也发糊。团队中 A 主张「继续加空洞卷积扩大感受野」,B 主张「感受野早就够了,问题在别处」。你如何判断谁对,并给出下一步方案?