Geek AI、王淑婷、思源编译Medium选自

25个机器学习面试题,期待你来解答

机器学习有非常多令人困惑及不解的地方,很多问题都没有明确的答案。但在面试中,如何探查到面试官想要提问的知识点就显得非常重要了。在本文中,作者给出了 25 个非常有意思的机器学习面试问题,这些问题都没有给出明确的答案,但都有一定的提示。读者也可以在留言中尝试。

许多数据科学家主要是从一个数据从业者的角度来研究机器学习(ML)。因此,关于机器学习,我们应该尽可能多地把注意力放在新的程序包、框架、技术等方面,而不是关于核心理论的深入研究。在本文中,我所定义的机器学习包含所有的统计机器学习方法,因此不仅仅指深度学习

然而,经过一番努力的探究和思考后,我们可以提出很多不错的机器学习问题,而当我们试图回答和分析这些问题时,就可以很好地揭示问题更深层次的内涵。基本上,这些问题可能有助于我们摆脱上面所说的那堆问题。我们并非只想一直对数据集进行操作,我们想更加深入地研究机器学习技术的特性、奇怪的地方以及复杂的细节,并最终能够很好地接受它们。

事实上,网络上有很多关于「机器学习面试问题」的文章,本文希望能稍微用不一样的、有趣的方式来讨论这些问题。

声明:我将这些问题列举出来只是为了启发大家的思考,促进相关的讨论。这个问题并没有现成的答案。我们会对某些问题给出提示,而这只是为了引发进一步的讨论,而不是给出了一个确切的答案。每个问题都值得被更详细地讨论,因此也就没有固定答案。有些问题是经过设计特意提出的,而有些只是为了逗大家开心。

问题

1. 我在 95% 的置信区间下构建了一个线性回归模型。这是否意味着我的模型参数对于试图近似的函数有 95% 的概率是真实的估计值?(提示:这实际上意味着在 95% 的试验情况下...)

2. Hadoop 文件系统和 KNN(k 最近邻)算法有什么相似之处呢?(提示:都很「懒」)

3. 哪个模型结构的表示能力更强大?(例如,它可以精确地表示一个给定的布尔函数),是一个单层感知机还是一个两层的决策树?(提示:以异或函数为例)

4. 对于一个两层决策树和一个不带有任何激活函数的两层神经网络,谁更加强大?(提示:考虑一下非线性函数的情况?)

5. 神经网络可以作为降维的工具吗?请详细解释一下。(提示:自编码器)

6. 似乎很多人都忽视了截距项在线性回归模型中的作用,请告诉我一个截距项的功能。(提示:噪声(「垃圾」)收集器)

7. Lasso 正则化可以将系数降低到正好为零。岭回归可以将系数降低到非常小的非零值。你能从两个简单的函数「|x| 和 x²」的图像中直观地解释他们的不同之处吗?(提示:请注意 |x| 函数图像中的尖点)

8. 假设你对数据集(连续值)的分布一无所知,你不能假设它是高斯分布。请用最简单的论证来说明:无论真是的分布是什么,你都能保证有大约 89% 的数据会落在均值附近 +/- 3 个标准差的范围内。(提示:马尔可夫的博士导师是谁?)

9. 大多数机器学习算法涉及到一些对矩阵的操作,例如矩阵乘法和求逆矩阵。请给出一个简单的数学证明,说明为什么这种机器学习算法的 mini-batch 版本可能比在整个数据集上进行训练的计算效率更高?(提示:矩阵乘法的时间复杂度...)

10. 难道你不认为时间序列是一个非常简单的线性回归问题,它仅仅有一个因变量和一个自变量(时间)?在使用时序数据时,线性回归拟合(可能是多项式回归)的方法有什么问题?(提示:过去的信息预示着未来...)

11. 请给出一个简单的数学证明,说明在所有可能的树结构中找到适用于分类问题的最优决策树是一个复杂度为指数级的问题。(提示:森林中究竟会有多少棵树?)

12. 决策树和神经网络都是非线性分类器,也就是说,通过复杂的决策边界来分割解空间。那么,直观地看,为什么我们认为使用决策树模型比深度神经网络要容易得多呢?

13. 反向传播是深度学习的关键算法。请列举一些可能替代反向传播算法来训练神经网络的技术。(提示:随机搜索...)

14. 假设你现在有两个问题(线性回归和 logistic 回归)。其中哪一个更有可能从超快大型矩阵乘法算法中获益?为什么?(提示:哪个算法更可能使用矩阵操作?)

15. 自变量之间的相关性对主成分分析有何影响?你将如何对其进行处理?

16. 你需要建立一个关于陨石撞地球的分类模型(这是对于人类文明很重要的项目)。经过初步分析后,你得到了 99% 的准确率。你应该感到高兴吗?为什么?你能为此做些什么?(提示:小概率事件...)

17. 是否有可能捕获连续变量和类别变量之间的关系?如果以的话,需要怎么做?

18. 如果你正在研究基因表达数据,通常会有数百万个自变量,而只有几百个样本。请给出简单的数学证明,说明为什么在这种情况下,使用最小二乘法构建一个回归模型并不是一个好的选择。(提示:从矩阵代数的角度思考...)

