机器学习物语(3):回归问题



机器学习物语(3):回归问题_第1张图片

上一次讲到 Empirical Risk Minimization (ERM) 算法在有限个函数的空间里学习是可行的,然而这样的结果似乎用处不大,因为许多机器学习中用到的函数空间都是无限的。我们还提到,为了解决这个问题,需要一个“将无限化为有限”的工具。如果是对统计学习理论有一定了解的同学,可能会觉得我应该马上要讲 VC Dimension 了:如果  F  的 VC 维是有限的,那么即使它本身的元素个数是无限的,我们仍然可以得到合理的 bound 。任何谈到学习理论的文章不提 VC 维都会显得很过分,不过今天我们还暂时不讲这个。回到“无限到有限”的话题,我在这里也曾写过关于拓扑空间的紧性的文章,实际上,Compactness 才是我们这次要用到的工具。回忆一下,紧集的任一开覆盖存在一有限子覆盖,正是把“无限”变成了“有限”。

在进入正题之前,我们先来简单看一下机器学习中的两大问题:分类和回归。分类问题对应于离散的(有限的)  Y ,例如,二分类问题中, Y={0,1}  (也有用  Y={1,+1}  的,不过这只是形式上的不同而已);再比如在手写数字识别(分类)问题中, Y={0,1,,9} 。而回归问题则对应连续的  Y  ,最常见的情况是  Y=R  。分类问题关心的是类别是否匹配,代表每个类别的数字只是一个符号而已,可以换成任意其他符号,并且这些符号之间一般没有什么关系,例如,原本是数字 8 ,把它分类成 7 或者 2 都同样是错误的,并不会因为 7 (从数值上)更接近 8 就是一个更好的结果——在这种情况下,0-1 loss 是最自然的损失函数。而回归问题则不一样,比如,今天的气温是 28 度,预测为 25 度很自然地比预测为 2 度要好。说白了就是分类问题中  Y  是离散的,用了离散度量来衡量相似度,而回归问题中则用了  R  上的欧氏度量。

当然虽然归纳成这个样子,但是两者的差别还是很大的,包括分析方法、优化方法之类的,因为离散问题通常都特别难处理,涉及到组合优化的问题,动不动就变成 NP-hard 了,而连续情况的分析则可以借用数学分析以及相关的一堆工具,在某些情况下要显得容易得多。而且即使在分类的情况下,目前的理论研究大部分也都集中在二分类这个最简单的特例上,一方面因为这是最基本和最简单的情况,便于分析;另一方面,多类问题通常都可以转化为二类问题。例如,最简单的转化方法是所谓的 one-vs-all classification ,假设 binary classifier 除了能够给出属于两类中的哪一类,还能给出属于那一类的概率或者置信度(不一定要是一个合法的概率值,只要是一个可以比较大小的分数即可)的话,那么对于 K 类问题,分别训练 K 个 binary classifier ,其中第 k 个 classifier 被训练为区分“是第 k 类”和“不是第 k 类”(也就是“是第 k 类以外的任一类”)两种情况。实际分类的时候同时运行 K 个分类器,最后结果按属于哪一类的置信度最大来决定。

不过就我目前的了解来看,对于这样方法的合理性似乎研究得比较少,而直接从多类分类角度入手来设计模型的似乎就更少了,不过似乎也正在收到越来越多的关注。Logistic 回归分类器是可以自然地处理多类问题的,最近好像也有看到针对 Multiclass Boosting 的相关工作。从实验方面来说,Fei-fei Li 在 ECCV 2010 的一篇 What does classifying more than 10,000 image categories tell us? 就观察到了一些比较有趣的现象。在 Vision 问题中的分类问题似乎类别数目可以达到非常非常多,那些在较少的类别数的情况下表现很好的算法,到了这种时候就不一定还能胜出了。这里面是否有什么深刻的道理呢?在多类或者非常多类的情况下,我们是否需要从头重新考虑分类模型呢?

似乎越扯越远了,其实本文要探讨的问题是回归问题,因为想要利用紧性来处理无限的情况,希望借助分析上的一些工具,于是我们暂时转为处理连续的情况。顺便也把回归问题的模型以及相关的概念正式 formulate 一下。

