面试中值得关注的问题(项目+通用问题)

  • 说明:分为两部分,第一部分为自己项目相关联的问题,第二部分为网上收集的一些通用问题。

项目相关

  1. 项目中使用的faceboxes人脸检测算法的回归loss使用的是什么loss?答:smooth L1 loss,那你认为smooth L1 loss的存在什么问题?如何改进?
    :1)L2损失对大目标回归不友好,如都是5个像素差,但归一化后,对于大目标的偏差值要远小于小目标的偏差值,进而影响对loss的贡献度; 更加精简的表述为:存在multi-scale的样本loss不平衡问题。2)改进方法:引入IOU loss克服 L2 loss以上问题。稍拓展下:IOU类型的损失也在持续改进:IoU loss(解决L2 loss的问题,但如果两个框没有相交,根据定义,IoU=0,不能反映两者的距离大小(重合度),loss为1)–> GIoU loss (引入包含两个bbox的最小矩形框,解决IOU loss的问题,但一个bbox在另一个bbox内部时,GIOU loss 不能反映小box所在的不同位置带来的损失差异,应越靠近大框中心损失越小) -->DIoU loss(在IOU loss 的基础上引入两个bbox中心点距离解决GIOU中的问题)–>CIoU loss(在DIoU loss的基础上加入bbox 宽高比信息,使两个矩形框更加相似)
    拓展一:目标检测L1、L2 的优缺点到为何发展到smooth L1 loss?
    对于L2 loss:当 x增大时 L2 损失对 x 的导数也增大。这就导致训练初期(损失值大),预测值与 groud truth 差异过于大时,损失函数对预测值的梯度十分大,训练不稳定。
    对于L1 loss:L1 对 x 的导数为常数。这就导致训练后期,预测值与 ground truth 差异很小时, L1 损失对预测值的导数的绝对值仍然为 1,而 learning rate 如果不变,损失函数将在稳定值附近波动,难以继续收敛以达到更高精度。
    smooth L1 loss: 在x较小时,对 x 的梯度也会变小,而在 x很大时,对 x 的梯度的绝对值达到上限 1,也不会太大以至于破坏网络参数。 smooth L1 loss 完美地避开了 L1 loss和 L2 loss 损失的缺陷。
    拓展二:对于目标检测样本不均衡(one-stage的精度不如two-stage的精度,一个主要的原因是训练过程中样本极度不均衡造成的,样本均衡问题详细可参照)从loss方面做的工作:样本类别不均衡主要体现在两方面:正负样本不均衡(正负样本比例达到1:1000)和难易样本不均衡(简单样本主导loss)。
    对于一个样本,如果它能很容易地被正确分类,那么这个样本对模型来说就是一个简单样本,模型很难从这个样本中得到更多的信息,从梯度的角度来说,这个样本产生的梯度幅值相对较小。而对于一个分错的样本来说,它产生的梯度信息则会更丰富,它更能指导模型优化的方向。对于单阶段分类器来说,简单样本的数量非常大,他们产生的累计贡献在模型更新中占主导作用,而这部分样本本身就能被模型很好地分类,所以这部分的参数更新并不会改善模型的判断能力,这会导致整个训练变得低效。因此单阶段目标检测中样本不均衡性的本质是简单困难样本的不均衡性。
    OHEM(在线困难样本挖掘)方法:根据输入样本的损失进行筛选,筛选出困难样本(即对分类和检测影响较大的样本),然后将筛选得到的这些样本应用在随机梯度下降中训练(Fast-rcnn使用)。OHEM优点:1).对于数据的类别不平衡问题不需要采用设置正负样本比例的方式来解决,这种在线选择方式针对性更强;2).随着数据集的增大,算法的提升更加明显; OHEM缺点:只保留loss较高的样本,完全忽略简单的样本,这本质上是改变了训练时的输入分布(仅包含困难样本),这会导致模型在学习的时候失去对简单样本的判别能力。
    S-OHEM方法:考虑OHEM训练过程忽略了不同损失分布的影响(整体loss大并非是难分样本,可能是分类损失小回归损失大),因此S-OHEM根据loss的分布抽样训练样本。它的做法是将预设loss的四个分段:
    在这里插入图片描述
    在这里插入图片描述
    S_OHEM优点:相比原生OHEM,S-OHEM考虑了基于不同损失函数的分布来抽样选择困难样本,避免了仅使用高损失的样本来更新模型参数. OHEM缺点:因为不同阶段,分类损失和定位损失的贡献不同,所以选择损失中的两个参数 需要根据不同训练阶段进行改变,当应用与不同数据集时,参数的选取也是不一样的,即引入了额外的超参数。
    A-Fast-RCNN(基于对抗生成网络的方式来生成困难样本)方法:通过GAN的方式在特征空间产生具有部分遮挡和形变(本文主要考虑旋转特性)的困难样本,而这部分样本数据很难出现在实际训练数据集中.本文通过生成的方式来教网络什么是“遮挡”和“变形”,区别于传统的直接生成样本图片的方法,这些变换都是基于特征图的。该方法优点:与OHEM相比,区别在于文本的方法是构建不存在的Hard Poistive样本,而OHEM是挖掘现有样本中的。
    该方法缺点:从改善效果上来讲,A-Fast-RCNN的方法的效果并不比 OHEM 好太多,也许是仿造的数据和真实性还存在差距,此外GAN网络也比较难训练。
    focal loss方法(retinaNET提出):OHEM类型方法只考虑最困难样本而忽略了简单样本,可以通过减少易分类样本的权重,使得模型在训练时更专注于难分类的样本。focal loss将样本平衡问题归结为难易样本的不平衡,从而更改交叉熵损失函数,重新对样本赋予不同的权值,之前的模型这些样本都是同等重要的,从而使模型训练更加关注 hard examples。
    focal loss 是基于交叉熵损失改进的,所以先介绍下交叉熵损失:
    在这里插入图片描述
    可见普通的交叉熵对于正样本而言,输出概率越大损失越小。对于负样本而言,输出概率越小则损失越小。此时的损失函数在大量简单样本的迭代过程中比较缓慢且可能无法优化至最优。
    focal loss的改进位置1:引入gamma参数使简单样本对loss的贡献度变小,使之更加关注困难样本:
    在这里插入图片描述
    focal loss的改进位置2:加入平衡因子alpha,用来平衡正负样本本身的比例不均:文中alpha取0.25,即正样本要比负样本占比小,这是因为负例易分。最终的focal loss为:
    在这里插入图片描述
    focal loss优点:解决训练样本中难易样本不均衡的问题;focal loss缺点:loss 存在两个超参数,调节该参数是一个费力的操作; loss 是一个不会随着数据分布变化而变化的静态 loss(不同的数据集需要手动调整以上超参数)。
    GHM方法:基于focal loss的以上两个缺点,提出GHM方法。核心思想的一句话: 类别的不平衡可以归结为难易样本的不平衡,难易样本的不平衡可以归结为梯度的不平衡。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    PISA方法:PISA 方法和 Focal loss 和 GHM 有着不同, Focal loss 和 GHM 是利用 loss 来度量样本的难以程度,而本篇论文作者从 mAP 出法来度量样本的难易程度。作者提出提出改论文的方法考虑了两个方面:样本之间不应该是相互独立的或同等对待;目标的分类和定位是有联系的。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

