MLQuestions
MLQuestions 是一个专为机器学习和计算机视觉工程师打造的面试题库,旨在帮助求职者高效备战技术面试。它收录了涵盖偏差与方差权衡、梯度下降原理、过拟合与欠拟合应对策略等核心概念的 65 道经典面试题,并近期扩展了自然语言处理(NLP)领域的专项问题。
对于许多致力于进入顶尖科技公司或初创企业的开发者而言,技术面试往往充满挑战,难以系统性地复习关键知识点。MLQuestions 通过整理高频考题并提供权威解答链接,解决了备考资源分散、重点不明的痛点,让用户能够针对性地巩固理论基础与工程实践知识。此外,项目还推荐了统计学、机器学习系统设计等专业书籍及模拟面试资源,构建了完整的备考生态。
这款工具非常适合正在寻找机器学习、深度学习或计算机视觉相关岗位的工程师、研究人员以及应届毕业生使用。无论你是希望检验自身知识盲区,还是想要系统梳理算法原理,MLQuestions 都能提供清晰的学习路径。其内容紧跟 2026 年行业趋势,不仅关注传统模型理论,也涵盖了生产级系统设计的实战思考,是提升面试竞争力的实用助手。
使用场景
资深算法工程师李明正在备战一家头部科技公司的机器学习岗位面试,需要在短时间内系统梳理计算机视觉与深度学习的核心考点。
没有 MLQuestions 时
- 复习范围模糊,只能在海量博客和论坛中盲目搜索“偏置与方差”、“梯度下降”等基础概念,难以确定考察深度。
- 缺乏针对最新趋势(如 2026 年新增的 NLP 方向)的整理,容易遗漏大模型时代的关键面试题。
- 只能被动阅读零散答案,缺乏模拟实战的问答逻辑,导致在解释“过拟合与欠拟合”时条理不清,无法展现工程化思维。
- 准备过程耗时巨大,大量时间浪费在筛选低质量资料上,挤压了手写代码和系统设计练习的时间。
使用 MLQuestions 后
- 直接获取涵盖 65+ 道精选题目的清单,从基础的统计推断到复杂的 CV/NLP 场景,复习边界清晰明确。
- 紧跟技术前沿,利用最新补充的 NLP 专项题库,精准覆盖大语言模型相关的面试热点,消除知识盲区。
- 参照提供的标准解答思路与权威教材链接(如 Chip Huyen 的著作),将零散知识点串联成系统的回答框架,表达更具逻辑性。
- 高效利用碎片时间聚焦核心考点,节省下的精力可用于配合推荐的模拟面试服务进行实战演练,显著提升自信。
MLQuestions 将原本杂乱无章的备考过程转化为一条清晰、高效且紧跟前沿的通关路径,帮助候选人用最短时间构建起扎实的技术防御体系。
运行环境要求
未说明
未说明

