《机器学习》-- 第一章

2019-07-31 18:00:11 浏览数 (1)

本文目录:

  • 1.1引言
  • 1.2基本术语
    • 1.2.1数据相关
    • 1.2.2 训练相关
    • 1.2.3 测试相关
    • 1.2.4 泛化相关
  • 1.3假设空间
  • 1.4归纳偏好
  • "机器学习"名称的由来

第一章 绪论

1.1 引言

机器学习是这样一门学科,它致力于研究如何通过计算的手段,利用经验来改善系统自身的性能,在计算机系统中,“经验”通常以“数据”形式存在,因此,机器学习所研究的主要内容,是关于在计算机上从数据中产生“模型” (model)的算法,即“学习算法” (learning algorithm)。有了学习算法,我们把经验数据提供给它,它就能基于这些数据产生模型;在面对新的情况时(例如看到一个没剖开的西瓜),模型会给我们提供相应的判断(例如好瓜)。如果说计算机科学是研究关于“算法”的学问,那么类似的,可以说机器学习是研究关于“学习算法”的学问。

Mitchell 在1997给出了一个更形式化的定义:假设用 P 来评估计算机程序在某任务类 T 上的性能,若一个程序通过利用经验 E 在 T 中任务上获得了性能改善,则我们就说关于 T 和 P,该程序对 E 进行了学习。

1.2 基本术语

1.2.1 数据相关

  • 示例/样本(instance / sample) 例:(色泽=青绿;根蒂=蜷缩;敲声=浊响) 一般以

表示包含

个示例的数据集

  • 数据集(data set) 例:(色泽=青绿;根蒂=蜷缩;敲声=浊响),(色泽=乌黑;根蒂=稍蜷;敲声=沉闷),(色泽=浅白;根蒂=硬挺;敲声=清脆),……
  • 属性/特征(attribute / feature) 例:色泽、根蒂、敲声 一个示例由

个特征描述,如示例

  • 属性值(attribute value) 例:青绿、乌黑、浅白 如示例

,其中

表示第 i 个示例的第

个特征的值

  • 属性空间/样本空间/输入空间(attribute space / sample space) 属性张成的空间称为“属性空间”(attribute space)、“样本空间”(sample space)或“输入空间”,例:我们把“色泽”、“根蒂”、“敲声”作为三个坐标轴,则它们张成一个用于描述西瓜的三维空间,每个西瓜都可在这个空间中找到自己的坐标位置。
  • 特征向量(feature vector) 在属性空间中的每个点对应一个坐标向量,因此我们也把一个示例 (instance/sample )称为一个“特征向量”(feature vector)

1.2.2 训练相关

  • 学习/训练(learning / training) 从数据中学得模型的过程称为“学习”(learning)或“训练”(training),这个过程通过执行某个学习算法来完成。
  • 训练数据(training data) 训练过程中使用的数据称为“训练数据”(training data)
  • 训练样本(training sample) 训练数据中每个样本称为一个“训练样本”(training sample)
  • 训练集(training set) 训练样本组成的集合称为“训练集”(training set)
  • 假设与真相(hypothesis & ground-truth)
  • 假设:学得模型对应了关于数据的某种潜在的规律,因此亦称“假设”(hypothesis)
  • 真相:潜在规律自身,则称为“真相”或“真实”(ground-truth),学习过程就是为了找出或逼近真相
  • 两者区别:假设是我们认为的样本空间的真相,而样本空间的真相是客观存在的,我们认为的真相是否与真相本身相一致,需要后期的验证。
  • 标记(label) 训练样本的“结果”信息,例如“(色泽=青绿;根蒂=螺缩;敲声=浊响),好瓜)”,这里关于示例结果的信息,例如“好瓜”,称为“标记”(label)
  • 样例(example) 拥有了标记信息的示例,称为“样例”(example)
  • 标记空间/输出空间(label space) 所有标记的集合,称为“标记空间”(label space)或“输出空间”

1.2.3 测试相关

  • 分类(classification) 若我们欲预测的是离散值,例如“好瓜”、“坏瓜”,此类学习任务称为“分类”(classification)
  • 回归(regression) 若欲预测的是连续值,例如西瓜成熟度0.95、0.37,此类学习任务称为“回归”(regression)
  • 测试与测试样本(testing & testing sample)
  • 测试:学得模型后,使用其进行预测的过程称为“测试”(testing)
  • 测试样本:被预测的样本称为“测试样本”(testing sample)
  • 簇&聚类(cluster & clustering) 我们还可以对西瓜做“聚类”(clustering):将训练集中的西瓜分成若干组,每组称为一个“簇”(cluster);这些自动形成的簇可能对应一些潜在的概念划分,例如“浅色瓜”、“深色瓜”,甚至“本地瓜”、“外地瓜”。 在聚类学习中,“浅色瓜”、“本地瓜”这样的概念我们事先是不知道的,而且学习过程中使用的训练样本通常不拥有标记信息。
  • 监督学习与无监督学习的区别/分类
  • 监督学习(supervised learning):训练数据有标记信息。如:分类、回归
  • 无监督学习(unsupervised learning):训练数据无标记信息。如:聚类

