1、你会如何定义机器学习?
机器学习是让计算机编程从而能从数据中学习的科学(和艺术)。更宽泛的定义是:让计算机具备无需明确编程就能学习的能力的研究领域(亚瑟·塞缪尔,1959 年)。更面向工程的定义是:如果一个计算机程序针对某任务 T 和某性能指标 P,其在任务 T 上以 P 衡量的性能会随着经验 E 而提升,那么就称该程序从经验 E 中学习(汤姆·米切尔,1997 年)。
2、什么是带标签的训练集?
在监督学习中,提供给算法的训练数据包含所需的解决方案,这些解决方案称为 标签 。包含标签的训练数据集合就是 带标签的训练集 。
例如:
- 垃圾邮件分类的训练集,其中每封邮件都带有其所属类别(垃圾邮件或正常邮件)的标签;
- 训练预测汽车价格的系统时,提供的包含汽车特征(里程、车龄、品牌等)及其对应价格(标签)的汽车示例集合也是带标签的训练集。
3、两种最常见的监督学习任务是什么?
回归(预测值)和分类(预测类别)
4、你会使用哪种机器学习算法让机器人在各种未知地形上行走?
强化学习算法。因为这是强化学习通常处理的问题类型,虽然也可以将该问题表示为有监督或半监督学习问题,但不太自然。
5、什么是在线学习系统?
在线学习系统能从连续流入的数据中增量式学习。它可以处理连续数据流(如股票价格),快速或自主适应变化,适合计算资源有限的情况,学习新数据实例后可丢弃数据以节省空间。也可用于训练无法装入单台机器主内存的大型数据集(即核外学习)。训练时,系统通过逐个或小批量地依次输入数据实例进行增量训练,每个学习步骤快速且成本低,能在新数据到来时即时学习。
6、哪种学习算法依靠相似度度量来进行预测?
基于实例的学习算法(Instance-based learning)依靠相似度度量来进行预测。
7、模型参数和学习算法的超参数之间有什么区别?
模型参数是模型本身的参数,如线性模型中的θ0和θ1,学习算法可调整这些参数使模型适应训练数据;超参数是学习算法的参数,不是模型的参数,不受学习算法本身影响,必须在训练前设置且在训练期间保持不变,用于控制学习过程中应用的正则化量等。
8、基于模型的学习算法搜索的是什么?它们最常用的成功策略是什么?它们如何进行预测?
基于模型的学习算法搜索模型参数的最优值,以使模型能很好地泛化到新实例。最常用的成功策略是通过最小化一个成本函数来训练系统,该成本函数衡量系统在训练数据上的预测效果,若模型经过正则化,还会加上对模型复杂度的惩罚项。进行预测时,使用学习算法找到的参数值,将新实例的特征输入到模型的预测函数中。
9、如果你的模型在训练数据上表现出色,但在新实例上的泛化能力较差,这是怎么回事?请列举三种可能的解决方案。
这种情况可能是模型过拟合了训练数据(或者在训练数据上极其幸运)。三种可能的解决方案是:
- 获取更多数据
- 简化模型(选择更简单的算法、减少使用的参数或特征数量,或对模型进行正则化)
- 减少训练数据中的噪声
10、什么是测试集,为什么要使用它?
测试集的作用与数据窥探偏差
测试集是从数据集中随机选取并预留出来的一部分数据,通常占数据集的20%。使用测试集是为了评估机器学习模型的泛化误差。
若不将测试集单独预留,直接查看测试集数据,大脑可能会发现一些看似有趣的模式,从而选择特定的机器学习模型。此时用测试集估计泛化误差会过于乐观,导致最终部署的系统表现不如预期。这种情况被称为 数据窥探偏差 。
11、验证集的目的是什么?
当多次在测试集上测量泛化误差,并调整模型和超参数以生成针对该测试集的最佳模型时,模型在新数据上的表现可能不佳。验证集可解决此问题,通过使用训练集训练多个具有不同超参数的模型,在验证集上选择表现最佳的模型和超参数,最后在测试集上进行一次最终测试以估计泛化误差。
12、如果使用测试集来调整超参数,会出现什么问题?
如果使用测试集调整超参数,可能会在测试数据中发现看似有趣的模式,从而选择特定的机器学习模型。用测试集估计泛化误差时,估计值会过于乐观,推出的系统表现将不如预期,这被称为 数据窥探偏差 。此外,测量泛化误差后调整模型会导致对测试集 过拟合 。
13、什么是交叉验证,为什么你会选择交叉验证而不是验证集?
交叉验证
交叉验证是一种评估模型的方法。例如,K折交叉验证会将训练集划分为 K 个不同子集(折),每次选取一个不同的折用于评估,在其他 K - 1 个折上进行训练。多次重复此过程,可以得到多个评估分数。
选择交叉验证而非验证集的原因在于,交叉验证不仅能够得到模型

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



