文章目录
一、机器学习是什么
- 我们在生活中常常利用经验做出判断,比如拍拍西瓜判断它熟了没有,比如看看天气判断会不会下雨。我们在生活中积累了很多经验,并且可以利用经验对新情况做出有效的判断和决策
- 机器学习是这样的一门学科:通过计算的手段,利用经验来改善系统自身的性能
- 更形式化一点说:假设用P来估计计算机程序在某任务类T上的性能,若一个程序通过利用经验E在T中的任务上获得了性能改善,则我们就说关于T和P,该程序对E进行了学习
二、基本术语
1. 数据相关
属性attribute/特征feature
:反映事件或对象在某方面的表现或特征的事项。如西瓜的颜色、根蒂、敲声等属性值attribute value
:属性的取值属性空间 attribute space
:属性张成的空间。比如西瓜的属性有颜色、根蒂、敲声三个,以它们作为坐标轴可以建立一个描述西瓜的三维空间,每个西瓜都能在其中对应一个坐标特征向量feature vector
:事件或对象在属性空间中的坐标,可以看作向量形式样本sample/示例instance
:对事件或对象的一条记录,描述了其属性数据集data set
:一组样本的集合- 一般使用 D = { x 1 , x 2 , . . . , x m } D = \{x_1,x_2,...,x_m\} D={ x1,x2,...,xm}表示含有m个样本的数据集
- 每个样本由 d d d个属性描述,则每个样本 x i x_i xi都是 d d d维样本空间 X X X中的一个向量。一般用 x i j x_{ij} xij表示 x i x_i xi在第 j j j个属性上的属性值
维数
:样本属性的个数 d d d
2. 训练相关
学习learning/训练training
:从数据中学得模型的过程。这个过程通过执行某个学习算法来完成训练数据training data/训练集 training set
:训练过程中使用的数据训练样本training sample
:训练数据中的一个样本真相/真实ground-truth
:数据具有的某种潜在规律本身假设hypothesis
:学得模型对应了关于数据的某种潜在规律,但它又和真相不同,只是对真相的一种逼近标记label
:训练样本的”结果“信息。比如拥有某些属性值的瓜是”好瓜“还是”坏瓜“样例example
:拥有了标记信息的样本/示例。一般用 ( x i , y i ) (x_i,y_i) (xi,yi)表示第 i i i个样例,其中 y i ∈ Y y_i ∈ Y yi∈Y是示例 x i x_i xi的标记标记空间label space
:所有标记的集合
3. 任务相关
分类classification
:如果预测的是离散值,此类学习任务称作分类。比如判断瓜是“好瓜”还是“坏瓜”二分类binary classification
:只涉及两个类别的分类任务正类positive class
:二分类中的一个类负类/反类negative class
:二分类中的另一个类
多分类multi-class classification
:涉及多个类别的分类任务回归regression
:如果预测的是连续值,此类学习任务称作回归。比如预测瓜的成熟度是0.95、0.37…聚类clustering
:将训练集中的数据分成若干组,每组称为一个簇
。这些自动形成的簇可能对应一些潜在的概念。如"浅色瓜" “深色瓜”,甚至 “本地瓜” “外地瓜”。在聚类学习中,“浅色瓜” "深色瓜"这样的潜在概念我们事先是不知道的,而且学习过程中使用的训练样本通常不拥有标记信息监督学习supervised learning
:训练数据具有标记信息,代表的有分类和回归无监督学习unsupervised learning
:训练数据不具有标记信息,代表的有类聚
4. 测试相关
测试testing
:学得模型后,使用其对新情况进行预测的过程测试样本testing sample
:用于测试的样本。例如:学得模型 f f f后,对测试样本 x x x,可得其预测标记 y = f ( x ) y=f(x) y=f(x)泛化generalization
:学得模型适用于新样本的能力。注意:机器学习的目标是使学得的模型很好地适用于 “新样本” ,而不是仅仅在训练样本上工作得好
三、假设空间
归纳induction
和演绎deduction
是科学推理的两大手段。前者是从特殊到一般的 “泛化” 过程,即从具体事实中归纳出一般性的规律;后者是从一般到特殊的 “特化” 过程,即从基础原理推演出具体情况。归纳学习inductive learning
:“从样例中学习”是一种归纳过程,也称为归纳学习
1. 机器学习的过程
- 首先我们假设样本空间中的全体样本服从一个未知的分布(distribution) D D D,训练集中的每个样本都是独立地从这个分布上采样获得的,即 “独立同分布”(independent and identically distributed,简称i.i.d)。通常训练样本越多,我们得到的关于 D D D的信息越多,就越可能训练出泛化能力强的模型
- 可以把学习看做一个在所有假设组成的
假设空间(hypothesis space)
中进行搜索的过程,搜索目标是找到与训练集匹配(fit)
的假设,即能够将训练集中的所有样例打上正确的标签 ,如下图所示
- 一旦确定了假设的表示,也就确定了假设空间的大小和规模,详见以下示例
2. 示例
-
现有西瓜一共有三种属性,训练数据集如下。学习的目标是 “好瓜”
-
假设每种属性有3个可能取值,可能某属性不重要(取什么属性值都不影响标签),可以用通配符
*
表示。也可能有极端情况:“好瓜”这个概念不成立,这时用 ∅ \varnothing ∅表示此假设。 -
现在来确定假设的表示,可以为以下形式
- 使用一个合取式: ( 色 泽 = ? ) ∧ ( 根 蒂 = ? ) ∧ ( 敲 声 = ? ) (色泽= ?) \land (根蒂=?) \land (敲声=?) (色泽=?)∧(根蒂=?)∧(敲声=?)
- 两个合取式的析取式: ( ( 色 泽 = ? ) ∧ ( 根 蒂 = ? ) ∧ ( 敲 声 = ? ) ) ∨ ( ( 色 泽 = ? ) ∧ ( 根 蒂 = ? ) ∧ ( 敲 声 = ? ) ) ((色泽= ?) \land (根蒂=?) \land (敲声=?))\lor((色泽=?) \land (根蒂=?) \land (敲声=?)) ((色泽=?)∧(根蒂=?)∧(敲声=?))∨((色泽=?)∧(根蒂=?)∧(敲声=?))
- 多个合取式的析取式…
-
若我们使用 ( 色 泽 = ? ) ∧ ( 根 蒂 = ? ) ∧ ( 敲 声 = ? ) (色泽= ?) \land (根蒂=?) \land (敲声=?) (色泽=?)∧(根蒂=?)∧(敲声=?)来表示假设,则假设空间的大小可以确定为
4x4x4+1=65
(每个属性有三个取值,加上通配符*
一共四个,最后在加上 ∅ \varnothing ∅的情况)
-
可以有许多策略对这个空间进行搜索,搜索过程中不断剔除和正例不一致的和(或)与反例一致的假设。最终得到和训练集一致的所有假设。现实问题中假设空间往往很大,可能有多个假设都是与训练集一致的,这些假设组成的集合称为
版本空间version space
。此西瓜问题的版本空间如下
-
在搜索过程中,可以有多种删除不符合训练集假设的策略,如下
- 删除不能包含所有正例以及包含任意反例的假设
- 删除不能包含所有正例的假设
- 删除包含任意反例的假设
这个策略的选取会影响到学习算法的归纳偏好
四、归纳偏好
1. 机器学习算法必有其归纳偏好
- 通过学习得到的模型是假设空间的中的一个假设,而往往会有多个假设符合训练集(组成版本空间 ),到底该选哪一个作为结果呢
- 仅从训练集的角度看,版本空间中的所有假设都是 “一样好” 的,但对于一个具体的学习算法,它一定会偏向于版本空间中的某一个假设。这种机器学习算法在学习过程中对某种类型的假设的偏好,称为
归纳偏好
- 任何一个机器学习算法必有其归纳偏好,否则它将被版本空间中在训练集上 “等效” 的假设所迷惑,而无法产生确定的学习结果
- 看下面的示例,训练集是二维空间中的6个点,可能存在多条曲线于训练集一致,比如这里的实线和虚线。学习算法必须有某种偏好,才能在两条线中选一条作为结果。比如算法认为相似的样本应该有相似的输出,它会偏向于选择光滑的曲线A
- 归纳偏好可以看作学习算法自身在庞大的假设空间中对假设进行选择的启发式或 “价值观”,事实上,归纳偏好对应了学习算法本身所作出的关于 “什么样的模型更好” 的假设。在具体问题中,这个假设是否成立,即算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法能否取得好的性能
2. 奥卡姆剃刀
- 奥卡姆剃刀是一种常用的原则:若有多个假设和观察一致,选最简单的那个
- 基于奥卡姆剃刀原则,上面那个图里,我们偏向于选择光滑的曲线A
- 使用奥卡姆剃刀原则没有看上去那么简单,很多情况下(比如上面提到的西瓜问题),判断版本空间中哪个假设是 “简单的” 并不简单,往往需要借助其他机制才能解决
3. 没有免费的午餐定理(NFL)
-
没有免费的午餐定理NFL
:在所有的问题出现机会相同(所有问题同等重要)的前提下,对于一个学习算法 L a \mathfrak{L}_a La,若它在某些问题上比算法 L b \mathfrak{L}_b Lb好,则必然存在另一些问题,在那里 L b \mathfrak{L}_b Lb比 L a \mathfrak{L}_a La好,如下图所示
-
下面给出一个证明:
- 首先假设样本空间 X \mathcal{X} X和假设空间 H H H都是离散的,令 P ( h ∣ X , L a ) P(h\vert X,\mathfrak{L}_a) P(h∣X,La)表示基于训练数据 X X X产生假设 h h h 的概率。 f f f 表示真实目标函数,则训练集误差( L a \mathfrak{L}_a La在训练集以外所有样本上的误差)可以表示为:
E o t e ( L a ∣ X , f ) = ∑ h ∑ x ∈ X − X P ( x ) I ( h ( x ) ≠ f ( x ) ) P ( h ∣ X , L a ) E_{ote}(\mathfrak{L}_a\vert X,f) = \sum_h\sum_{x\in\mathcal{X}-X}P(x)\mathbb{I}(h(x)\neq f(x))P(h\vert X,\mathfrak{L}_a) Eote(La∣X,f)=h∑x∈X−X∑P(x)I(h(x)=f(x))P(h∣X,La)
其中 I ( . ) \mathbb{I}(.) I(.)是指示函数,括号中为真取1,为假取0 - 考虑二分类问题,且真实目标函数 f f f可以是任何样本空间 X \mathcal{X} X到 { 0 , 1 } \{0,1\} { 0,1}的映射,则函数空间为 { 0 , 1 } ∣ X ∣ \{0,1\}^{|\mathcal{X}|} { 0,1}∣X∣,一共有 2 ∣ X ∣ 2^{|\mathcal{X}|} 2∣X∣个可能的 f f f
- 对所有可能的 f f f按均匀分布对误差求和,有
说明一点:由于 f f f是均匀分布的,对于任一个 x x x,它为0或1的可能性是一半一半,而 h ( x ) h(x) h(x)要么为0要么为1, h ( x ) ≠ f ( x ) h(x) \neq f(x) h(x)=f(x)的概率也就是50%,又一共有 2 ∣ X ∣ 2^{|\mathcal{X}|} 2∣X∣个可能的 f f f,故
∑ f I ( h ( x ) ≠ f ( x ) ) = 1 2 2 ∣ X ∣ \sum\limits_{f} \mathbb{I}(h(x)\neq f(x)) = \frac{1}{2}2^{|\mathcal{X}|} f∑I(h(x)=f(x))=212∣X∣
- 首先假设样本空间 X \mathcal{X} X和假设空间 H H H都是离散的,令 P ( h ∣ X , L a ) P(h\vert X,\mathfrak{L}_a) P(h∣X,La)表示基于训练数据 X X X产生假设 h h h 的概率。 f f f 表示真实目标函数,则训练集误差( L a \mathfrak{L}_a La在训练集以外所有样本上的误差)可以表示为:
-
我们发现总误差特定的算法无关,也就是说,在所有"问题"出现概率相同且同等重要的前提下,不管什么算法,它们的期望性能相同!
-
NFL的意义在于:脱离具体问题,空泛地谈论 “什么学习算法最好” 是没有意义的,因为若考虑到所有潜在的问题,所有学习算法都一样好。要谈论算法的优劣,必须针对具体的学习问题,现实问题往往有着潜在的偏好(比如敲声浊响的好瓜比敲声清脆的好瓜多得多),学习算法自身的归纳偏好与问题是否匹配,往往对性能起到决定性影响