机器学习理论类:

  1. 写出全概率公式&贝叶斯公式
  2. 模型训练为什么要引入偏差(bias)和方差(variance)? 证
  3. CRF/朴素贝叶斯/EM/最大熵模型/马尔科夫随机场/混合高斯模型
  4. 如何解决过拟合问题?
  5. One-hot的作用是什么?为什么不直接使用数字作为表示
  6. 决策树和随机森林的区别是什么?
  7. 朴素贝叶斯为什么“朴素naive”?
  8. kmeans初始点除了随机选取之外的方法
  9. LR明明是分类模型为什么叫回归
  10. 梯度下降如何并行化
  11. 梯度下降如何并行化
  12. LR中的L1/L2正则项是啥
  13. 简述决策树构建过程
  14. 解释Gini系数
  15. 决策树的优缺点
  16. 出现估计概率值为 0 怎么处理
  17. 随机森林的生成过程
  18. 介绍一下Boosting的思想
  19. gbdt的中的tree是什么tree?有什么特征
  20. xgboost对比gbdt/boosting Tree有了哪些方向上的优化
  21. 什么叫最优超平面
  22. 什么是支持向量
  23. SVM如何解决多分类问题
  24. 核函数的作用是啥

特征工程类:

  1. 怎么去除DataFrame里的缺失值?
  2. 特征无量纲化的常见操作方法
  3. 如何对类别变量进行独热编码?
  4. 如何把“年龄”字段按照我们的阈值分段?
  5. 如何根据变量相关性画出热力图?
  6. 如何把分布修正为类正态分布?
  7. 怎么简单使用PCA来划分数据且可视化呢?
  8. 怎么简单使用LDA来划分数据且可视化呢?

