头条面经(同学二)

同学二:

一面:

1.focal loss的形式,原理

focal loss提出的目的是:希望one-stage detector可以达到two-stage detector的准确率,同时不影响原有的速度。

作者认为one stage的准确率不如two stage的原因在于:样本的类别不均衡;负样本数量太大,占总的loss的大部分,而且多是容易分类的,因此使得模型的优化方向并不是我们所希望的那样。OHEM(online hard example mining)虽然增加了错分类样本的权重,但是OHEM算法忽略了容易分类的样本。focal loss:标准交叉熵损失基础上修改得到的。这个函数可以通过减少易分类样本的权重,使得模型在训练时更专注于难分类的样本。

为了验证focal loss ,作者设计了RetinaNet,实验证明RetinaNet不仅可以达到one-stage detector的速度,也能有two-stage detector的准确率。

1、当一个样本被分错的时候,pt是很小的(请结合公式2,比如当y=1时,p要小于0.5才是错分类,此时pt就比较小,反之亦然),因此调制系数就趋于1,也就是说相比原来的loss是没有什么大的改变的。当pt趋于1的时候(此时分类正确而且是易分类样本),调制系数趋于0,也就是对于总的loss的贡献很小。2、当γ=0的时候,focal loss就是传统的交叉熵损失,当γ增加的时候,调制系数也会增加。
 

阿尔法t是为了解决正负样本均衡的问题。一般对于正样本取0.75, 副样本取0.25(正负样本是1:3的比例),阿尔法t必须在0-1之间

2.怎么解决目标检测中样本不均衡问题

3.怎么解决目标检测中难难样本问题

4.介绍一下转置卷积及其原理

 

5.利用神经网络拟合arcsin

6.五局三胜的概率题

7.计算IOU

二面:

1.L1和L2正则化的区别

2.L1正则函数有什么缺陷?为什么要使用smooth L1

 

3.IN,BN,IBN,GN有什么区别

常用的Normalization方法主要有:Batch Normalization(BN,2015年)、Layer Normalization(LN,2016年)、Instance Normalization(IN,2017年)、Group Normalization(GN,2018年)。它们都是从激活函数的输入来考虑、做文章的,以不同的方式对激活函数的输入进行 Norm 的。

我们将输入的 feature map shape 记为[N, C, H, W],其中N表示batch size,即N个样本;C表示通道数;H、W分别表示特征图的高度、宽度。这几个方法主要的区别就是在:

(1) BN是在batch上,对N、H、W做归一化,而保留通道 C 的维度。BN对较小的batch size效果不好。BN适用于固定深度的前向神经网络,如CNN,不适用于RNN;

(2)LN在通道方向上,对C、H、W归一化,主要对RNN效果明显;

(3)IN在图像像素上,对H、W做归一化,用在风格化迁移;

(4)GN将channel分组,然后再做归一化。

如果把特征图比喻成一摞书,这摞书总共有 N 本,每本有 C 页,每页有 H 行,每行 有W 个字符.

a. BN 求均值时,相当于把这些书按页码一一对应地加起来(例如第1本书第36页,第2本书第36页......),再除以每个页码下的字符总数:N×H×W,因此可以把 BN 看成求“平均书”的操作(注意这个“平均书”每页只有一个字),求标准差时也是同理。

b LN 求均值时,相当于把每一本书的所有字加起来,再除以这本书的字符总数:C×H×W,即求整本书的“平均字”,求标准差时也是同理。

c. IN 求均值时,相当于把一页书中所有字加起来,再除以该页的总字数:H×W,即求每页书的“平均字”,求标准差时也是同理。

d GN 相当于把一本 C 页的书平均分成 G 份,每份成为有 C/G 页的小册子,求每个小册子的“平均字”和字的“标准差”。

BN存在的问题:

(1)每次是在一个batch上计算均值、方差,如果batch size太小,则计算的均值、方差不足以代表整个数据分布。

(2)batch size太大:会超过内存容量;需要跑更多的epoch,导致总训练时间变长;会直接固定梯度下降的方向,导致很难更新。

LN优势:针对BN不适用于深度不固定的网络(sequence长度不一致,如RNN),LN对深度网络的某一层的所有神经元的输入按以下公式进行normalization操作;不需要批训练,在单条数据内部就能归一化。LN不依赖于batch size和输入sequence的长度,因此可以用于batch size为1和RNN中。LN用于RNN效果比较明显,但是在CNN上,效果不如BN。

