周志华《机器学习》(西瓜书) —— 学习笔记:第1章 绪论

混江龙づ霸主 提交于 2020-01-20 16:41:32


1.1 引言

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

  机器学习是研究关于算法的学问。


1.2 基本术语

数据集(data set):数据、记录的集合
示例(instance)/ 样本(sample):关于一个事件或对象的描述(每条数据、记录)
属性(attribute)/ 特征(feature):反映事件在某方面的表现或性质的事项
属性值(attribute value):属性的取值
属性空间(attribute space)/ 样本空间(sample space)/ 输入空间:属性张成的空间
特征向量(feature vector):每个示例都可以在属性空间中找到自己所对应的坐标向量,所以我们也把一个示例称为一个特征向量
  一般地,令 D={x1,x2,,xm}D=\left\{\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \ldots, \boldsymbol{x}_{m}\right\} 表示包含 mm 个示例的数据集,每个示例由 dd 个属性描述,则每个示例 xi=(xi1;xi2;;xid)\boldsymbol{x}_{i}=\left(x_{i1}; x_{i2}; \ldots; x_{id}\right)dd 维样本空间 X\mathcal{X} 中的一个向量,xiX\boldsymbol{x}_{i} \in \mathcal{X},其中 xij\boldsymbol{x}_{ij}xi\boldsymbol{x}_{i} 在第 jj 个属性上的取值,dd 称为样本 xi\boldsymbol{x}_{i} 的“维数”(dimensionality)。
学习(learning)/ 训练(training):从数据中学得模型的过程
训练数据(training data):训练过程中使用的数据
训练样本(training sample):训练数据中的每个样本
训练集(training set):训练样本组成的集合
假设(hypothesis):学得的模型称之为假设
真相 / 真实(ground-truth):关于数据的某种潜在的规律
学习器(learner):有时作为模型的别称
标记(label):关于示例结果的信息
样例(example):拥有标记信息的示例
  一般地,用 (xi,yi)\left(\boldsymbol{x}_{i}, y_{i}\right) 表示第 ii 个样例,其中 yiY{y}_{i} \in \mathcal{Y} 是示例 xi\boldsymbol{x}_{i} 的标记,Y\mathcal{Y} 是所有标记的集合,亦称“标记空间”或“输出空间”。
标记空间(label space)/ 输出空间:所有标记的集合
分类(classification):预测离散值的学习任务。其中,二分类(binary classification) 任务通常包含两个类别——正类(positive class)反类(negative class)/ 负类多分类(multi-class classification) 任务一般包含三个或以上的类别
回归(regression):预测连续值的学习任务
  一般地,预测任务是希望通过对训练集 {(x1,y1),(x2,y2),,(xm,ym)}\left\{\left(\boldsymbol{x}_{1}, y_{1}\right),\left(\boldsymbol{x}_{2}, y_{2}\right), \ldots,\left(\boldsymbol{x}_{m}, y_{m}\right)\right\} 进行学习,建立一个从输入空间 X\mathcal{X} 到输出空间 Y\mathcal{Y} 的映射 f:XYf: \mathcal{X} \mapsto \mathcal{Y} 。对二分类任务,通常令 Y={1,+1}\mathcal{Y}=\{-1,+1\}{0,1}\{0,1\} ;对多分类任务,Y>2|\mathcal{Y}|>2 ;对回归任务,Y=R\mathcal{Y}=\mathbb{R}R\mathbb{R} 为实数集。
测试(testing):使用学得模型进行预测的过程
测试样本(testing sample):用作预测的样本
聚类(clustering):将训练集中的数据分成若干潜在未知的组
簇(cluster):聚类得到的数据分组
监督学习(supervised learning):训练数据有标记信息,如分类、回归
无监督学习(unsupervised learning):训练数据没有标记信息,如聚类
泛化(generalization) 能力:学得模型适用于新样本的能力
独立同分布(independent and identically distribute):通常假设样本空间中全体样本服从一个未知的“分布(distribute)”,每个样本都是独立地从这个分布上获得的,即假设这些样本是独立同分布


1.3 假设空间

归纳(induction)泛化(generalization) 过程,从特殊到一般
演绎(deduction)特化(specialization) 过程,从一般到特殊
从样例中学习是一个归纳的过程,称作归纳学习(inductive learning)

假设空间(hypothesis space):由所有假设组成的空间
版本空间(version space):与训练集一致的假设集合

如何获得版本空间?将假设空间中与训练集正例不一致的假设和与训练集反例一致的假设删除,就会获得与训练集一致的假设,即版本空间。

