华为云暑期实习面试(软件算法)之解答

原帖:https://www.nowcoder.com/feed/main/detail/b6011f7ef29b419fb939c61e5738f634

3.除了提到的上采样还有什么方法可以应对数据不平衡:

4.YOLO每个版本的变化是什么:以前看过,随便讲了讲先验框和backbone的变化。

YOLO 意思是 You Only Look Once,创造性的将候选区和对象识别这两个阶段合二为一,看一眼图片(不用看两眼哦)就能知道有哪些对象以及它们的位置。YOLO 将图片划分为 7x7=49 个网格(grid),每个网格允许预测出 2 个边框(bounding box,包含某个对象的矩形框),总共 49x2=98 个 bounding box。可以理解为 98 个候选区,它们很粗略的覆盖了图片的整个区域。

创新点:1. 将整张图作为网络的输入,直接在输出层回归 bounding box 的位置和所属的类别。2. 速度快,one stage detection 的开山之作。

YOLOv2 相对 v1 版本,在继续保持处理速度的基础上,从预测更准确(Better),速度更快(Faster),识别对象更多(Stronger)这三个方面进行了改进。其中识别更多对象也就是扩展到能够检测 9000 种不同对象,称之为 YOLO9000。YOLOv2 主要就是加入了很多新技术,如 BN、WordTree,不再赘述。最主要的是引入了 Faster R-CNN 中使用的 **Anchor**,作者通过在所有训练图像的所有边界框上运行 k-means 聚类来选择锚的个数和形状(k = 5,因此它找到五个最常见的目标形状)

- Yolov3 backbone 部分由 Yolov2 时期的 Darknet-19 进化至 Darknet-53,加深了网络层数,引入了 Resnet 中的跨层加和操作。

- Yolov3 借鉴了金字塔特征图思想,小尺寸特征图用于检测大尺寸物体,而大尺寸特征图检测小尺寸物体。

- 针对 anchor box 采用聚类的方法获取合适的尺寸。

Yolov3 的整个网络,吸取了 Resnet、Densenet、FPN 的精髓,可以说是融合了目标检测当前业界最有效的全部技巧。

YOLOv4是YOLO系列目标检测算法的一次改进,相比于之前的版本,YOLOv4引入了许多改进点,包括:

  1. 骨干网络改进:YOLOv4采用了CSPDarknet53作为新的骨干网络,相比于之前的Darknet,CSPDarknet在准确性和速度上都有所提升。
  2. 特征金字塔网络:YOLOv4引入了特征金字塔网络(FPN),用于在不同尺度上提取特征并融合,使得算法可以更好地处理不同大小的目标。
  3. PANet结构:为了进一步增强多尺度特征的融合,YOLOv4引入了PANet结构,通过自顶向下和自底向上的方式进行特征融合,提升了目标检测的准确性。
  4. 更强的数据增强策略:YOLOv4采用了一系列更强大的数据增强策略,包括CutMix、Mosaic等,以增加模型的鲁棒性和泛化能力。
  5. 新的损失函数:YOLOv4使用了改进的损失函数,如CIoU损失函数和Focal损失函数,可以更好地处理目标的回归和分类问题,提高检测性能。

后续YOLO无非就是trick的堆叠,不再赘述。

5.除了yolo还有什么目标检测模型:rcnn那一类的,rcnn是两阶段,yolo是一阶段

目标检测可以分为两种类型:“两阶段(Two-stage)检测方法”和“单阶段(One-stage)检测方法”,前者将检测定义为“从粗到精”的过程,而后者将检测定义为“一步走”的过程。如**基于两阶段的SPPNet、Fast RCNN、Faster RCNN,这些算法首先生成图像中目标物体的建议候选区域,其次再对候选区域做进一步的分类和坐标框回归,得出最后的目标检测结果**;而基于单阶段的YOLO、SSD和RetinaNet等,**这些算法直接通过回归的方式进行图像中目标物体的检测**,即分类和回归同时进行。

两阶段检测精度高但速度慢;单阶段检测精度稍低但速度快,one-stage算法对小目标检测效果较差。

6.目标检测和分割的loss有什么区别:检测的loss是cls loss和bboxloss ,分割的loss不太清楚