19. 请解释,为什么 k 折交叉验证对于时序模型效果并不好。你能做些什么来改善这种情况?(提示:刚刚过去的信息对于未来有较强的指导作用...)

20. 对于回归问题来说,从训练数据中通过简单随机抽样得到训练集和验证集是很有效的。但是对于一个分类问题来说,这种方法会存在什么问题?为此我们能做些什么?(提示:所有类别的样本是否能被公平地抽取出来?)

21. 模型的准确率和性能,哪一个对你来说更重要?

22. 如果你可以利用多个 CPU 内核,你会更喜欢提升树算法而不是随机森林吗?为什么?(提示:如果你有 10 只手去完成一项任务,你会如何利用它)

23. 假设已知数据集是线性可分的,而你需要保证算法能够收敛并且具有最大的迭代次数/训练步数(由于计算资源有限)。在这种情况下你会使用梯度下降法吗?你会选择什么方法呢?(提示:哪种简单的算法能够保证找到解?)

24. 假设你拥有的内存/存储空间非常小。你会更喜欢 logistic 回归还是 KNN 算法?为什么?(提示:空间复杂度)

25. 为了构建一个机器学习模型,你准备了 100 个数据点和 5 种特征。为了减少偏差,你又引入了 5 个特征变量,并且又收集了 100 个数据点。请解释这种方法是否正确。(提示:机器学习会遇到的(维度)灾难,你听说过吗?)

原文链接:https://medium.com/analytics-vidhya/25-fun-questions-for-a-machine-learning-interview-373b744a4faa

产业面试机器学习
9
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

最小二乘法技术

最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。 利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。 “最小二乘法”是对过度确定系统,即其中存在比未知数更多的方程组,以回归分析求得近似解的标准方法。在这整个解决方案中,最小二乘法演算为每一方程式的结果中,将残差平方和的总和最小化。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

高斯分布技术

正态分布是一个非常常见的连续概率分布。由于中心极限定理(Central Limit Theorem)的广泛应用,正态分布在统计学上非常重要。中心极限定理表明,由一组独立同分布,并且具有有限的数学期望和方差的随机变量X1,X2,X3,...Xn构成的平均随机变量Y近似的服从正态分布当n趋近于无穷。另外众多物理计量是由许多独立随机过程的和构成,因而往往也具有正态分布。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

时间复杂度技术

在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦即考察输入值大小趋近无穷时的情况。例如,如果一个算法对于任何大小为 n (必须比 n0 大)的输入,它至多需要 5n3 + 3n 的时间运行完毕,那么它的渐近时间复杂度是 O(n3)。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

随机森林技术

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。而"Random Forests"是他们的商标。这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合Breimans的"Bootstrap aggregating"想法和Ho的"random subspace method" 以建造决策树的集合。

反向传播算法技术

反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法计算对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。 在神经网络上执行梯度下降法的主要算法。该算法会先按前向传播方式计算(并缓存)每个节点的输出值,然后再按反向传播遍历图的方式计算损失函数值相对于每个参数的偏导数。

线性回归技术

在现实世界中,存在着大量这样的情况:两个变量例如X和Y有一些依赖关系。由X可以部分地决定Y的值,但这种决定往往不很确切。常常用来说明这种依赖关系的最简单、直观的例子是体重与身高,用Y表示他的体重。众所周知,一般说来,当X大时,Y也倾向于大,但由X不能严格地决定Y。又如,城市生活用电量Y与气温X有很大的关系。在夏天气温很高或冬天气温很低时,由于室内空调、冰箱等家用电器的使用,可能用电就高,相反,在春秋季节气温不高也不低,用电量就可能少。但我们不能由气温X准确地决定用电量Y。类似的例子还很多,变量之间的这种关系称为“相关关系”,回归模型就是研究相关关系的一个有力工具。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

决策边界技术

在具有两类的统计分类问题中,决策边界或决策曲面是一个超曲面,它将底层的向量空间分成两组,每组一个。分类器会将决策边界一侧的所有点分为属于一个类,而另一侧属于另一个类。也即二元分类或多类别分类问题中,模型学到的类别之间的分界线。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

置信区间技术

在统计学中,一个概率样本的置信区间(Confidence interval),是对这个样本的某个总体参数的区间估计(Interval Estimation)。置信区间展现的是,这个总体参数的真实值有一定概率落在与该测量结果有关的某对应区间。置信区间给出的是,声称总体参数的真实值在测量值的区间所具有的可信程度,即前面所要求的“一定概率”。这个概率被称为置信水平。举例来说,如果在一次大选中某人的支持率为55%,而置信水平0.95上的置信区间是(50%, 60%),那么他的真实支持率落在50%和60%之区间的机率为95%,因此他的真实支持率不足50%的可能性小于2.5%(假设分布是对称的)。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

多项式回归技术

研究一个因变量与一个或多个自变量间多项式的回归分析方法,称为多项式回归。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

主成分分析技术

在多元统计分析中,主成分分析(Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。

交叉验证技术

交叉验证,有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。交叉验证的目标是定义一个数据集到“测试”的模型在训练阶段,以便减少像过拟合的问题,得到该模型将如何衍生到一个独立的数据集的提示。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~