比如书中的例子:假设 “好瓜” 可由 “色泽” 、 “根蒂” 、 “敲声” 三个因素完全确定, “色泽” 取值 “青绿” 、 “乌黑” 、 “浅白” , “根蒂” 取值 “蜷缩” 、 “硬挺” 、 “稍蜷” , “敲声” 取值 “浊响” 、 “清脆” 、 “沉闷” ,求表 1.1 训练集对应的版本空间。
西瓜数据集
解答:
处理数据1时,保留色泽包含青绿根蒂包含蜷缩敲声包含浊响的数据,即颜色为*或青绿根蒂为*或蜷缩敲声为*或浊响的数据,其他数据均删除,剩余结果为:

色泽 根蒂 敲声
* * *
* * 浊响
* 蜷缩 *
青绿 * *
* 蜷缩 浊响
青绿 * 浊响
青绿 蜷缩 *
青绿 蜷缩 浊响

处理数据2时,按照同样的方法保留数据,删除其余数据,剩余结果为:

色泽 根蒂 敲声
* * *
* * 浊响
* 蜷缩 *
* 蜷缩 浊响

处理数据3时,删除颜色包含青绿根蒂包含硬挺敲声包含清脆的数据,即颜色为*或青绿根蒂为*或硬挺敲声为*或清脆的数据,剩余结果为:

色泽 根蒂 敲声
* * 浊响
* 蜷缩 *
* 蜷缩 浊响

处理数据4时,按照同样的方法删除,剩余结果不变,为:

色泽 根蒂 敲声
* * 浊响
* 蜷缩 *
* 蜷缩 浊响

上面表格中的数据即是最终结果


1.4 归纳偏好

归纳偏好(inductive bias):机器学习算法在学习过程中对某种类型假设的偏好。任何一个有效的机器学习算法必有其归纳偏好
奥卡姆剃刀(Occam’s razor):若有多个假设与观察一致,则选择最简单的那个

没有免费的午餐定理(No Free Launch Theorem,简称NFL定理):假设所有“问题”出现的机会相同,或者所有问题同等重要,并且我们希望学习的真实目标函数 ff 是均匀分布的,那么无论学习算法 La\mathfrak{L}_{a} 多聪明、学习算法 Lb\mathfrak{L}_{b} 多笨拙,它们的误差期望值是相同的。(就算 Lb\mathfrak{L}_{b} 算法是“随机胡猜”的!)

证明:

  假设样本空间 X\mathcal{X} 和假设空间 H\mathcal{H} 都是离散的。令 P(hX,La)P\left(h | X, \mathfrak{L}_{a}\right) 代表算法 La\mathfrak{L}_{a} 基于训练数据 XX 产生假设 hh 的概率,再令 ff 代表我们希望学习的真实目标函数, La\mathfrak{L}_{a} 的“训练集外误差概率期望”,即 La\mathfrak{L}_{a} 在训练集之外的所有样本上的误差概率的期望为

Eote(LaX,f)=hxXXP(x)I(h(x)f(x))P(hX,La)(1.1) E_{o t e}\left(\mathfrak{L}_{a} | X, f\right)=\sum_{h} \sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) P\left(h | X, \mathfrak{L}_{a}\right)\tag{1.1}

其中, I()\mathbb{I}(\cdot) 是指示函数,若 \cdot 为真则取值1,否则取值0。

  考虑二分类问题,真实目标函数可以是任何函数 X{0,1}\mathcal{X} \mapsto\{0,1\} ,函数空间 {0,1}X\{0,1\}^{|\mathcal{X}|} ,所有可能的 ff 按均匀分布,对误差概率期望求和,有

fEote(LaX,f)=fhxXXP(x)I(h(x)f(x))P(hX,La)=xXXP(x)hP(hX,La)fI(h(x)f(x))=xXXP(x)hP(hX,La)122X=122XxXXP(x)hP(hX,La)=122XxXXP(x)1(1.2) \begin{aligned} \sum_{f} E_{o t e}\left(\mathfrak{L}_{a} | X, f\right) &=\sum_{f} \sum_{h} \sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) P\left(h | X, \mathfrak{L}_{a}\right) \\ &=\sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \sum_{h} P\left(h | X, \mathfrak{L}_{a}\right) \sum_{f} \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) \\ &=\sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \sum_{h} P\left(h | X, \mathfrak{L}_{a}\right) \frac12 2^{|\mathcal{X}|} \\ &=\frac12 2^{|\mathcal{X}|} \sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \sum_{h} P\left(h | X, \mathfrak{L}_{a}\right) \\ &=\frac12 2^{|\mathcal{X}|} \sum_{\boldsymbol{x} \in \mathcal{X}-X} P(\boldsymbol{x}) \cdot 1 \end{aligned}\tag{1.2}
  式(2.1)显示,总误差概率期望与学习算法无关,对于任意两个学习算法 La\mathfrak{L}_{a}Lb\mathfrak{L}_{b} ,我们都有