深度学习类:

  1. 你觉得batch-normalization过程是什么样的
  2. 激活函数有什么用?常见的激活函数的区别是什么?
  3. Softmax的原理是什么?有什么作用?
    CNN的平移不变性是什么?如何实现的?
  4. VGG,GoogleNet,ResNet等网络之间的区别是什么?
  5. 残差网络为什么能解决梯度消失的问题
  6. LSTM为什么能解决梯度消失/爆炸的问题
  7. Attention对比RNN和CNN,分别有哪点你觉得的优势
  8. 写出Attention的公式
  9. Attention机制,里面的q,k,v分别代表什么
  10. 为什么self-attention可以替代seq2seq

NLP类:
12. GolVe的损失函数
13. 为什么GolVe会用的相对比W2V少
14. 层次softmax流程
15. 负采样流程
16. 怎么衡量学到的embedding的好坏
17. 阐述CRF原理
18. 详述LDA原理
19. LDA中的主题矩阵如何计算
20. LDA和Word2Vec区别?LDA和Doc2Vec区别
21. Bert的双向体现在什么地方
22. Bert的是怎样预训练的
23. 在数据中随机选择 15% 的标记,其中80%被换位[mask],10%不变、10%随机替换其他单词,原因是什么
24. 为什么BERT有3个嵌入层,它们都是如何实现的
25. 手写一个multi-head attention

推荐系统类:
26. DNN与DeepFM之间的区别
27. 你在使用deepFM的时候是如何处理欠拟合和过拟合问题的
28. deepfm的embedding初始化有什么值得注意的地方吗
29. YoutubeNet 变长数据如何处理的
30. YouTubeNet如何避免百万量级的softmax问题的
31. 推荐系统有哪些常见的评测指标?
32. MLR的原理是什么?做了哪些优化?

计算机视觉(CV)类:
33. 常见的模型加速方法
34. 目标检测里如何有效解决常见的前景少背景多的问题
35. 目标检测里有什么情况是SSD、YOLOv3、Faster R-CNN等所不能解决的,假设网络拟合能力无限强
36. ROIPool和ROIAlign的区别
37. 介绍常见的梯度下降优化方法
38. Detection你觉的还有哪些可做的点
39. mini-Batch SGD相对于GD有什么优点
40. 人体姿态估计主流的两个做法是啥?简单介绍下
41. 卷积的实现原理以及如何快速高效实现局部weight sharing的卷积操作方式
42. CycleGAN的生成效果为啥一般都是位置不变纹理变化,为啥不能产生不同位置的生成效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值