机器学习深度学习面试问题汇总(提升你的面试成功率)

可怕的机器学习面试。在面试之前,你会觉得自己什么都懂,但是真的开始面试了,你发现你自己什么都不懂!

作者:George Seif

编译:ronghuaiyang

导读

在面试之前,你会觉得自己什么都懂,但是真的开始面试了,你发现你自己什么都不懂!

机器学习深度学习面试问题汇总(提升你的面试成功率)

可怕的机器学习面试。在面试之前,你会觉得自己什么都懂,但是真的开始面试了,你发现你自己什么都不懂!

在过去的几个月里,我面试了很多公司的初级职位,涉及数据科学和机器学习。在我攻读机器学习和计算机视觉硕士学位的最后几个月里,我都是在学校里学习,大部分之前的经验都是研究和学术方面的,但是我有8个月的时间处于早期创业阶段(与ML无关)。我在创业阶段的这些角色包括数据科学、通用的机器学习和自然语言处理或计算机视觉相关的内容。我面试过亚马逊、特斯拉、三星、优步、华为等大公司,也面试过很多初创公司,从初创阶段到资金雄厚的阶段的公司都有。

今天我将和大家分享我被问到的所有面试问题以及如何解决这些问题。许多问题都是很常见的和预想的理论问题,但也有许多问题是很有创造性的。我将简单地列出最常见的一些,因为网上有很多关于它们的资源,并深入探讨一些不太常见和棘手的。我希望通过阅读这篇文章,你能在机器学习面试中取得好成绩,找到你梦想的工作!

就让我们开始吧:

偏差和方差之间的权衡是什么?

什么是梯度下降?

解释过拟合和欠拟合,以及如何与之对抗?

你如何对抗维度灾难?

什么是正则化,我们为什么要使用它,并给出一些常见方法的例子?

解释主成分分析(PCA)?

为什么在神经网络中ReLU比Sigmoid更好更常用?

什么是数据归一化?我们为什么需要它?

我觉得这个问题很重要。数据归一化是一个非常重要的预处理步骤,用于对数值进行缩放以适应特定的范围,以确保在反向传播过程中更好地收敛。一般来说,这可以归结为减去每个数据点的均值,再除以其标准差。如果我们不这样做,那么一些特征(那些大幅值的特征)将在损失函数中得到更多的权重(如果一个高幅值的特征变化了1%,那么这个变化是相当大的,但是对于较小的特征,它是相当小的)。数据归一化使得所有特征的权重相等。

解释一下降维,在哪里使用,它的好处?

降维是通过得到一组主要的变量,这些变量基本上就是重要的特征,来减少需要考虑的特征变量数量的过程。特性的重要性取决于特性变量对数据的信息表示的贡献有多大,取决于你决定使用哪种技术。决定使用哪种技术取决于反复试验和偏好。通常从线性技术开始,当结果表明不合适时,再转向非线性技术。数据集降维的好处可能是:(1)减少所需存储空间(2)加速计算(例如在机器学习算法),维度少意味着更少的计算,小维度可以允许使用那些不适合大维度的算法(3)删除冗余特性,例如同时使用平方米和平方英里来存储面积是没有意义的(可能数据采集是有缺陷的)(4)把数据的维度降低成2d或3d,这样可以可视化,可以观察到一些模式,给我们一些直观的启发(5)过多的特征或过于复杂的模型会导致过拟合。

如何处理数据集中丢失或损坏的数据?

你可以在数据集中找到丢失/损坏的数据,然后删除这些行或列,或者用另一个值替换它们。在pandas中,有两个非常有用的方法:isnull()和dropna(),它们将帮助你找到缺少或损坏数据的数据列,并删除这些值。如果希望用占位符值(例如0)填充无效值,可以使用fillna()方法。

解释一种聚类算法?

我写了一篇关于数据科学家需要知道的5种聚类算法的热门文章,用一些很好的可视化方法来详细解释所有这些算法。

如何进行探索性数据分析(EDA)?

EDA的目标是在应用预测模型之前从数据中得到一些理解,获得一些信息。基本上,你希望以一种从粗到细的方式进行EDA。

我们首先得到一些高层次的理解。看看一些不平衡的类,看看每个类的均值和方差。查看前几行,看看它是关于什么的。运行pandas的df.info()来查看哪些特性是连续的、类别的、它们的类型(int、float、string)。

接下来,删除在分析和预测中没有用的和不必要的列。它们可以是看起来无用的列,可以是许多行具有相同的值(没有给我们多少有用的信息),或者有很多缺失值。我们还可以用该列中最常见的值或中值来填充缺失的值。

现在我们可以开始做一些基本的可视化。从高层次的东西开始。做一些条形图,用在分类特征上和只有少量组的特征上。看看最“通用的特征”,创建一些关于这些特性的独立的可视化图,尝试获得一些基本的理解。

