第1章 机器学习概览

微信读书: https://weread.qq.com/web/reader/e8e327a07208f4d1e8ec475kc9f326d018c9f0f895fb5e4

本章中,我们提及了机器学习中最重要的一些概念。第2章将会进行更深入的探讨,也会写更多代码,但是在那之前,请先确保你已经知道如何回答下列问题:

1.如何定义机器学习?

机器学习是一门通过编程让计算机从数据中进行学习的科学(和艺术)。

2.机器学习在哪些问题上表现突出,你能给出四种类型吗?

  • 有解决方案的问题:机器学习算法可以简化代码,相比传统方法有更好的性能。
  • 传统方法难以解决的复杂问题:最好的机器学习技术也许可以找到解决方案。
  • 环境有波动:机器学习算法可以适应新的数据。
  • 洞察复杂问题和大量数据。

3.什么是被标记的训练数据集?

在有监督学习中,提供给算法的包含所需解决方案的训练集称为标签。例如一封邮件是垃圾邮件还是常规邮件。

4.最常见的两种监督学习任务是什么?

分类和回归。

5.你能举出四种常见的无监督学习任务吗?

聚类、降维、异常检测和关联规则学习。

6.要让一个机器人在各种未知的地形中行走,你会使用什么类型的机器学习算法?

强化学习。

7.要将顾客分成多个组,你会使用什么类型的算法?

聚类算法。

8.你会将垃圾邮件检测的问题列为监督学习还是无监督学习?

监督学习。

9.什么是在线学习系统?

在在线学习中,你可以循序渐进地给系统提供训练数据,逐步积累学习成果。这种提供数据的方式可以是单独的,也可以采用小批量的小组数据来进行训练。每一步学习都很快速并且便宜,这样系统就可以根据飞速写入的最新数据进行学习。

10.什么是核外学习?

对于超大数据集——超出一台计算机的主存储器的数据,在线学习算法也同样适用(这称为核外学习)。算法每次只加载部分数据,并针对这部分数据进行训练,然后不断重复这个过程,直到完成所有数据的训练(见图1-14)。

11.什么类型的学习算法依赖相似度来做出预测?

基于实例的学习。在基于实例的学习中,系统用心学习这些示例,然后通过使用相似度度量来比较新实例和已经学习的实例(或它们的子集),从而泛化新实例。

12.模型参数与学习算法的超参数之间有什么区别?

超参数是学习算法(不是模型)的参数。因此,它不受算法本身的影响。超参数必须在训练之前设置好,并且在训练期间保持不变。如果将正则化超参数设置为非常大的值,会得到一个几乎平坦的模型(斜率接近零)。学习算法虽然肯定不会过拟合训练数据,但是也更加不可能找到一个好的解决方案。调整超参数是构建机器学习系统非常重要的组成部分。

13.基于模型的学习算法搜索的是什么?它们最常使用的策略是什么?它们如何做出预测?

基于模型的学习算法搜索的是模型选择。模型选择包括选择模型的类型和完全指定它的架构。训练一个模型意味着运行一种寻找模型参数的算法,使其最适合训练数据(希望能对新的数据作出好的预测)。

14.你能给出机器学习中的四个主要挑战吗?

  • 训练数据的数量不足
  • 训练数据不具有代表性
  • 低质量的数据
  • 无关特征: 只有训练数据中包含足够多的相关特征以及较少的无关特征,系统才能够完成学习。一个成功的机器学习项目,其关键是提取出一组好的用来训练的特征集。

15.如果模型在训练数据上表现很好,但是应用到新实例上的泛化结果却很糟糕,是怎么回事?能给出三种可能的解决方案吗?

过拟合。过拟合的可能解决方案包括:

  • 简化模型: 可以选择较少参数的模型(例如,选择线性模型而不是高阶多项式模型),也可以减少训练数据中的属性数量,或者是约束模型。
  • 收集更多的训练数据。
  • 减少训练数据中的噪声(例如,修复数据错误和消除异常值)。

16.什么是测试集,为什么要使用测试集?

测试集: 用于测试模型的数据。

通过测试集来评估模型应对新场景的误差率,即泛化误差(或者样例外误差),可以评估模在处理新场景时的性能。

17.验证集的目的是什么?

验证集用于评估几种候选模型并选择最佳模型。更具体地说,你可以在简化的训练集上(即完整训练集减去验证集)训练具有各种超参数的多个模型,并且选择在验证集上表现最佳的模型。在此保持验证之后,你在完整的训练集(包括验证集)上训练最佳模型,这就是你的最终模型。最后,你在测试集上评估这个模型以获得泛化误差的估计值。

18.什么是train-dev集,什么时候需要它,怎么使用?

开发集(dev set)是指从完整的训练集中抽取部分数据,用于评估几种候选模型并选择最佳模型的数据集。

在调整模型和超参数来得到拟合那个测试集的最佳模型时,通常需要train-dev集。

使用方法: 你可以在简化的训练集上(即完整训练集减去验证集)训练具有各种超参数的多个模型,并且选择在验证集上表现最佳的模型。在此保持验证之后,你在完整的训练集(包括验证集)上训练最佳模型,这就是你的最终模型。最后,你在测试集上评估这个模型以获得泛化误差的估计值。

19.如果你用测试集来调超参数会出现什么错误?

过拟合,该模型对于新的数据不太可能有良好的表现。

以上练习题的答案见附录A。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