西瓜书 学习笔记 (1)绪论
个人自学笔记,内容摘自原书+个人理解,不一定正确,若有误,欢迎指出。
1.1 什么是机器学习?
机器学习的定义:
假设用P来评估计算机程序在某任务类T上的性能,若一个程序通过利用经验E在任务T中获得了性能改善,则我们就说关于T和P,该程序对E进行了学习。[Mitchell, 1997]
通俗地说,机器学习即是通过学习算法,从经验(数据)中产生模型,面对新的情况时,模型会给我们相应的结果与判断。
可以抽象为: 数据——>学习算法——>模型
新数据——>模型——>预测结果
1.2 基本术语
-
数据集(data set)
- 示例,特征,特征向量
示例(instance)的集合。示例是对一个事件或者对象(eg.一个西瓜)的描述。示例包含了属性或特征(feature),以及相对于的属性值或特征值。属性或特征张成的空间称为属性空间或样本空间,每一个示例(西瓜)都可以在此空间中找到一个坐标(如西瓜色泽、根蒂、敲声可作为三维空间的三个轴),因此一个示例也可以称为是空间中的一个特征向量。
因此数据常以矩阵形式进行运算,可以达到简化算法的作用,称为向量化(vectorization)
以 D={x1,x2,x3...,xm}D=\{\boldsymbol x_1, \boldsymbol x_2,\boldsymbol x_3...,\boldsymbol x_m\}D={x1,x2,x3...,xm} 视为包含m个示例的数据集。
每个示例 xi={xi1,xi2,...,xid}\boldsymbol x_i = \{x_{i1},x_{i2},...,x_{id}\}xi={xi1,xi2,...,xid} 是d维样本空间的一个向量
-
标记 (label)
示例的结果,如“好瓜”或“坏瓜”
-
分类( classification )与回归( regression )
分类: 预测的是离散值,如“好瓜”或“坏瓜”,肿瘤的”良性“或”阳性“,则为分类问题。
若只有两个类别,称为二分类,否则为多分类问题。二分类问题通常使 y={0,1}或{−1,+1}y = \{0,1\}或\{-1,+1\}y={0,1}或{−1,+1}
回归: 预测的是连续值,如房价,营业额等。
-
聚类 (clustering)
将训练集中的数据分为若干组,每组称为一个簇(cluster), 如西瓜中的 “本地瓜”、“外地瓜”。 簇是我们事先不知道的,是学习过程中形成的,反映了数据的内在逻辑规律。
-
监督学习( supervised learning) 与无监督学习( unsupervised learning )
若 数据集中拥有标记信息,即给出训练集正确的结果,即为监督学习,意为从正确的答案中学习出规律,以此拥有对未知结果的数据集进行预测的能力。(分类和回归)
反之,从无标记信息的数据集中学习,即为无监督学习。(聚类)
-
泛化 (generalization)
学得模型适用于新样本的能力,称为泛化能力。即学得的模型不仅适用与给定的训练集,而且在整个样本空间(训练集只是整个样本空间的一个子集,可以理解为抽样)中都能保持一个预测误差较低的状态。
1.3 假设空间与版本空间
“我们可以把学习过程看作一个在所有假设(hypothesis)组成的空间中进行搜索的过程,搜索目标是找到与训练集"匹配"的假设” p5
在西瓜例子中 ,西瓜有特征 色泽、根蒂与敲声。那么假设形式可以为: (色泽=?)∩(根蒂=?)∩(敲声=?) , 以通配符*表示任意取值。 考虑极端情况,世界上根本没有好瓜坏瓜这个概念,则以 空集∅ 表示。所有假设加上空集构成了该训练集的假设空间,换句话说,所有特征的特征值的组合 加上 空集,即为假设空间
”在学习过程中,可以不断删除假设空间中与正例不一致的假设 以及 与反例一致的假设,最终会获得与训练集一致(即对素有训练样本都能正确判断)的假设,就是我们学得的结果。“ P5
此结果即为 “版本空间” ,实际上是假设空间的子集。值得注意的是,版本空间中的假设并不一定就是正确的假设,只是必然匹配所有训练集中的示例。
如 假设h1:“{ 色泽=青绿,根蒂=蜷缩,敲声=浊响}->好瓜” 不应该进入版本空间,虽然这一条假设与表1.1中的第一条相匹配,但并不与第二条正例匹配。而第二条正例告诉我们,”色泽=乌黑,根蒂=蜷缩,敲声=浊响“ 也是好瓜。 如果假设h1成立,那么这条假设将只匹配训练集中的第一条,而不对所有示例都匹配。这样的假设没有”泛化“能力,这样机器只是机械地记住了所有正例的特征,对于训练集中出现了的正例特征组合以外的瓜,将无法做出判断。反之,假设h2:“{色泽=”*“,根蒂=”蜷缩“,敲声=“浊响”}->好瓜 " 能够进入版本空间,因为这条假设对训练集中四条示例都能够正确匹配(也就是能够做出正确的判断)。
1.4 归纳偏好
版本空间中可能存在多个与训练集匹配的假设,那么当模型面临新样本的时候,对于不同的假设,将产生不同的输出。例如,p6 图1.2的版本空间中,对于输入 {色泽=*,根蒂=蜷缩,敲声=清脆},将得到不同的输出。因此,模型必须要具有一个“归纳偏好”,即算法在学习过程中对某种类型假设的偏好,如更相信“根蒂”,那么将偏好于 假设{色泽=*,根蒂=蜷缩,敲声=*}
那么有没有一种理论能够告诉我们对于一个模型,什么偏好才是最好的,能得到最好的期望性能?
答案是没有。详见 NFL“没有免费的午餐定理” (No Free Lunch Theorem)。由概率论数学证明可推得,总误差与算法无关。
但是NFL定理是有前提条件的,fff是均匀分布的,也就是说“所有问题出现的机会相同、或所有问题同等重要”,而在现实中,在不同的具体问题中,fff并不太可能是均匀分布的,比如现实中 {根蒂=蜷缩,敲声=浊响} 的好瓜很常见,但{根蒂=硬挺;敲声=清脆}的好瓜几乎不存在,所以在西瓜的具体问题中,不同算法(不同假设)的期望性能显然有高低。
因此在实际问题中,算法的归纳偏好是否更贴合问题本身,大多数时候直接决定了算法能否取得更好的性能。
P9
“我们需要注意到,NFL定理有一个主要的前提:所有“问题”出现的机会相同,或所有问题同等重要。但实际情况并不是这样。很多时候,我们只关注自己正在试图解决的问题(例如某个具体应用任务),希望为它找到一个解决方案,至于这个解决方案在别的问题、甚至在相似的问题上是否为好方案,我们并不关心。所以,NFL定理最重要的寓意,是让我们清楚地认识到,脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有学习算法都一样好。要谈论算法的相对优劣,必须要针对具体的学习问题;在某些问题上表现好的学习算法,在另一些问题上却可能不尽如人意。”