现在我们可以开始变得更具体一些。在两个或三个特征之间创建可视化图。特征是如何相互关联的?你还可以通过PCA查看哪些特性包含最多的信息。将一些特性组合在一起,以查看它们之间的关系。例如,当A = 0和B = 0时,会发生什么?A = 1 B = 0呢?比较不同的特征。例如,如果特征A可以是“女性”或“男性”,那么我们可以将特征A与它们呆在哪个舱室相对照,看看男性和女性是否住在不同的舱室。除了条形图、散点图和其他基本图外,我们还可以绘制PDF/CDF、重叠图等。查看一些统计数据,如分布、p值等。从简单的贝叶斯和线性回归开始。如果你发现数据是高度非线性的,使用多项式回归、决策树或者SVMs。可以根据EDA中特征的重要性来选择它们。如果你有很多数据,你可以使用神经网络。检查ROC曲线,精确率、召回率。

如何知道应该使用哪种机器学习模型?

虽然一个人应该永远记住“没有免费的午餐“定理,但还是有一些一般的指导方针的。我写了一篇关于如何选择合适的回归模型的文章也非常棒!

为什么我们对图像使用卷积而不仅仅是FC层?

这个问题很有趣,因为公司通常不会问这个问题。正如你所料,我从一家专注于计算机视觉的公司那里得到了这个问题。这个答案有两部分。首先,卷积保存、编码并实际使用图像中的空间信息,如果我们只使用FC层,我们将没有对应的空间信息。其次,卷积神经网络具有局部的变换不变性,因为每个卷积核都是它自己的滤波器/特征检测器。

是什么使得CNNs对于变换具有不变性?

如上所述,每个卷积核都充当自己的滤波器/特征检测器。假设你在做物体检测,物体在图像中的什么位置并不重要,因为我们要以滑动窗口的方式在整个图像中使用卷积。

为什么我们在分类CNNs中使用最大池?

这是面试一个计算机视觉职位时遇到的问题。在CNN中使用Max-pooling可以减少计算量,因为在使用pool之后feature map会变小,也不会丢失太多语义信息,因为你正在进行最大化激活。也有一种理论认为,最大池化效应会给CNNs带来更多的变换不变性。

为什么分割CNNs通常具有编码器-解码器样式/结构?

编码器CNN基本上可以被认为是一个特征提取网络,而解码器则利用该信息通过“解码”特征并向上缩放到原始图像的大小来预测图像的分割。

残差络网的意义是什么?

残差连接所做的主要事情是允许后面的层直接从之前的层中获取信息。这使得信息在整个网络中传播更加容易。关于这一点,有一篇非常有趣的论文展示了如何使用本地skip连接来给网络提供一种集成多路径的结构,从而使特性可以在整个网络中传播具有多条路径。

什么是batch normalization?为什么它可以有效果?

训练深度神经网络是复杂的,因为在训练过程中,随着前一层的参数变化,每一层的输入分布也会发生变化。我们的想法是将每一层的输入归一化,使它们的平均输出激活值为0,标准差为1。这是为每一层中的每个mini batch所做的,单独计算mini batch的均值和方差,然后归一化。这类似于网络的输入是标准化的。这有什么帮助呢?我们知道归一化网络的输入是有助于学习的。但网络只是一系列层,其中一层的输出成为下一层的输入。这意味着我们可以把神经网络中的任何一层想象成更小的后续网络的第一层。我们把神经网络看作是一系列相互输入的神经网络,在应用激活函数之前,我们对一层的输出进行归一化,然后将其输入到下一层(子网络)。

如何处理不平衡的数据集?

我有一篇关于这个的文章 !

为什么要使用很多小的卷积核,比如3×3,而不是几个大的呢?

这一点在VGGNet论文中得到了很好的解释。有两个原因:首先,你可以使用几个较小的卷积核而不是几个较大的卷积核来获得相同的感受野并捕获更多的空间上下文,但是对于较小的卷积核,你使用的参数和计算更少。其次,因为使用了更小的卷积核,你会使用更多的过滤器,你将能够使用更多的激活函数,因此CNN将学习到更有区分度的映射函数。

你还有其他相关的项目吗?

在这个问题中,你将真正地在你的研究和他们的业务之间建立联系。你有没有做过什么事,学过什么技能,可能与他们的业务或你申请的职位有关?不用100%精确,只要以某种方式相关就可以了,这样你就可以证明你能够为他们增加很多价值。

解释你目前的硕士研究?哪些是有效的?哪些没有?未来的发展方向怎样?

和最后一个问题一样!

结论

这些就是所有我在申请数据科学和机器学习职位时得到的面试问题。我希望你喜欢这篇文章,并学到一些新的和有用的东西!

原文链接:https://towardsdatascience.com/data-science-and-machine-learning-interview-questions-3f6207cf040b

本文为专栏文章,来自:AI公园,内容观点不代表本站立场,如若转载请联系专栏作者,本文链接:https://www.afenxi.com/76118.html 。

(0)
上一篇 2019-10-15 08:33
下一篇 2019-10-17 05:33

相关文章

关注我们
关注我们
分享本页
返回顶部