2022算法岗秋招面试总结——CV基础(一)

本文总结了深度学习面试中常见的问题,涉及YOLOv4相对于YOLOv3的改进、NMS在目标检测中的作用、K-means算法的解释、模型训练中的loss收敛策略、提高目标检测性能的方法、样本不均衡的解决方案、卷积核的选择、提高CNN泛化能力的技巧、BN层的工作原理及应用、深度学习的超参数调整、FocalLoss的作用、解决遮挡问题的策略以及算法加速和PyTorch中nn.module与nn.functional的区别。

2022秋招已经结束,这是我从去年8月份投简历以来,面试被问到的一些问题做了总结,方便自己以后回顾,现将一部分分享给大家,后面想起来继续更新,如有问题,还请纠正。

在这里插入图片描述

1、YOLOv4相对于YOLOv3做了哪些改进?

  • 输入端:主要是训练时对输入的改进,主要包括Mosaic数据增强、标签平滑、SAT自对抗训练;
  • BackBone主干网络:将各种新的方式结合起来,包括:CSPDarknet53、Mish激活函数;
  • Neck:目标检测网络在BackBone后面添加的一些层,比如Yolov4中的SPP模块、FPN+PAN结构;
  • Prediction:输出层的锚框机制和Yolov3相同,主要改进的是训练时的损失函数CIOU_Loss,以及预测框筛选的nms变为DIOU_nms;
  • 损失函数组成:回归框的预测误差、分类误差、置信度误差;

2、目标检测中的NMS,介绍一下?

NMS就是非极大值抑制,具体算法流程如下:

  • 设定一个阈值,将低于该阈值的预测框进行剔除;
  • 将所有框的按照得分进行排序,选中最高分及其对应的框;
  • 遍历其余的框,如果和当前最高分框的重叠面积(IOU)大于一定阈值,我们就将框删除。(删除是因为超过设定阈值,认为两个框的里面的物体属于同一个类别,比如都属于狗这个类别。)
  • 从未处理的框中继续选一个得分最高的,重复上述过程,找到所有被保留下来的框。如果有很多框的话,说明检测场景中有多个类别。

3、关于K-means算法,讲讲?

算法思想:
根据给定的n个数据对象的数据集,构建k个划分聚类的方法,每个划分聚类即为一个簇。该方法将数据划分为n个簇,每个簇至少有一个数据对象,每个数据对象必须属于而且只能属于一个簇,同时要满足同一簇中的数据对象相似度高,不同簇中的数据对象相似度较小,聚类相似度是利用各簇中对象的均值来进行计算的。

操作流程:

  • 首先,如果已经知道要分为2类,随机选取样本空间的2个数据点作为起始点,计算其余的点分别到2个起始点的距离,接着将距离最近的点归为一类;
  • 接着,将分好的两个类别中,找到对应的质心,计算其余点到两个质心的距离,按照距离远近进行分类,距离最近的归为一类;
  • 最后,重复上述操作,直到分出来的类,与上一次的结果一致,分类结束。

**K值的确定:**Kmeans聚类的评估方法是看误差项平方和,就是计算所有点到相应簇中心的距离均值,k值越大,误差项平方和(SEE)越小,我们就是要求出随着k值的变化SSE的变化规律,找到SSE减幅最小的k值,或者看SEE曲线变化一阶导数变化最大的地方对应的K值。

4、在模型训练的过程中,遇到了一些情况如何收敛loss的?

  • loss曲线在整体趋势为下降时,如果出现起伏,也就是一上一下开始震荡,如下图所示,为了减少这种起伏状态,可以增加bat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值