IN:针对图像像素做normalization,最初用于图像的风格化迁移。在图像风格化中,生成结果主要依赖于某个图像实例,feature map 的各个 channel 的均值和方差会影响到最终生成图像的风格。所以对整个batch归一化不适合图像风格化中,因而对H、W做归一化。可以加速模型收敛,并且保持每个图像实例之间的独立。

GN:为了解决BN对较小的mini-batch size效果差的问题。GN适用于占用显存比较大的任务,例如图像分割。对这类任务,可能 batch size 只能是个位数,再大显存就不够用了。而当 batch size 是个位数时,BN 的表现很差,因为没办法通过几个样本的数据量,来近似总体的均值和标准差。GN 也是独立于 batch 的,它是 LN 和 IN 的折中。

参考:https://zhuanlan.zhihu.com/p/72589565

 

 

 

4.RCNN Fast RCNN 的发展历程

5.机器学习哪些可以预测概率,哪些不能,LR公式问什么可以预测概率

6.编程题计算数据流的中位数

三面:

1.训练一个模型使其可以按照美观程度将照片排序

2.对很多图片的1024维特征进行检索,有什么压缩方法吗?

3.多个文件,每个文件大于2G,存储的是一堆浮点数,要求使用不大于2G的内存对其进行排序

4.检测中bounding box 回归推导

5.gan的损失函数

6.prototype 的作用,原理

7.OHEM(online hard example mining)是什么,有什么作用。

(1) 训练过程需要进行参数的空间搜索

(2) 简单样本与难分辨样本之间的类别不平衡是亟需解决的问题

(3) 自动地选择难分辨样本来进行训练不仅效率高而且性能好

(4) 提出了OHEM算法,不仅效率高而且性能好,在各种数据集上表现优越

当数据集增大,算法可以在原来基础上提升更大。对于数据的类别不平衡问题不需要采用设置正负样本比例的方式来解决,这种在线选择方式针对性更强;当我们遇到数据集少,且目标检测positive proposal少时,一般实验效果会不如人意,咱们可以试试OHEM这个trick,也许可以带来不错的效果。

参考博客:https://blog.csdn.net/u014380165/article/details/73148073

hard negative mining:逐渐地增加分辨错误的样本。这个算法需要迭代地交替训练,用样本集更新模型,然后再固定模型 来选择分辨错的目标框并加入到样本集中。

hard negative mining:优化SVMs时,维持一个工作样本集。交替训练,先训练模型收敛于当前的 工作集,然后固定模型,去除简单样本(能够轻易区分的),添加困难样本(不 能够区分的),这样的训练方式 能使模型达到全局最优

OHEM除了优化SVMs类的模型,也优化非SVMs类的模型,例如浅层神经网络和提升决策树;

OHEM是在Fast RCNN的基础上进行展开的,具体流程:在第t次迭代时,输入图片到卷积网络中得到特征图,然后 把特征图和所有的RoIs输入到RoI网络中并计算所有RoIs的损失,把损 失从高到低排序,然后选择B/N个RoIs。这里有个小问题,位置上相邻 的RoIs通过RoI网络后会输出相近的损失,这样损失就翻倍。作者为了 解决这个问题,使用了NMS(非最大值抑制)算法,先把损失按高到低排 序,然后选择最高的损失,并计算其他RoI这个RoI的IoU(交叉比),移 除IoU大于一定阈值的RoI,然后反复上述流程直到选择了B/N个RoIs。

https://zhuanlan.zhihu.com/p/58162337

8.FPN的网络结构和原理。

feature pyramid networks for object detection :多数的object detection算法都是只采用顶层特征做预测,但我们知道低层的特征语义信息比较少,但是目标位置准确;高层的特征语义信息比较丰富,但是目标位置比较粗略。另外虽然也有些算法采用多尺度特征融合的方式,但是一般是采用融合后的特征做预测,而本文不一样的地方在于预测是在不同特征层独立进行的。

4种形式的图像金字塔:

参考:https://blog.csdn.net/u014380165/article/details/72890275

9.矩估计,最大似然估计和朴素贝叶斯和半朴素贝叶斯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章