记录一下面试算法岗过程中问到的问题,部分想不起了。
1.交叉熵是怎么回事?公式是什么?
在机器学习中,我们需要评估label和predicts之间的差距,使用KL散度刚刚好,即
由于KL散度中的前一部分−H(y)不变,故在优化过程中,只需要关注交叉熵就可以了。所以一般在机器学习中直接用用交叉熵做loss,评估模型。
等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵:
2.介绍非最大值抑制。
定义:
在模型预测阶段,我们先为图像生成多个锚框,并为这些锚框一一预测类别和偏移量。随后,我们根据锚框及其预测偏移量得到预测边界框。当锚框数量较多时,同一个目标上可能会输出较多相似的预测边界框。了使结果更加简洁,我们可以移除相似的预测边界框。常用的方法叫作非极大值抑制(non-maximum suppression,NMS)。
计算流程:
- 根据置信度得分进行排序
- 选择置信度最高的比边界框添加到最终输出列表中,将其从边界框列表中删除
- 计算所有边界框的面积
- 计算置信度最高的边界框与其它候选框的IoU。
- 删除IoU大于阈值的边界框
- 重复上述过程,直至边界框列表为空。
计算公式:
可参考:目标检测---IoU计算公式_A big bliss的博客-CSDN博客_iou计算公式
3.正则化的方法有哪些?
L1,L2;Dropout;data augmentation(数据增强);early stopping
参考:总结-深度学习中的正则化方法(regularization)_沐埜专栏-CSDN博客_正则化方法
4.调参经验。
不同情况因人而异
5.极大似然概率和后验概率的区别是什么?
参考:最大似然概率和后验概率的区别_mousever的专栏-CSDN博客
6.精确度和准确度的区别是什么?
参考:https://blog.csdn.net/anliu1/article/details/112789315
7.介绍一下python中匿名函数lambda函数。
在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数。今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式。
先举一个例子:将一个列表里的每个元素都平方。
先用def来定义函数,代码如下
def sq(x):
return x*x
map(sq,[y for y in range(10)])
再用lambda函数来编写代码
map(lambda x: x*x,[y for y in range(10)])
从这个简单的例子,我们可以看出,用lambda函数首先减少了代码的冗余,其次,用lambda函数,不用费神地去命名一个函数的名字,可以快速的实现某项功能,最后,lambda函数使代码的可读性更强,程序看起来更加简洁。
从上面这个简单的例子,也可以看出来lambda函数的语法是唯一的,其形式如下:
lambda argument_list:expersion
参考:细说Python的lambda函数用法,建议收藏 - 知乎
8.说一下1x1卷积的作用。
1x1卷积实际上是对每个像素点,在不同的channels上进行线性组合(信息整合) ,且保留了图片的原有平面结构,调控depth,从而完成升维或降维的功能。