《机器学习》第二章 概念学习和一般到特殊序
2.1.简介
布尔函数一般形式:F(b1, b2, ..., bn),其中 bi的定义域为{0,1},F的值域为{0, 1}。 在一般的定
义域上的,取值在 {0, 1} 中的函数也叫做布尔值函数概念学习定义中的布尔函数指定就这个,主要是
规定学习的问题目标是布尔的,反应在上面的样本中,就是Yes或者No。目标函数的形式如下:
f: X->{0,1}
概念学习:是指从有关某个布尔函数的输入输出训练样例中推断出该布尔函数。【很明显概念学习属于
监督学习的分类问题】
另外一种定义:给定一样例集合以及每个样例是否属于某一概念的标注,怎样自动推断出该概念的一般
定义。这一问题被称为概念学习。
2.2.概念学习任务
目标概念:Aldo(人名)会去海边游泳的日子,注意,这里这样描述不太好,很容易理解成我们要得到
的表示目标感念的函数输出的是一串日期,不符合前面所说的概念学习的目标是推断一个布尔函数,实
际上,这里是给出一个日子,基于这一天的各种属性,推断Aldo是否会在这天去游泳。
表1 目标概念EnjoySport的正例和反例
Example Sky AirTemp Humidity Wind Water Forecast EnjoySport
1 Sunny Warm Normal Strong Warm Same Yes
2 Sunny Warm High Strong Warm Same Yes
3 Rainy Cold High Strong Warm Change No
4 Sunny Warm High Strong Cool Change Yes
接下来要确定假设(目标函数)的形式,可以先考虑一个较为简单的形式,即实例的各个属性的合取式
。可令每个假设为6个约束的向量,这些约束指定了Sky、AirTemp、Humidity、Wind、Water、Forcast的
值。每个属性可取值为:
1)由“?”表示任意本属性可接受的值。
2)明确指定的属性值(如warm)。
3)由“Φ”表示不接受任何值。
如果某些实例x满足假设h的所有约束,那么h将x分类为正例(h(x)=1)。比如,为判定Aldo只在寒冷的和
潮湿的日子里进行随上运动(并与其他属性无关),这样的假设可以表示为下面的表达式:
<?, Cold, High, ?, ?, ?>
也就是要表达:
if AirTemp = Cold ∧ Humidity = High then EnjoySport = Yes
那么最一般的假设是每一天都是正例,可表示为:
<?, ?, ?, ?, ?, ?>
而最特殊的假设即每一天都是反例,表示为:
<Φ, Φ, Φ, Φ, Φ, Φ>
【注意:1. <Φ, Φ, Φ, Φ, Φ, Φ>和<Φ, ?, ?, ?, ?, ?>、<Φ, Φ, ?, ?, ?, ?>等等其实是一
样的假设,也就是只要假设中有一个属性为“Φ”,那么这个假设就表示每天都是反例。
2. 你很可能会怀疑,这里假设的形式为什么一定是属性的合取,若属性Humidity有3种取值:High、
Normal和Low,那么就无法表达Aldo会在湿度Normal或High的时候去海边游泳,因为这是一个析取式:
if Humidity = Normal ∨ Humidity = High then EnjoySport = Yes
后面会讲,断言假设的形式为属性的合取是一种归纳偏置,它使得我们的学习器是有偏的,如果学习
器是无偏的,那么它根本上无法对未见实例进行分类,这一点很重要,后面会慢慢解释。】
2.2.1.术语定义
现在做一些术语定义,方便后面的表述:
(1)待学习的概念或函数称为目标概念,记作c。
(2)概念定义在一个实例集合上,这个集合表示为X。学习目标概念时,必须提供一套训练样例(训练集
,记为D),训练集中的人每个样例为X中的一个实例x和它的目标概念值c(x)(如上面的表1中的example
)。c(x)=1,x称为正例(positive);c(x)=0,x称为反例(negative)。可以用序偶<x, c(x)>来描述训练
样例。
【序偶:两个具有固定次序的客体组成一个序偶,它常常表达两个客体之间的关系。由某个集合中元素x
与y,以确定的顺序所组成的一对:第一个是x,第二个是y,称为序偶,记为(x,y)。】
(3)给定目标概念c的训练样例集,学习器面临的问题就是假设或估计c。使用符号H来表示所有可能假设
的集合,也称为假设空间,对于我们的问题来说假设空间就是所有各个属性的合取式。H中的每个假设h
表示X上定义的布尔函数,即h:X->{0,1}。机器学习的目标就是寻找一个假设h,使对于X中的所有x,h
(x)=c(x)。
2.2.2.归纳学习假设
器学习的任务是在实例集合X上寻找一个与目标概念c相同的假设h,然而我们对于c仅有的信息只是它在
训练结合上的值。因此,归纳学习算法最多只能保证输出的假设能与训练样例相拟合。如果没有更多的
信息,我们只能假定,对于未见实例最好的假设就是与训练样例数据最佳拟合的假设。这是一个归纳学
习的基本假定。下面给出一个准确的定义:
归纳学习假设: 任一假设如果在足够大的训练样例集合中很好地逼近目标函数,它也能在未见实例中很
好地逼近目标函数。【即如何搜索假设空间H获得与目标概念c一致的假设h。】
2.3.作为搜索的概念学习
概念学习可以看作是一个搜索的过程,范围是假设的表示所隐含定义的整个空间。搜索的目标是为了
寻找能最好地拟合训练样例的假设。必须注意到,当假设的表示形式选定后,那么也就隐含地为学习算
法确定了所有假设空间。这些假设是学习程序所能表示的,也是它能够学习的。
假设的一般到特殊序
许多概念学习算法(如这里要讲的候选消除算法),搜索假设空间的方法依赖于一种针对任意概念学习
都很有效的结构:假设的一般到特殊序关系。
考虑下面两个假设:
h1=<Sunny, ?, ?, Strong, ?, ?>
h2=<Sunny,?, ?, ?, ?, ?>
很明显,被h1划分为正例的实例都会被h2划分为正例,因此,可以说h2比h1更一般,h1比h2更特殊。现
在要定义“比……更一般”这种关系
定义:令hj和hk为在X上定义的布尔函数。称hj more_general_than_or_equal_to hk (记作hj≥ghk)
,当且仅当
(▽x∈X)[(hk(x)=1)→(hj(x)=1)]
如果hj≥ghk ∧ (hk ≠g hj),那么就说 hj 严格的 more_general_than hk(写作hj>ghk),可以得出
≥g的一些简单性质:
(1) 自反性,hj≥ghj
(2) 反对称,若hj≥ghk,那么hk 非≥g hj
(3) 传递性,若hi≥ghj且hj≥ghk,那么hi≥ghk
很明显,≥g是假设空间H上的一个偏序关系。
≥g很重要,因为它在假设空间H上对任意概念学习问题提供了一种有效的结构,可以更加有效地搜索假
设空间。
2.4.FIND-S:寻找极大特殊假设
如何使用more_general_than偏序来搜索与训练样例相一致的假设呢?一种办法是从H中最特殊假设开
始,然后在该假设覆盖正例失败时将其一般化(当一假设能正确地划分一个正例时,称该假设“覆盖”
该正例)。
FIND-S算法
1)将h初始化H中最特殊假设
2)对每个正例x
*对h的每个属性约束ai
如果x满足ai
那么不做任何处理
否则将h中ai替换为x满足的下一个更一般约束
3)输出假设h
FIND-S实现步骤
第一步:将h初始化为H中最特殊假设:
h←<Φ,Φ,Φ,Φ,Φ,Φ>
h←<sunny,warm,normal,strong,warm,same>
第二步:第2个训练样例(仍然为正例)迫使该算法进一步将h一般化。这次使用“?”代替h中不能被新
样例满足的属性值,这样假设变为:
h←<sunny,warm,?,strong,warm,same>
第3步:是个反例h不变。实际上,FIND-S算法简单的忽略每个反例。
第4步:接着完成FIND-S算法,第四个正例使得h更一般
h←<sunny,warm,?,strong,?,?>
【这一搜索沿着偏序链,从较特殊的假设逐渐转移到较一般的假设】
FIND-S算法的重点特点是:对以属性约束的合取式描述的假设空间,FIND-S保证输出为H中与正例一致的
最特殊的假设。
FIND-S算法算法仍存在一些为解决的问题:
1)学习过程是否收敛到了正确的目标概念?
2)为什么要用最特殊的假设
3)训练样例是否相互一致?
4)如果有多个极大特殊假设怎么办?
2.5.变型空间和候选消除算法
候选消除算法它能解决FIND-S中的若干不足之处。其输出的是与训练样例一致的所有假设的集合。
候选消除算法的目的是引入若干基本的机器学习问题提供一个良好的概念框架。
2.5.1.表示
为了更好的说明变型空间,先给出一个定义:
一个假设h与训练样例集合D一致,当且仅当对D中每一个样例<x,c(x)>都有h(x) = c(x)。
记为:
consistent(h,D)三(▽<x,c(x)>∈D)h(x)=c(x)
候选消除算法能够表示与训练样例一致的所有假设。在假设空间中的这一子集被称为关于假设空间H和训
练样例D的变型空间,因为它包含了目标概念的所有合理的变型。
定义:关于假设空间H和训练样例集D的变型空间,标记为VSH,D,是H中与训练样例D一致的所有假设构成
的子集。
VS H,D三{h∈H|consistent(h,D)}
使用上面介绍到的一般到特殊序的结构,可以用更简洁的形式表示变型空间。变型空间可以表示为它的
极大一般的和极大特殊的成员。
2.5.2.列表后消除法
列表后消除法
1.变型空间VersionSpace←包含H中所有假设的列表
2.对每个训练样例<x,c(x)>
从变型空间中移除所有h(x)≠c(x)的假设h
3 输出VersionSpace中的假设列表
【它具有很多优点,如能保证得到与训练数据一致的所有假设。但是,这一算法要求非常繁琐地列出H
中所有假设,这对于大多数实际的假设空间是不现实的要求】
2.5.3.变型空间的更简洁表示
定义:
一般边界:关于假设空间H和训练数据D的一般边界(general boundary)G,是在H中与D相一致的极大一
般成员的集合。S←{<?,?,?,?,?,?>}一般
特殊边界:关于假设空间H和训练数据D的特殊边界(specific boundary)S,是在H中与D相一致的极大
特殊成员的集合。G←{<Φ,Φ,Φ,Φ,Φ,Φ>}特殊
变型空间表示定理:令X为一任意的实例集合,H为X上定义的布尔假设的结合。令c:X->{0,1}为X上定义
的任意目标概念,并令D为任一训练样例的集合{<x,c(x)>}。对所有的X, H, c, D 以及良好定义的S和G
2.5.4.候选消除学习算法
有了上面的一些预备知识,现在可以来说明候选消除算法。算法的思路如下:获得变型空间VSH,D ,首
先将G边界和S边界分别初始化为H中最一般的假设和最特殊的假设。即:
G0 <- {<?, ?, ?, ?, ?, ?>}
S0 <- {<Φ, Φ, Φ, Φ, Φ, Φ>}
然后处理每个训练样例,使得S被一般化,G被特殊化,从而逐步缩小变型空间,消去变型空间中与样例
不一致的假设。
【正例使得变型空间的S边界逐渐一般化,而反例扮演的角色恰好使得G边界逐渐特殊化。每输入一个训
练样例,S和G边界将继续单调移动并相互靠近,划分出越来越小的变型空间。】
2.6关于变型空间和候选消除的说明
2.6.1.候选消除算法是否会收敛到正确的假设
由候选消除算法得到的变型空间能够收敛到描述目标概念的假设的条件:(1)在训练样例中没有错误。
(2)H中确实包含描述目标概念的正确假设。实际上,如果遇到新的训练样例,可以监测变型空间以判
断其与真正的目标概念之间是否还有分歧,以及为精确确定目标概念还需要多少训练样例。当S和G边界
集合收敛到单个的可确定的假设时,目标概念才真正获得。
2.6.2.怎么使用不完全学习概念
假设只提供了表1中的4个训练样例,没有更多的训练样例,现在要对未见过的实例进行分类。图1表示的
变型空间仍包含多个假设,即目标概念还未完全学习到,但是仍然有可能对新样例进行一定可信度的分
类。为示范这一过程,给出表2列出待分类的新实例:
表2 待分类的新实例
Instance Sky AirTemp Humidity Wind Water Forecast EnjoySport
A Sunny Warm Normal Strong Cool Change ?
B Rainy Cold Normal Light Warm Same ?
C Sunny Warm Normal Light Warm Same ?
D Sunny Cold Normal Strong Warm Same ?
先看A,图1所示的当前的变型空间中的每个假设都将A分类为正例。由于变型空间的所有假设一致同意实
例A为正例,学习器将A划分为正例的可信度,与只有单个的目标概念一样,【当然前提是假设了目标概
念一定在假设空间中,且训练样例没有错误】事实上,只要S中的每个成员将实例划分为正例,就可以断
言变型空间中的每个假设将其划分正例,因为由more_general_than定义,如果新的实例满足S的所有成
员,它一定也满足这些更一般的假设。
同样,B被变型空间中的每个假设划分为反例,可以放心地把B划分为反例,即使概念学习是不完全的。
只要实例不满足G中的所有成员,那么该实例就可以被断言为反例。
碰到实例C就要注意了,变型空间中半数将C划分为正例,半数划分为反例。因此,学习器无法可信的分
类地这一样例,除非提供更多的训练样例。
实例D在变型空间中被两个假设分为正例,被其他划分为正例。这个例子的分类可信度比A和B要小,又比
C要大。投票选取倾向于将其分类为反例,所以可以输出拥有最大票数的分类,还可附带一个可信度比例
以表明投票的倾向程度。(注意,如果假定H中所有假设有相等的先验概率,那么投票的方法能得到新实
例的最可能的分类)
2.7归纳偏置
【机器学习试图去建造一个可以学习的算法,用来预测某个目标的结果。要达到此目的,要给于学习算
法一些训练样本,样本说明输入与输出之间的预期关系。然后假设学习器在预测中逼近正确的结果,其
中包括在训练中未出现的样本。既然未知状况可以是任意的结果,若没有其它额外的假设,这任务就无
法解决。这种关于目标函数的必要假设就称为归纳偏置】
2.7.1一个有偏的假设空间
如前所述,如果训练样例没有错误,初始假设空间包含概念目标时,如果提供足够多的训练样例,候选
消除算法可以收敛到目标概念。前面提到,断言假设的形式为属性的合取,事实上是为了缩小需要搜索
的假设空间的范围。这样做的一个后果是,有可能目标概念不在这样一个初始的假设空间中。
如果想要保证假设空间中包含目标概念,一个明显的方法是扩大假设空间,使每个可能的假设都被包含
在内。再次以EnjoySport为例子,其中将假设空间限制为只包含属性值的合取。由于这一限制,假设空
间不能够表示最简单的析取形式的目标如“Sky = Sunny 或 Sky = Cloudy”。
所以问题在于,我们使学习器偏向于只考虑合取的假设。
2.7.2.无偏的学习器
幂集(power set)把集合X的所有子集的集合称为幂集。
假设AirTemp、Humidity、Wind、Water、Forcast都只有两种可能取值,Sky有三种可能取值,那么实例
空间X包含了3×2×2×2×2×2=96种不同的实例。根据集合的知识,在这一实例集合X的幂集的大小是
2^|X|,其中|X|是X的元素数目。因此在这一实例空间上可以定义2^96,或大约10^28个不同的目标概念
,我们称包含了2^|X|个假设的这样一个假设空间是一个无偏的假设空间。先前我们将假设空间限制为只
包含属性值的合取,那么只能表示1+4×3×3×3×3×3=973个假设。看来我们先前的空间实在是一
个偏置很大的假设空间。
新的假设空间H’,它能表示实例的每一个子集,也就是把H’对应到X的幂集。
<Sunny,?,?,?,?,?>∨<Cloudy,?,?,?,?,?>
假定我们给学习器提供了3个正例( x1, x2, x3)以及反例(x4, x5)。这时,变型空间的S边界包含的假设
正好是三个正例的析取:
S : { (x1 ∨ x2 ∨ x3) }
因为这是能覆盖3个正例的最特殊假设。相似地,G边界将由那些刚好能排除掉的那些假设组成。
G : {否定符号(x4 ∨ x5) }
【问题来了,在这一非常具有表达力的假设表示方法中,S边界总是所有正例的析取式,G边界总是所有
反例的析取的否定式。这样能够由S和G无歧义分类的,只有已见到的训练样例本身。要想获得单个目标
概念,就必须提供提供X中所有的实例作为训练样例。
好吧,为了避免这个问题,我们只使用不完全学习得到的变型空间,像前面使用成员投票的方式对未见
实例进行分类。遗憾的是,你马上会发现投票对于那些未见过的实例不起作用,为什么?未见实例会被
变形空间中刚好半数的假设划分为正例,而被另一半划分为反例,原因如下,若H是X的幂集,而x是某个
未出现的实例,则对于变型空间中一覆盖x的假设h。必然存在另一假设h’,它与h几乎相等,只不过对x
的分类不同。而且,如果h在变型空间中,那么h’也在,因为它对于已往训练样例的划分与h完全一样。
】
2.7.3.无偏学习的无用性
以上讨论说明了归纳推理的一个基本属性:【学习器如果不对目标概念的形式做预先的假定,它从根本
上无法对未见实例进行分类。这便是无偏学习的无用性。】
【由于归纳学习需要某种形式的预先假定,或称为归纳偏置(inductive bias),我们可以用归纳偏置
来描述不同学习方法的特征。】
【简单的讲,归纳偏置就是一个附加的前提集合B,以后还会提到,这个前提集合B有两种情况,第一种
是对假设空间进行限定,就像候选消除算法那样;第二种是假设空间是完整的假设空间,但是进行不彻
底的搜索,很多贪心算法都是这样的,如以后会提到的决策树算法。前一种归纳偏置叫做限定偏置,后
一种叫做优选偏置。】
候选消除算法的归纳偏置:目标概念c包含在给定的假设空间H中。
使用假设空间H的候选消除算的输入输出行为,等价于利用了断言“H包含目标概念”的演绎定理证明器
。该断言因此被称为候选消除算法的归纳偏置。用归纳偏置来刻画归纳系统,可以便于使用等价的演绎
系统来模拟它们。这提供了一种对归纳系统进行比较的方法,即通过它们从训练数据中泛化的策略。
【在研究其他的归纳推理方法时,有必要牢记这种归纳偏置的存在及其强度。一种算法如果有偏性越强
,那它的归纳能力越强,可以分类更多的未见实例。当然,分类的正确性也依赖于归纳偏置的正确性。
】