考虑  Y=R  的情况,并使用平方误差 loss function

f(x,y)=(f(x)y)2

在处理回归问题的时候,我们习惯把风险 (Risk) 叫做误差 (Error) ,因此,一个 regressor  f 的误差定义为

E(f)=E[(f(X)Y)2]=X×Y(f(x)y)2dP(x,y)

类似地,可以定义回归函数

η(x)=E[Y|X=x]=YydP(y|x)

可以理解为随机变量  X  取  x  的时候,随机变量  Y  的平均值。在二分类问题中,我们用回归函数定义了贝叶斯分类器并证明了该分类器是最优的。类似地,我们在这里可以证明回归函数  η(x)  本身就是最优的 regressor 。

首先,根据 Fubini 定理,我们可以将重积分拆开成累次积分(当然,假定可积性首先是满足的,否则分析 Error 就没有意义了):

E(f)=X×Y(f(x)y)2dP(x,y)=X(Y(f(x)y)2dP(y|x))dP(x)

于是

E(f)=X(Y(f(x)η(x)+η(x)y)2dP(y|x))dP(x)=X(Y(f(x)η(x))2+2(f(x)η(x))(η(x)y)+(η(x)y)2dP(y|x))dP(x)=X(f(x)η(x))2dP(x)+X(Y(η(x)y)2dP(y|x))dP(x)X(f(x)η(x))2dP(x)+σ2P

其中红色的项与  f  无关,而只和数据本身的分布  P  有关,记为  σ2P  ,由于两项都是非负的,所以很容易就得到我们的结论:当  f(x)  和  η(x)  几乎处处相等的时候,第一项积分等于零,此时误差取到最小值,类似地,也称为贝叶斯误差。可以看到,贝叶斯误差其实就是  σ2P  ,它衡量了问题本身的难易程度,即使最好的情况也无法达到比它还小的误差。而当 f(x)  和  η(x)  在某个非零测集上不相等时,第一项积分就大于零了,此时  E(f)  将大于贝叶斯误差。这就证明了  η(x)  的最优性。

同样的,我们考虑在一个特定的函数空间中的 ERM 问题。由于我们在一开始提到了,要利用 compactness ,很自然地我们考虑由  X  到  Y=R  的连续函数构成的 Banach 空间  C(X)  的一个紧子集  H  。特别地,我们使用无穷范数(上确界范数)

f=supxX|f(x)|

注意这里选择无穷范数是必要的,在后面的证明中的一步需要这个条件,以下我们直接用简单的符号   表示。而  H  的紧性自然是本文的重点——它保证了我们的 ERM 算法能够成功。另外,它还有一些额外的好处,比如保证  H  中存在(至少)一个最优的 regressor  fH ,亦即

fH=argminfHE(f)

注意之前在讨论分类问题的时候我们为了简单起见就直接假设了函数空间  F  上的最优分类器  fF  的存在性。类似的,对于任意  fH  ,其误差可以分解为两个部分

E(f)=E(f)E(fH)+E(fH)

红色的项叫做 estimation error ,蓝色的项叫做 approximation error 。我们的目的是去估计 ERM 学习出来的函数  fn  的 estimation error :

E(fn)E(fH)=E(fn)En(fn)+En(fn)E(fH)E(fn)En(fn)+En(fH)E(fH)2supfH|E(f)En(f)|

问题再一次转化为了  H  上的一致收敛问题,到此为止基本上都是前面的复习,用回归的语言重新复述了一下。接下来终于要开始新的东西了。首先我们要证明  E(f)  和  En(f)  在  H  上是 Lipschitz 连续的。

命题 1:若  |fi(x)y|M  对于  i  等于 1 和 2 都成立,则

|E(f1)E(f2)||En(f1)En(f2)|2Mf1f22Mf1f2

证明:由前面的推导得

