AI算法岗面试问题记录1

news/2025/2/25 19:08:39

记录一下面试算法岗过程中问到的问题,部分想不起了。

1.交叉熵是怎么回事?公式是什么?

在机器学习中,我们需要评估label和predicts之间的差距,使用KL散度刚刚好,即

由于KL散度中的前一部分−H(y)不变,故在优化过程中,只需要关注交叉熵就可以了。所以一般在机器学习中直接用用交叉熵做loss,评估模型。

                     

等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵:

  • 详细见:https://blog.csdn.net/lison_zhu/article/details/97234817

 

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,从而完成升维或降维的功能。


http://www.niftyadmin.cn/n/1737960.html

相关文章

Python类专有方法

Python除了自定义私有变量和方法外,还可以定义专有方法。专有方法是在特殊情况下或使用特殊语法时由python调用的,而不是像普通方法一样在代码中直接调用。看到形如__XXX__的变量或函数名时就需要注意下,这在python中是有特殊用途的 __init_…

【转】html元素的ID和name的区别

可以说几乎每个做过Web开发的人都问过,到底元素的ID和Name有什么区别阿?为什么有了ID还要有Name呢?!而同样我们也可以得到最classical的答案:ID就像是一个人的身份证号码,而Name就像是他的名字,ID显然是唯一的&#x…

Python中定义函数时使用‘/‘和‘*’来限制输入格式的理解

在python3.8之后函数参数中允许出现/和*号,/用来指明某些函数形参必须使用位置参数而非关键字参数的形式,*出现在函数参数中第一种含义可以表示为可变参数,一般写作*args;对于单独出现在参数中的*参数,则表示&#xff…

How to Read HTML DTD-from HTML4.01 Specifications

How to read the HTML DTD (tenfyguo注:important!!,定义了HTML的元素包含关系以及元素允许和不允许的嵌套内容等规则, 符合DTD定义的html格式称为well-formed html) Each element and attribute declaration in …

torch.stack()方法和torch.cat()方法的区别

torch.stack():函数stack()对序列数据内部的张量进行扩维拼接,指定维度由程序员选择(对 原始张量按照指定维度进行拼接,拼接后维度为原始维度加一,如原始维度为2*2,那么拼接后为n*2*…

pip命令下载后的缓存文件位置

C:\Users\自己的用户名\AppData\Local\pip\cache

volatile——编写多线程程序的好帮手

Volatile-Correctness,让编译器帮你检测竞争条件 Andrei Alexandrescu ye_feng译 并不是我故意想弄糟你的心情,但是在这期专栏里,我们将讨论多线程编程这一话题。正如上一期Generic里所说的,编写异常安全(exception-s…

pytorch调整模型训练的学习率

简介 torch.optim.lr_scheduler :提供了一些方法可以基于epochs的值来调整学习率。 torch.optim.lr_scheduler.ReduceLROnPlateau :则提供了基于训练中某些测量值使学习率动态下降的方法。 注意:学习率调整应该在优化器的更新之后&#xff…