快速开始
65道机器学习面试题 2026
这是一份针对机器学习和计算机视觉工程师职位的技术面试题合集。
最新添加:自然语言处理(NLP)面试题 2026
备考资源
- 机器学习工程师面试课程
- 模拟机器学习面试:与来自顶尖科技公司和初创企业的机器学习工程师一起练习,为你的下一次面试做好准备。
- 《统计学大全:统计推断简明教程》 作者:拉里·瓦瑟曼
- 《机器学习》 作者:汤姆·米切尔
- 《设计机器学习系统:面向生产就绪应用的迭代式流程》 作者:奇普·休恩
本页面由 Jobbyo 赞助:
“如果你专注于面试准备,那就让 Jobbyo 来处理繁琐的申请工作吧。 它会自动完成申请,并在你保持高效备考的同时,帮你整理好整个求职过程。”
结账时使用优惠码“MLQUESTIONS”,即可享受高级订阅3个月的20%折扣!
面试题
1) 偏差与方差之间存在怎样的权衡?[来源]
如果我们的模型过于简单,参数很少,那么它可能会有较高的偏差和较低的方差。相反,如果模型拥有大量参数,则会表现出高方差和低偏差。因此,我们需要在不过度拟合或欠拟合数据的情况下,找到一个合适的平衡点。[来源]
2) 什么是梯度下降法?[来源]
梯度下降法是一种优化算法,用于寻找使成本函数(cost)最小化的函数(f)参数(系数)值。
当参数无法通过解析方法(例如线性代数)计算得出,而必须借助优化算法来搜索时,梯度下降法是最适用的方法。
3) 解释过拟合与欠拟合现象,以及如何应对它们?[来源]
机器学习/深度学习模型本质上是在其输入(称为训练特征)和目标输出(称为标签)之间学习一种关系。无论所学习的关系(函数)质量如何,其在测试集(与训练数据不同的数据集合)上的表现都需要进一步评估。
大多数机器学习/深度学习模型都具有可训练的参数,这些参数将被学习以构建输入-输出关系。根据每个模型拥有的参数数量,可以将其分为更灵活(参数更多)和较不灵活(参数较少)两类。
欠拟合问题出现在模型的灵活性(即参数数量)不足以捕捉训练数据中的潜在模式时。而过拟合则发生在模型对潜在模式过于敏感、过于灵活的情况下。在这种情况下,我们说模型已经“记住”了训练数据。
一个欠拟合的例子是用一阶多项式(一条直线)去拟合二阶多项式(二次函数)。类似地,用十阶多项式去拟合一条直线则属于过拟合。
4) 如何应对维度灾难?[来源]
- 特征选择(手动或通过统计方法)
- 主成分分析(PCA)
- 多维尺度分析
- 局部线性嵌入
[来源]
5) 什么是正则化?我们为什么要使用正则化?请列举一些常见的正则化方法。[来源]
正则化是一种抑制学习复杂或灵活模型的技术,旨在避免过拟合的风险。 示例:
- 岭回归(L2范数)
- Lasso回归(L1范数)
岭回归的一个明显缺点是模型的可解释性较差。它会将不太重要的预测变量的系数压缩到非常接近于零,但永远不会使其精确等于零。换句话说,最终模型中会包含所有预测变量。然而,在 Lasso 的情况下,由于L1惩罚的作用,当调节参数λ足够大时,某些系数估计值会被强制变为完全等于零。因此,Lasso方法同时具备变量选择功能,能够生成稀疏模型。 [来源]
6) 请解释主成分分析(PCA)?[来源]
主成分分析(PCA)是一种降维技术,常用于机器学习中,旨在减少数据集中的特征数量,同时尽可能保留数据信息。其原理是识别数据变化最大的方向(主成分),并将数据投影到沿这些方向的低维子空间上。
7) 为什么ReLU在神经网络中比Sigmoid更好,也更常用?[来源]
- 计算效率: 由于ReLU是一个简单的阈值函数,前向传播和反向传播的速度都会更快。
- 减少梯度消失的可能性: ReLU的梯度在正值时为1,在负值时为0;而Sigmoid激活函数则会在输入稍有变化时迅速饱和(梯度接近于0),从而导致梯度消失。
- 稀疏性: 当ReLU的输入为负值时,就会产生稀疏性。这意味着只有少数神经元会被激活(稀疏激活),从而使网络更加轻量。
8) 给定一维卷积神经网络中每一层的步长 S 和卷积核大小,编写一个函数来计算网络中某个节点的感受野。这实际上就是确定有多少输入节点会真正连接到 CNN 中的一个神经元。[src]
感受野是指在一次操作中,用于生成输出的输入空间中的特定区域。
考虑一个大小为 k 的 CNN 滤波器,某一层的感受野就是滤波器所使用的输入数量 k,再乘以输入中未被卷积滤波器缩减的维度 a。这样就得到感受野大小为 k*a。
更直观地讲,假设有一张 32x32x3 的图像,使用 5x5 大小的卷积滤波器,那么对应的感受野就是滤波器大小 5,乘以输入体积的深度(即 RGB 颜色通道数),也就是颜色维度。因此,感受野的尺寸为 5x5x3。
9) 在一张图像或矩阵上实现连通组件的标记。[src]
10) 用 C++ 实现一个稀疏矩阵类。[src]
11) 编写一个函数来计算积分图像,并再编写一个函数从积分图像中获取区域和。[src]
12) 当你试图从噪声样本中估计一个平面时,你会如何去除异常值?[src]
随机抽样一致性(RANSAC)是一种迭代方法,用于从包含异常值的观测数据集中估计数学模型的参数,同时确保这些异常值不会影响估计结果。 [src]
13) CBIR 是如何工作的?[src]
[答案] 基于内容的图像检索是指利用图像本身的内容来提取元数据的概念。与目前基于图像关联关键词的检索方式不同,这种方法通过计算机视觉技术提取相关信息,并在查询阶段使用这些信息进行检索。实现方式多种多样,可以从特征检测提取关键词,到使用卷积神经网络提取密集特征,并将其映射到已知的关键词分布中。
采用后一种方法时,我们不再关注图像中具体显示的内容,而是关注由已知图像生成的元数据与目标标签或标记之间的相似性。
14) 图像配准是如何工作的?稀疏与稠密光流等。[src]
15) 描述卷积是如何工作的。如果输入是灰度图像还是 RGB 图像,又有什么区别?决定下一层形状的因素有哪些?[src]
在卷积神经网络(CNN)中,卷积操作是通过一个称为卷积核或滤波器的小矩阵对输入图像进行处理的。卷积核以固定步长滑过图像,与图像对应位置的元素逐点相乘并求和,最终得到的结果称为特征图。
当输入是 RGB(或多于 3 个通道)图像时,滑动窗口将变成一个三维立方体。下一层的形状由卷积核大小、卷积核数量、步长、填充以及膨胀率等因素决定。 [src1][src2]
16) 请描述一下如何根据物体周围各个角度拍摄的图像和深度传感器测量数据,创建该物体的 3D 模型。[src]
3D 重建主要有两种流行的方法:
SfM 更适合构建大型场景的模型,而 MVS 则更适合构建小型物体的模型。
17) 不使用任何特殊函数,仅利用基本算术运算,实现 SQRT(const double & x)。[src]
可以使用泰勒级数来近似计算 sqrt(x):
18) 反转一个位串。[src]
如果你使用的是 Python 3:
data = b'\xAD\xDE\xDE\xC0'
my_data = bytearray(data)
my_data.reverse()
19) 尽可能高效地实现非极大值抑制。[src]
非极大值抑制(NMS)是一种用于消除同一图像中多次检测到同一对象的技术。 解决方法是首先按照边界框的得分进行排序(时间复杂度为 N logN)。然后从得分最高的框开始,移除那些与当前框重叠程度(IoU)超过一定阈值的框。(时间复杂度为 N^2)
为了优化这个解决方案,你可以使用特殊的数据结构来查询重叠的边界框,比如 R 树或 KD 树。(N LogN) [src]
20) 将链表原地反转。[src]
21) 什么是数据归一化?为什么我们需要它?[src]
数据归一化是非常重要的预处理步骤,用于将数值缩放到特定范围,以确保在反向传播过程中更好地收敛。通常,这涉及到对每个数据点减去其均值,并除以其标准差。如果不进行归一化,某些特征(特别是那些数值较大的特征)会在损失函数中被赋予更高的权重(如果一个高数值特征变化了1%,那将是一个很大的变化,但对于较小的特征来说则微不足道)。通过数据归一化,所有特征的权重会变得相对均衡。
22) 为什么我们在处理图像时使用卷积层而不是全连接层?[src]
首先,卷积操作能够保留、编码并有效利用图像中的空间信息。如果我们只使用全连接层,就无法获取任何相对的空间信息。其次,卷积神经网络(CNN)具有一定的平移不变性,因为每个卷积核都充当自己的滤波器或特征检测器。
23) 是什么使 CNN 具有平移不变性?[src]
如上所述,每个卷积核都充当自己的滤波器或特征检测器。因此,假设你在进行目标检测,目标在图像中的位置并不重要,因为我们无论如何都会以滑动窗口的方式在整个图像上应用卷积操作。
24) 为什么分类 CNN 中要使用最大池化层?[src]
最大池化层在 CNN 中的作用是减少计算量,因为在池化之后,特征图的尺寸会变小。同时,由于我们取的是最大激活值,语义信息并不会丢失太多。此外,还有观点认为,最大池化也有助于增强 CNN 的平移不变性。可以参考吴恩达关于最大池化的优点的精彩视频。
25) 为什么分割 CNN 通常采用编码器-解码器的结构?[src]
编码器 CNN 可以被视为一个特征提取网络,而解码器则利用这些特征来预测图像的各个分割区域,通过“解码”特征并将分辨率恢复到原始图像大小。
26) 残差网络的意义是什么?[src]
残差连接的主要作用是允许信息直接从之前的层传递过来,从而使得信息在网络中的传播变得更加容易。一篇非常有趣的论文指出,使用局部跳跃连接可以使网络形成一种多路径集成结构,让特征可以通过多种路径在网络中传播。
27) 什么是批量归一化?为什么它有效?[src]
训练深度神经网络的一个复杂之处在于,随着前面各层参数的变化,每一层输入的分布也会随之改变。因此,批量归一化的想法就是对每一层的输入进行标准化,使其输出的激活均值为零,标准差为一。这一过程是在每个单独的小批次上完成的,即仅针对该小批次计算均值和方差,然后进行归一化。这类似于对网络输入进行标准化的做法。那么,这样做有什么好处呢?我们知道,对网络输入进行归一化有助于模型的学习。然而,网络实际上是由一系列层组成的,前一层的输出会成为下一层的输入。这意味着我们可以把神经网络中的任意一层看作是一个更小子网络的第一层。这样,当我们对一层的输出进行归一化后再应用激活函数,并将其输入到下一层(子网络)时,就能实现逐层的归一化。
28) 为什么我们会使用多个小卷积核(如3x3),而不是少数几个大卷积核?[src]
这一点在VGGNet论文中有很好的解释。原因有两个:首先,使用多个小卷积核可以获得与少数大卷积核相同的感受野,并捕捉更多的空间上下文信息,但小卷积核所需的参数和计算量更少。其次,由于使用小卷积核时需要更多的滤波器,因此可以应用更多的激活函数,从而使 CNN 学习到更具区分性的映射函数。
29) 为什么我们需要验证集和测试集?它们之间有什么区别?[src]
在训练模型时,我们会将可用数据分为三个独立的集合:
- 训练集用于拟合模型的参数。然而,在训练集上获得的准确率并不能可靠地预测模型在新样本上的表现。
- 验证集用于评估模型在未参与训练的数据上的表现。基于验证集计算的指标可以用来调整模型的超参数。但是,每次我们评估验证集并根据其结果做出决策时,都会将验证集的信息泄露到模型中。评估次数越多,泄露的信息就越多。最终可能导致模型过拟合验证集,这样一来,验证集的表现同样无法可靠地预测模型在现实世界中的行为。
- 测试集用于评估模型在从未见过的数据上的表现。它应该仅在我们已经使用验证集调优完参数之后才被使用。
因此,如果我们省略测试集而只使用验证集,那么验证集上的得分将无法很好地估计模型的泛化能力。
30) 什么是分层交叉验证?我们什么时候应该使用它?[来源]
交叉验证是一种将数据划分为训练集和验证集的技术。在普通的交叉验证中,这种划分是随机进行的。而在分层交叉验证中,划分会保持训练集和验证集中各类别比例的一致性。
例如,如果我们有一个数据集,其中类别A占10%,类别B占90%,如果使用分层交叉验证,那么训练集和验证集中的比例将完全相同。相反,如果使用普通的交叉验证,在最坏的情况下,验证集中可能完全没有类别A的样本。
分层交叉验证可以应用于以下场景:
- 数据集中包含多个类别时。数据集越小、类别分布越不均衡,使用分层交叉验证就越重要。
- 数据集中包含不同分布的数据时。例如,在自动驾驶的数据集中,可能会同时包含白天和夜晚拍摄的图像。如果不确保这两种类型的数据都出现在训练集和验证集中,就可能导致模型泛化能力不足。
31) 为什么集成模型通常比单个模型的得分更高?[来源]
集成模型是通过结合多个模型来生成单一预测的方法。其核心思想在于,各个模型应犯不同的错误。这样,一个模型的错误就会被其他模型正确的预测所弥补,从而使得集成模型的整体得分更高。
创建集成模型需要多样化的子模型。实现多样性的方法包括:
- 使用不同的机器学习算法。例如,可以将逻辑回归、K近邻和决策树结合起来。
- 在训练时使用数据的不同子集。这被称为自助法(bagging)。
- 为训练集中的每个样本赋予不同的权重。如果以迭代的方式进行,并根据集成模型的误差动态调整样本权重,则称为提升法(boosting)。
许多数据科学竞赛的获奖方案都是集成模型。然而,在实际的机器学习项目中,工程师需要在运行时间和准确性之间找到平衡。
32) 什么是不平衡数据集?你能列举一些处理它的方法吗?[来源]
不平衡数据集是指目标类别比例差异较大的数据集。例如,在医学图像数据集中,如果我们要检测某种疾病,通常负样本的数量会远远多于正样本——比如98%的图像没有该疾病,而只有2%的图像有该疾病。
处理不平衡数据集有不同的方法:
- 过采样或欠采样。我们可以不从训练集中采用均匀分布的采样方式,而是使用其他分布方式,使模型看到更加均衡的数据集。
- 数据增强。我们可以通过对现有数据进行可控的修改来增加少数类别的样本数量。例如,在上述数据集中,可以将带有疾病的图像进行翻转,或者在图像副本上添加噪声,但要确保疾病仍然可见。
- 使用合适的评估指标。在上述数据集中,如果模型总是预测为阴性,其准确率也会达到98%。但在处理不平衡数据集时,精确率、召回率和F1分数等指标能够更好地反映模型的性能。
33) 请解释监督学习、无监督学习和强化学习之间的区别?[来源]
在监督学习中,我们训练模型来学习输入数据与输出数据之间的关系。进行监督学习的前提是有标注好的数据。
而在无监督学习中,我们只有未标注的数据。模型会学习数据的表示形式。无监督学习常用于在大量未标注数据和少量标注数据的情况下初始化模型参数。首先训练一个无监督模型,然后利用该模型的权重来训练一个监督模型。
强化学习中,模型接收输入数据,并根据其输出获得奖励。模型会学习一种能够最大化奖励的策略。强化学习已成功应用于围棋等策略游戏,甚至经典的雅达利电子游戏。
34) 什么是数据增强?你能举几个例子吗?[来源]
数据增强是一种通过修改现有数据来合成新数据的技术,且修改后的数据不会改变目标内容,或者改变方式是已知的。
计算机视觉领域是数据增强非常有用的一个方向。我们可以对图像进行多种修改:
- 调整大小
- 水平或垂直翻转
- 旋转
- 添加噪声
- 变形
- 调整颜色
每种问题都需要定制化的数据增强流程。例如,在光学字符识别(OCR)任务中,翻转会改变文本内容,反而不利于模型;而调整大小和小幅旋转则可能有所帮助。
35) 什么是图灵测试?[来源]
图灵测试是一种用来检验机器是否具备人类水平智能的方法。通过让机器与人类进行交互,若机器通过了测试,则被认为具有智能。然而,即使机器表现得像人类一样,也可能并不真正理解人类,仅仅是在模仿而已。
36) 什么是精确率?
精确率(也称为阳性预测值)是指检索到的相关实例占所有检索结果的比例。
精确率 = 真正例 / (真正例 + 假正例)
[来源]
37) 什么是召回率?
召回率(也称为灵敏度)是指所有相关实例中被正确检索出来的实例所占的比例。
召回率 = 真正例 / (真正例 + 假负例)
[来源]
38) 请定义F1分数。[来源]
它是精确率和召回率的加权平均值,同时考虑了假正例和假负例的影响。F1分数常用于衡量模型的性能。
F1分数 = 2 * (精确率 * 召回率) / (精确率 + 召回率)
39) 什么是损失函数?[来源]
损失函数是一个标量函数,用于量化神经网络的误差程度。损失函数值越低,神经网络的表现越好。例如,在MNIST数据集中对图像进行分类时,输入图像是数字2,但神经网络错误地预测为3。
40) 列举不同的激活函数或神经元类型。[来源]
- 线性神经元
- 二值阈值神经元
- 随机二值神经元
- Sigmoid神经元
- Tanh函数
- 整流线性单元(ReLU)
41) 定义学习率。
学习率是一个超参数,用于控制我们在梯度下降过程中根据损失梯度调整网络权重的程度。[来源]
42) 动量(在神经网络优化中)是什么?
动量使优化算法记住上一步的方向,并将其按一定比例加到当前步骤中。这样,即使算法陷入平坦区域或局部最小值,它也能跳出并继续向真正的最小值前进。[来源]
43) 批量梯度下降和随机梯度下降有什么区别?
批量梯度下降使用整个数据集来计算梯度。这对于凸的或相对平滑的误差曲面非常有效。在这种情况下,我们可以较为直接地朝着局部或全局最优解前进。此外,如果学习率逐渐降低,批量梯度下降最终会找到其吸引域内的最小值。
随机梯度下降(SGD)则使用单个样本来计算梯度。SGD在具有大量局部最大/最小值的误差曲面上表现更好(虽然不能说“好”,但相比批量梯度下降确实更优)。在这种情况下,由于样本数量较少而产生的较嘈杂的梯度,往往能将模型从局部最小值中“拉出”,进入一个更有希望的更优区域。[来源]
44) 时代、批次与迭代的区别。
- 时代:对所有训练样本进行一次前向传播和一次反向传播
- 批次:在一次前向和反向传播中一起处理的样本
- 迭代:训练样本总数除以批次大小
45) 什么是梯度消失问题?[来源]
随着隐藏层的不断增加,反向传播传递信息到较低层的能力越来越弱。实际上,当信息被反向传播时,梯度会逐渐消失,相对于网络的权重变得非常小。
46) 什么是丢弃法?[来源]
丢弃法是一种简单有效的防止神经网络过拟合的方法。它通过随机丢弃神经网络中的部分单元来实现。这类似于自然界的繁殖过程:自然界通过组合不同的基因(即丢弃其他基因)来产生后代,而不是强化基因之间的协同适应。
47) 定义LSTM。[来源]
长短期记忆网络——专门设计用来解决长期依赖问题,通过维护一个状态来决定记住什么和忘记什么。
48) 列举LSTM的关键组成部分。[来源]
- 门控机制(遗忘门、记忆门、更新门和读取门)
- tanh(x)(取值范围为-1到1)
- Sigmoid(x)(取值范围为0到1)
49) 列举RNN的变体。[来源]
- LSTM:长短期记忆网络
- GRU:门控循环单元
- 端到端网络
- 记忆网络
50) 什么是自编码器?列举几个应用。[来源]
自编码器主要用于学习给定数据的压缩表示。其应用包括:
- 数据去噪
- 降维
- 图像重建
- 图像着色
51) GAN由哪些组件构成?[来源]
- 生成器
- 判别器
52) 提升法和装袋法有什么区别?
提升法和装袋法都是集成学习技术,它们通过结合多个弱学习器(分类器或回归器,其性能仅略高于随机猜测)来形成一个强学习器,从而做出准确的预测。装袋法是通过对数据集进行有放回的自助采样,每个样本训练一个可能较弱的学习器。而提升法则使用全部数据来训练每个学习器,但之前被错误分类的样本会被赋予更高的权重,以便后续学习器在训练时更加关注这些样本。[来源]
53) 解释ROC曲线的工作原理。[来源]
ROC曲线是以图形方式展示不同阈值下真正例率与假正例率之间对比关系的工具。它常被用作模型灵敏度(真正例)与误报率(假正例)之间权衡的指标。
54) 第一类错误和第二类错误有什么区别?[来源]
第一类错误是假阳性,而第二类错误是假阴性。简而言之,第一类错误是指明明没有发生某件事却声称发生了,而第二类错误则是指明明有事情发生却声称没有。可以这样理解:第一类错误就像告诉一个男人他怀孕了,而第二类错误则像是告诉一位孕妇她并没有怀孕。
55) 生成模型和判别模型有什么区别?[来源]
生成模型会学习数据的类别分布,而判别模型则只学习不同类别之间的区分特征。通常情况下,判别模型在分类任务上的表现优于生成模型。
56) 基于实例的学习与基于模型的学习。
基于实例的学习:系统通过记忆训练样本进行学习,然后使用相似性度量将知识泛化到新样本上。
基于模型的学习:另一种从一组示例中进行泛化的办法是构建这些示例的模型,然后利用该模型来进行预测。这种方法称为基于模型的学习。 [src]
57) 何时使用标签编码与独热编码?
这个问题通常取决于你的数据集以及你希望应用的模型。不过,在为模型选择合适的编码技术之前,仍有一些需要注意的点:
我们使用独热编码的情况包括:
- 分类特征是非有序的(如上述国家);
- 分类特征的数量较少,因此可以有效地应用独热编码。
我们使用标签编码的情况包括:
- 分类特征是有序的(如幼儿班、小学低年级、小学高年级、中学);
- 类别数量较多,因为独热编码可能导致较高的内存消耗。
58) LDA和PCA在降维方面有什么区别?
LDA和PCA都是线性变换技术:LDA是有监督的,而PCA则是无监督的——PCA会忽略类别标签。
我们可以把PCA理解为一种寻找数据方差最大方向的技术。与PCA不同,LDA则试图找到能够最大化类别可分性的特征子空间。
59) 什么是t-SNE?
t分布随机邻域嵌入(t-SNE)是一种无监督的非线性技术,主要用于数据探索和可视化高维数据。简单来说,t-SNE可以帮助你直观地感受数据在高维空间中的分布情况。
60) t-SNE和PCA在降维方面有什么区别?
首先需要指出的是,PCA诞生于1933年,而t-SNE则是在2008年才被提出。自1933年以来,数据科学领域发生了巨大变化,尤其是在计算能力和数据规模方面。其次,PCA是一种线性降维技术,它旨在最大化方差并保留较大的成对距离。换句话说,原本差异较大的数据点在降维后仍然会相距较远。这可能会导致较差的可视化效果,特别是在处理非线性流形结构时。所谓流形结构,可以理解为任何几何形状,比如圆柱体、球体、曲线等。
相比之下,t-SNE只保留较小的成对距离或局部相似性,而PCA则关注于保留较大的成对距离以最大化方差。
61) 什么是UMAP?
UMAP(均匀流形近似与投影)是一种新颖的流形学习降维技术。UMAP基于黎曼几何和代数拓扑的理论框架构建而成,最终形成了一种实用且可扩展的算法,适用于真实世界的数据。
62) t-SNE和UMAP在降维方面有什么区别?
UMAP与t-SNE输出结果最大的区别在于其对局部与全局结构的平衡——UMAP往往更能保持最终投影中的全局结构。这意味着簇间关系可能比t-SNE更为有意义。然而,需要注意的是,由于UMAP和t-SNE在将高维数据投影到低维空间时都会不可避免地扭曲数据的原始形状,因此在低维空间中的任何坐标轴或距离都无法像PCA那样直接解释。
63) 随机数生成器是如何工作的?例如Python中的rand()函数?
它根据种子生成伪随机数,并且存在一些著名的算法。更多信息请参见以下链接: [src]
64) 假设我们要在同一数据集上评估n个不同的机器学习模型的性能,为什么以下划分机制是不正确的呢?
def get_splits():
df = pd.DataFrame(...)
rnd = np.random.rand(len(df))
train = df[ rnd < 0.8 ]
valid = df[ rnd >= 0.8 & rnd < 0.9 ]
test = df[ rnd >= 0.9 ]
return train, valid, test
#模型1
from sklearn.tree import DecisionTreeClassifier
train, valid, test = get_splits()
...
#模型2
from sklearn.linear_model import LogisticRegression
train, valid, test = get_splits()
...
rand()函数每次运行时都会以不同的顺序排列数据,因此如果我们再次运行划分机制,得到的80%的数据行将会与第一次不同。这就带来了一个问题:我们需要在相同的测试集上比较各个模型的性能。为了确保采样的可重复性和一致性,我们必须提前设置随机种子,或者在数据划分完成后将其保存下来。另外,也可以直接在sklearn的train_test_split()函数中设置random_state参数,这样就能在不同次执行中获得完全一致的训练集、验证集和测试集。
65) 贝叶斯统计与频率派统计有何区别? [src]
频率派统计是一种以样本统计量来估计总体参数,并提供点估计和置信区间的框架。
而贝叶斯统计则是一种利用先验知识和信息来更新对某个参数或假设的信念,并为参数提供概率分布的框架。
两者的主要区别在于:贝叶斯统计将先验知识和信念纳入分析过程,而频率派统计则不考虑这些因素。
66) LSTM与Transformer的基本区别是什么? [src]
LSTM(长短期记忆网络)由RNN单元组成,这些单元经过设计,能够在时间步之间更高效地存储和操作信息。相比之下,Transformer模型包含一系列编码器和解码器层,每一层都由自注意力机制和前馈神经网络组件构成。
66) 什么是RCNN?[src]
循环卷积模型是一种专门设计用于对图像序列(通常也称为视频)进行预测的模型。这类模型广泛应用于计算机视觉中的目标检测任务。RCNN方法结合了区域建议技术和卷积神经网络(CNN),以识别和定位图像中的目标。
贡献
我们非常欢迎各位的贡献。
- 克隆仓库。
- 提交你的问题或答案。
- 打开拉取请求。
相似工具推荐
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
funNLP
funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。
cs-video-courses
cs-video-courses 是一个精心整理的计算机科学视频课程清单,旨在为自学者提供系统化的学习路径。它汇集了全球知名高校(如加州大学伯克利分校、新南威尔士大学等)的完整课程录像,涵盖从编程基础、数据结构与算法,到操作系统、分布式系统、数据库等核心领域,并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。 面对网络上零散且质量参差不齐的教学资源,cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容,仅收录真正的大学层级课程,排除了碎片化的简短教程或商业广告,确保用户能接触到严谨的学术内容。 这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员,以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽,不仅包含传统的软件工程与网络安全,还细分了生成式 AI、大语言模型、计算生物学等新兴学科,并直接链接至官方视频播放列表,让用户能一站式获取高质量的教育资源,免费享受世界顶尖大学的课堂体验。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。
awesome-machine-learning
awesome-machine-learning 是一份精心整理的机器学习资源清单,汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点,这份清单按编程语言(如 Python、C++、Go 等)和应用场景(如计算机视觉、自然语言处理、深度学习等)进行了系统化分类,帮助使用者快速定位高质量项目。 它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库,还是资深工程师对比不同语言的技术选型,都能从中获得极具价值的参考。此外,清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源,构建了从学习到实践的全链路支持体系。 其独特亮点在于严格的维护标准:明确标记已停止维护或长期未更新的项目,确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”,awesome-machine-learning 以开源协作的方式持续更新,旨在降低技术探索门槛,让每一位从业者都能高效地站在巨人的肩膀上创新。