|E(f1)E(f2)|=X(f1(x)η(x))2(f2(x)η(x))2dP(x)=X(f1(x)f2(x))(f1(x)+f2(x)2η(x))dP(x)X|(f1(x)f2(x))||(f1(x)+f2(x)2η(x))|dP(x)f1f2X(|f1(x)η(x)|+|f2(x)η(x)|)dP(x)2Mf1f2

类似的,对于  En  ,我们有

|En(f1)En(f2)|=1ni=1n(f1(xi)yi)2(f2(xi)yi)2=1ni=1n(f1(xi)f2(xi))(f1(xi)+f2(xi)2yi)1ni=1n|(f1(xi)f2(xi))||(f1(xi)+f2(xi)2yi)|f1f21ni=1n(|f1(xi)yi|+|f2(xi)yi|)2Mf1f2

注意到对于  En  的证明中,我们需要上确界范数。

有以上这个命题,立即可以得到,在该命题的条件下

|(E(f1)En(f1))(E(f2)En(f2))||E(f1)E(f2)|+|En(f1)En(f2)|4Mf1f2

可以看到这里的连续性严重依赖于  |f(x)y|  的有界性,也就是我们选择的平方损失函数的有界性。不过通不像分类问题中的 0-1 loss 那样天然地有界,这里我们还需要一些条件才能保证。比如,我们可以假定回归函数  η(x)  是有界的,然后再假定  X  是紧集。这基本都是还算合理的假设了,例如,通常的 vector space model 里, X  是个线性空间的话,只要假定所有可能的输入数据是限制在一个有界的范围内就可以了。以下如果没有特别指出,总假定  |f(x)y|M  ,特别是在出现常数  M  的情况下,总是指该上界。

为了方便起见,我们记  E(f)E(f)En(f)  ,我们的目的是要限定  supfH|E(f)| 。根据上一次讲过的 Hoeffding 不等式,我们知道,对于固定的  f0  ,有

P(E(f0)>ϵ)2exp(nϵ22M2)

再由刚刚证明过的  E(f)  的连续性,知道在  f0  的一个小领域内,我们也可以保证  E(f)  的值不会偏差太大。特别地,取  H  中以  f0  为圆心, r  为半径的一个开球  B(f0;r)  ,则显然  fB(f0;r)  都有  ff0r  ,因此

|E(f)E(f0)|4Mff0=4Mr

由绝对值的性质,知

|E(f)|4Mr+|E(f0)|

由于右边和  f  无关,取上确界,我们又得到

supfB(f0;r)|E(f)|4Mr+|E(f0)|

可以看到,如果半径  r  足够小,我们就可以把  sup|E(f)|  限定在和  E(f0)  相差不大的范围内,为了得到事件  {sup|E(f)|>ϵ}  的概率,我们注意到

{supfB(f0;r)|E(f)|>ϵ}{4Mr+|E(f0)|>ϵ}={|E(f0)|>ϵ4Mr}

而后者的概率是我们可以控制的,特别地,如果我们取  r=ϵ/8M  ,则根据刚才的 Hoeffding 不等式:

P(supfB(f0;ϵ/8M)|E(f)|>ϵ)P(|E(f0)|>ϵ2)2exp(nϵ28M2)

这样一来,我们就把以  f0  为圆心, ϵ/8M  为半径的范围全部控制住了,接下来推广到整个紧集  H  上就成了顺理成章的事。首先注意到开球族

{B(f;ϵ8M):fH}

显然可以覆盖  H  ,由  H  的紧性知,存在有限个开球仍然覆盖  H  ,不妨记为

B(f1;ϵ/8M),,B(fN;ϵ/8M)

则我们有

P(supfH|E(f)|>ϵ)i=1NP(supfB(fi;ϵ/8M)|E(f)|>ϵ)2Nexp(nϵ28M2)

于是我们完成了在紧集  H  上一致收敛的界定。这里我们可以定义一个度量空间  S  的 Covering Number  N(S,r)  为最小的  l  ,使得存在  l  个半径为  r  的开球将其覆盖住。显然,紧集的 Covering Number 是有限的,从上面的结论知道,Covering Number 有限的时候,ERM 算法是可行的。