1.2.4 泛化相关

  • 泛化能力(generalization) 学得模型适用于新样本的能力,称为“泛化”(generalization)能力
  • 独立同分布( i.i.d.) 通常假设样本空间中全体样本服从一个未知“分布”(distribution)D,我们获得的每个样本都是独立地从这个分布上采样获得的,即“独立同分布”(independent and identically distributed,简称 i.i.d.),一般而言,训练样本越多,我们得到的关于 D 的信息越多,这样就越有可能通过学习获得具有强泛化能力的模型。

中心极限定理:若样本的数据量足够大,样本均值近似服从正态分布。

1.3 假设空间

假设空间(hypothesis space)

我们可以把学习过程看作一个在所有假设(hypothesis)组成的空间中进行搜索的过程,搜索目标是找到与训练集“匹配”(fit)的假设,即能够将训练集中的瓜判断正确的假设。

假设的表示一旦确定,假设空间及其规模大小就确定了。

附图

img

版本空间(version space)

现实问题中我们常面临很大的假设空间,但学习过程是基于有限样本训练集进行的。因此,可能有多个假设与训练集一致,即存在着一个与训练集一致的“假设集合”,我们称之为“版本空间”(version space)。例如在西瓜问题中,与表1.1训练集所对应的版本空间如图1.2所示。

附图

1.4 归纳偏好

  • 归纳偏好(inductive bias) 通过学习得到的模型对应了假设空间中的一个假设。机器学习算法在学习过程中对某种类型假设的偏好,称为“归纳偏好”(inductive bias),或简称为“偏好”。 任何一个有效的机器学习算法必有其归纳偏好,否则它将被假设空间中看似在训练集上“等效”的假设所迷惑,而无法产生确定的学习结果。
  • “奥卡姆剃刀”(Occam's razor)原则
  • 归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或“价值观”,“奥卡姆剃刀”可以用来引导算法确立“正确的”偏好。
  • “奥卡姆剃刀”(Occam's razor)原则:若有多个假设与观察一致,则选最简单的那个
  • 什么学习算法更好 归纳偏好对应了学习算法本身所做出的关于“什么样的模型更好”的假设,在具体的现实问题中,这个假设是否成立,即算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法能否取得好的性能。 对于一个学习算法A,若它在某些问题上比学习算法B好,则必然存在另一些问题,在那里B比A好。这个结论对任何算法均成立
  • “没有免费的午餐”定理(NFL定理) 无论学习算法A多聪明,学习算法B多笨拙,它们的期望性能相同。这就是“没有免费的午餐”定理(No Free Lunch Theorem,简称NFL定理) NFL定理有一个重要前提:所有“问题”出现的机会相同、或所有问题同等重要,但实际情形并不是这样。例如:“(根蒂=蝶缩;敲声=浊响)”的好瓜很常见,而“(根落二硬摄:敲声二清晚)”的好瓜罕见,甚至不存在。 NFL定理最重要的寓意:脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义。要谈论算法的相对优劣,必须要针对具体的学习问题。学习算法自身的归纳偏好与问题是否相配,往往会起到决定性的作用。

1.5 发展历程

1.6 应用现状

1.7 阅读材料

可以参考 Roadmap (https://github.com/firewang/lingweilingyu/Roadmap.md) 中的相关资源

1.8 第1章习题

小故事:“机器学习”名称的由来

1952年,阿瑟·萨缪尔(Arthur Samuel, 1901-1990) 在IBM公司研制了一个西洋跳棋程序,这个程序具有自学习能力,可通过对大量棋局的分析逐渐辨识出当前局面下的“好棋”和“坏棋”,从而不断提高弈棋水平,并很快就赢了萨缪尔自己。

1956年,萨缪尔应约翰·麦卡锡(John McCarthy, “人工智能之父” , 1971年图灵奖得主)之邀,在标志着人工智能学科诞生的达特茅斯会议上介绍这项工作,萨缪尔发明了“机器学习”这个词,将其定义为“不显式编程地赋予计算机能力的研究领域” 。他的文章"Some studies in machine learning using the game of checkers" 1959年在IBM Journal正式发表后,爱德华·费根鲍姆(Edward Feigenbaum,“知识工程之父” ,1994年图灵奖得主)为编写其巨著Computers and Thought,在1961年邀请萨缪尔提供一个该程序最好的对弈实例,于是,萨缪尔借机向康涅狄格州的跳棋冠军、当时全美排名第四的棋手发起了挑战,结果萨缪尔程序获胜,在当时引起表动。

事实上,萨缪尔跳棋程序不仅在人工智能领域产生了重大影响,还影响到整个计算机科学的发展,早期计算机科学研究认为,计算机不可能完成事先没有显式编程好的任务,而萨缪尔跳棋程序否证了这个假设,另外,这个程序是最早在计算机上执行非数值计算任务的程序之一,其逻辑指令设计思想极大地影响了IBM计算机的指令集,并很快被其他计算机的设计者采用。

本文项目地址:

https://github.com/firewang/lingweilingyu/blob/master/contents/Machine Learning of Zhi-Hua Zhou.md

参考网址:

  • 周志华 著. 机器学习, 北京: 清华大学出版社, 2016年1月.

0 人点赞