在目标检测中,常用的损失函数包括:

  1. 边界框回归损失:用于预测目标边界框的位置和尺寸,常用的损失函数包括平均平方误差(MSE)损失或平滑L1损失。
  2. 分类损失:用于预测目标的类别,常用的损失函数包括交叉熵损失(Cross-Entropy)或者逻辑损失(Logistic Loss)。
  3. 目标置信度损失:用于判断目标是否存在,通常使用二分类损失函数,如交叉熵损失或者逻辑损失。

在分割任务中,常用的损失函数包括:

  1. 像素级分类损失:用于对每个像素进行分类,常用的损失函数是交叉熵损失或者softmax损失。
  2. 像素级回归损失:用于预测每个像素的特定属性,如目标的边界框或者关键点位置,常用的损失函数包括平均平方误差(MSE)损失或平滑L1损失。

总体而言,目标检测的损失函数更侧重于目标的定位和分类,而分割的损失函数则更注重像素级的分类和预测。

以上面经答案均来自本人机器学习面经专栏,感兴趣的同学可以关注牛客专栏 机器学习面试题汇总与解析+蒋豆芽

包含300多道面试题,讲解+答案。

#机器学习面试#
牛友面经解答 文章被收录于专栏

这个专栏专门用于为牛友解答面经,希望能帮助到大家。

全部评论
mark,请问怎么订阅
3 回复 分享
发布于 2023-06-11 17:16 陕西
内容挺全面的,支持
1 回复 分享
发布于 2023-06-12 07:50 陕西
支持
点赞 回复 分享
发布于 2023-06-15 13:08 陕西

相关推荐

不愿透露姓名的神秘牛友
05-29 22:21
Offer1:小马智行,深圳,测试开发工程师,17.0k*16.0,Offer2:追觅科技,深圳,嵌入式工程师,18.0k*15.0,
嵌软狗都不学:各位base深圳的同事,作为也是并肩作战的一员,今天想站在管理视角,和大家开诚布公地聊一聊:从近几个月的上下班数据对比看来,我们发现一个明显的差异:深圳同事的在岗时间普遍比苏州同事短。很多深圳同事早上9点之后才到公司,晚上不到 20 点就下班了;而总部那边,20点半甚至 22 点后还有不少同事在办公室忙碌,特别是研发团队,加班更是常态。相信去过苏州的同事,对这种场景都不陌生。我很好奇,这是因为苏州工作任务太重还是咱们深圳同事效率真的高到能在更短时间内完成工作?MOVA在深圳成立分公司是为了吸引更优秀的人才贡献更多更高质的价值,公司管理层给我反馈的是深圳招到的多是行业的专家大拿,大部分都是薪资比苏州高的,而且我们办公的租金等也远高于苏州的..MOVA虽脱胎于强壮的集团母体不久,各业务板块尚未实现全面盈利,虽说公司管理层目光长远,不纠结当下的人才投入,但行业内的普遍标准是,员工创造的价值要达到公司雇佣成本的 15 倍以上。大家不妨自我审视一下,自己是否达到了这个标准?如果是抱着划水、按时打卡走人拿毛爷爷的心态那不适合来MOVA,那样过下去不但自己过得尴尬也会影响MOVA这个大船的攻城略地的速度.我并非鼓励大家盲目加班,而是倡导高效工作,拒绝无效忙碌,不要让项目进度因低效受影响,也别把精力浪费在和苏州同事拼打卡时长上,提倡更高的人效比;考虑到两地地域和交通差异,相信大家会找最适合自己发挥的工作方式(比如按时下班后1小时到家晚饭后继续未竟工作等..)大家在遵守公司规章的情况下尽情地体现自己的能力价值,为MOV!和深圳公司争光我们在这边才能更安心更有信心的工作下去;请客BU长、名部门长、项目管理和各业务单元负责人,全面梳理团队情况,及时评估成员工作负荷与成果质量,坚决清退划水害虫痕疫,践行公司价值观,相互监督,防止管理漏洞及渎职。感谢人家的理解,也请人家多担待我的直言不讳……
点赞 评论 收藏
分享
04-09 09:47
门头沟学院 Java
Arbelite_:2-3k,这工资还不如去摇奶茶
点赞 评论 收藏
分享
CADILLAC_:我要用bava 不要用java 了 啊啊啊啊啊啊啊啊啊啊啊
点赞 评论 收藏
分享
评论
5
19
分享

创作者周榜

更多
牛客网
牛客企业服务