紧性看起来似乎是很严格的要求,其实许多有用的函数空间都满足的,比如  Rm  上的线性函数(把系数向量的模限制在 1 以内)。更多的例子,以及如何估计具体的函数空间的 Covering Number 的例子,可以参见 Felipe Cucker 和 Steve Smale 的论文 On the Mathematical Foundations of Learning 。本文的主要内容也是摘要整理自这篇论文。话说这俩人都是数学系的,Smale 更是拿了菲尔兹奖和沃尔夫奖。

封面人物:漫画《七龙珠》中的人造人 17 号、16 号和 18 号。这些人造人是红领巾军为了打败孙悟空,在历年的天下第一武术大会以及其他重要的战斗中通过间谍机器人搜集孙悟空等人的战斗数据,最终制造出来的战斗型机器人。不知道他们在制造人造人的时候是不是用了机器学习的方法来训练其战斗技能 :P ,不过这些人造人的性能实际上是非常优良的,不仅对搜集过数据的战斗中的招数拟合得很好,而且对于未出现过的对手(例如超级赛亚人),也能从容应付。

机器学习物语(3):回归问题_第2张图片

上一次讲到 Empirical Risk Minimization (ERM) 算法在有限个函数的空间里学习是可行的,然而这样的结果似乎用处不大,因为许多机器学习中用到的函数空间都是无限的。我们还提到,为了解决这个问题,需要一个“将无限化为有限”的工具。如果是对统计学习理论有一定了解的同学,可能会觉得我应该马上要讲 VC Dimension 了:如果  F  的 VC 维是有限的,那么即使它本身的元素个数是无限的,我们仍然可以得到合理的 bound 。任何谈到学习理论的文章不提 VC 维都会显得很过分,不过今天我们还暂时不讲这个。回到“无限到有限”的话题,我在这里也曾写过关于拓扑空间的紧性的文章,实际上,Compactness 才是我们这次要用到的工具。回忆一下,紧集的任一开覆盖存在一有限子覆盖,正是把“无限”变成了“有限”。

在进入正题之前,我们先来简单看一下机器学习中的两大问题:分类和回归。分类问题对应于离散的(有限的)  Y ,例如,二分类问题中, Y={0,1}  (也有用  Y={1,+1}  的,不过这只是形式上的不同而已);再比如在手写数字识别(分类)问题中, Y={0,1,,9} 。而回归问题则对应连续的  Y  ,最常见的情况是  Y=R  。分类问题关心的是类别是否匹配,代表每个类别的数字只是一个符号而已,可以换成任意其他符号,并且这些符号之间一般没有什么关系,例如,原本是数字 8 ,把它分类成 7 或者 2 都同样是错误的,并不会因为 7 (从数值上)更接近 8 就是一个更好的结果——在这种情况下,0-1 loss 是最自然的损失函数。而回归问题则不一样,比如,今天的气温是 28 度,预测为 25 度很自然地比预测为 2 度要好。说白了就是分类问题中  Y  是离散的,用了离散度量来衡量相似度,而回归问题中则用了  R  上的欧氏度量。

当然虽然归纳成这个样子,但是两者的差别还是很大的,包括分析方法、优化方法之类的,因为离散问题通常都特别难处理,涉及到组合优化的问题,动不动就变成 NP-hard 了,而连续情况的分析则可以借用数学分析以及相关的一堆工具,在某些情况下要显得容易得多。而且即使在分类的情况下,目前的理论研究大部分也都集中在二分类这个最简单的特例上,一方面因为这是最基本和最简单的情况,便于分析;另一方面,多类问题通常都可以转化为二类问题。例如,最简单的转化方法是所谓的 one-vs-all classification ,假设 binary classifier 除了能够给出属于两类中的哪一类,还能给出属于那一类的概率或者置信度(不一定要是一个合法的概率值,只要是一个可以比较大小的分数即可)的话,那么对于 K 类问题,分别训练 K 个 binary classifier ,其中第 k 个 classifier 被训练为区分“是第 k 类”和“不是第 k 类”(也就是“是第 k 类以外的任一类”)两种情况。实际分类的时候同时运行 K 个分类器,最后结果按属于哪一类的置信度最大来决定。