fEote(LaX,f)=fEote(LbX,f)(1.3)\sum_{f} E_{o t e}\left(\mathfrak{L}_{a} | X, f\right) =\sum_{f} E_{o t e}\left(\mathfrak{L}_{b} | X, f\right)\tag{1.3}

也就是说,算法 La\mathfrak{L}_{a} 和算法 Lb\mathfrak{L}_{b} 的误差期望值相同。

  但是要注意,NFL定理的前提,所有“问题”出现的机会相同、或所有问题同等重要(实际情形并不是这样,很多时候,我们只关注正在试图解决的问题),并且真实目标函数 ff 是均匀分布的(实际情形也往往并非如此)。

  NFL定理的重要意义在于,让我们清楚认识到,脱离具体问题,空谈“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有的学习算法都一样好。当我们讨论算法的相对优劣时,必须要针对具体的学习问题:在某些问题上表现好的学习算法,在另一些问题上却可能不尽如人意,学习算法自身的归纳偏好与问题是否相配,往往会起到决定性的作用。


关于式(1.2)的两点说明:

说明1:

fI(h(x)f(x))=122X \sum_{f} \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) = \frac1 2 2^{|\mathcal{X}|}
  在样本空间 X\mathcal{X} 上,函数 X{0,1}\mathcal{X} \mapsto\{0,1\} 表示将 X\mathcal{X} 上的每个元素都映射成 00 或者 11 ,根据排列组合,这种不同的映射方法共有 2X2^{|\mathcal{X}|} 种,因此,在不排除 h(x)h(\boldsymbol{x}) 的情况下

fI(f(x))=fI(true)=f1=2X \sum_{f} \mathbb{I}(\varnothing \neq f(\boldsymbol{x})) = \sum_{f} \mathbb{I}(true) = \sum_{f} 1 = 2^{|\mathcal{X}|}

再考虑 fI(h(x)f(x))\sum_{f} \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) ,这里的 x\boldsymbol{x} 是某个未知定值,并且 I(h(x)f(x))\mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) 里面做的是函数值的比较,对于所有的 ff ,一定是一半把 x\boldsymbol{x} 映射成 00 ,一半把 x\boldsymbol{x} 映射成 11 ,而 h(x)h(\boldsymbol{x}) 在这里就是定值 0011 ,因此,对于所有的 ffh(x)f(x)h(\boldsymbol{x}) \neq f(\boldsymbol{x}) 的条件,会把一半的 I(h(x)f(x))\mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) 变成 00 ,即

fI(h(x)f(x))=122X \sum_{f} \mathbb{I}(h(\boldsymbol{x}) \neq f(\boldsymbol{x})) = \frac1 2 2^{|\mathcal{X}|}
说明2:

hP(hX,La)=1 \sum_{h} P\left(h | X, \mathfrak{L}_{a}\right) = 1
  算法基于训练数据产生每个假设的概率,再对所有的假设产生的概率求和,最终结果就是 11


1.5 发展历程

  • 二十世纪五十年代初,已有机器学习的相关研究
  • 二十世纪五十年中后期,基于神经网络的“连接主义”(connectionism)学习开始出现
  • 二十世纪六七十年代,基于逻辑表示的“符号主义”(symbolism)学习技术蓬勃发展;以决策论为基础的学习技术以及强化学习技术也得到发展;统计学习理论的一些奠基性结果也是在这个时期取得的
  • 二十世纪八十年代,是机器学习成为一个独立的学科领域、各种机器学习技术百花初绽的时期,被研究最多、应用最广的是“从样例中学习”(也就是广义的归纳学习),当时的一大主流是符号主义学习
  • 二十世纪九十年代中期之前,“从样例中学习”的另一主流技术是基于神经网络的连接主义学习
  • 二十世纪九十年代中期,“统计学习”闪亮登场并迅速占据主流舞台
  • 二十一世纪初,连接主义学习又卷土重来,掀起了以“深度学习”为名的热潮(狭义地说就是“很多层”的神经网络)。数据变大和计算能力变强是“深度学习”得以快速发展的基本原因


1.6 应用现状

  • 机器学习在计算机科学的诸多分支学科领域中发挥着重要作用:计算机视觉、自然语言处理
  • 机器学习还为许多交叉学科提供了重要的技术支撑:生物信息学
  • 机器学习已经与普通人的生活密切相关:天气预报、能源勘测、环境监测、特殊营销策略,经典例子:谷歌搜索、无人驾驶汽车、奥巴马竞选

人工智能、机器学习、深度学习之间的关系

人工智能、机器学习、深度学习之间的关系

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!