不过就我目前的了解来看,对于这样方法的合理性似乎研究得比较少,而直接从多类分类角度入手来设计模型的似乎就更少了,不过似乎也正在收到越来越多的关注。Logistic 回归分类器是可以自然地处理多类问题的,最近好像也有看到针对 Multiclass Boosting 的相关工作。从实验方面来说,Fei-fei Li 在 ECCV 2010 的一篇 What does classifying more than 10,000 image categories tell us? 就观察到了一些比较有趣的现象。在 Vision 问题中的分类问题似乎类别数目可以达到非常非常多,那些在较少的类别数的情况下表现很好的算法,到了这种时候就不一定还能胜出了。这里面是否有什么深刻的道理呢?在多类或者非常多类的情况下,我们是否需要从头重新考虑分类模型呢?

似乎越扯越远了,其实本文要探讨的问题是回归问题,因为想要利用紧性来处理无限的情况,希望借助分析上的一些工具,于是我们暂时转为处理连续的情况。顺便也把回归问题的模型以及相关的概念正式 formulate 一下。

考虑  Y=R  的情况,并使用平方误差 loss function

f(x,y)=(f(x)y)2

在处理回归问题的时候,我们习惯把风险 (Risk) 叫做误差 (Error) ,因此,一个 regressor  f 的误差定义为

E(f)=E[(f(X)Y)2]=X×Y(f(x)y)2dP(x,y)

类似地,可以定义回归函数

η(x)=E[Y|X=x]=YydP(y|x)

可以理解为随机变量  X  取  x  的时候,随机变量  Y  的平均值。在二分类问题中,我们用回归函数定义了贝叶斯分类器并证明了该分类器是最优的。类似地,我们在这里可以证明回归函数  η(x)  本身就是最优的 regressor 。

首先,根据 Fubini 定理,我们可以将重积分拆开成累次积分(当然,假定可积性首先是满足的,否则分析 Error 就没有意义了):

E(f)=X×Y(f(x)y)2dP(x,y)=X(Y(f(x)y)2dP(y|x))dP(x)

于是

E(f)=X(Y(f(x)η(x)+η(x)y)2dP(y|x))dP(x)=X(Y(f(x)η(x))2+2(f(x)η(x))(η(x)y)+(η(x)y)2dP(y|x))dP(x)=X(f(x)η(x))2dP(x)+X(Y(η(x)y)2dP(y|x))dP(x)X(f(x)η(x))2dP(x)+σ2P

其中红色的项与  f  无关,而只和数据本身的分布  P  有关,记为  σ2P  ,由于两项都是非负的,所以很容易就得到我们的结论:当  f(x)  和  η(x)  几乎处处相等的时候,第一项积分等于零,此时误差取到最小值,类似地,也称为贝叶斯误差。可以看到,贝叶斯误差其实就是  σ2P  ,它衡量了问题本身的难易程度,即使最好的情况也无法达到比它还小的误差。而当 f(x)  和  η(x)  在某个非零测集上不相等时,第一项积分就大于零了,此时  E(f)  将大于贝叶斯误差。这就证明了  η(x)  的最优性。

同样的,我们考虑在一个特定的函数空间中的 ERM 问题。由于我们在一开始提到了,要利用 compactness ,很自然地我们考虑由  X  到  Y=R  的连续函数构成的 Banach 空间  C(X)  的一个紧子集  H  。特别地,我们使用无穷范数(上确界范数)

f=supxX|f(x)|

注意这里选择无穷范数是必要的,在后面的证明中的一步需要这个条件,以下我们直接用简单的符号   表示。而  H  的紧性自然是本文的重点——它保证了我们的 ERM 算法能够成功。另外,它还有一些额外的好处,比如保证  H  中存在(至少)一个最优的 regressor  fH ,亦即

fH=argminfHE(f)

注意之前在讨论分类问题的时候我们为了简单起见就直接假设了函数空间  F  上的最优分类器  fF  的存在性。类似的,对于任意  fH  ,其误差可以分解为两个部分

E(f)=E(f)E(fH)+E(fH

你可能感兴趣的:(机器学习)