|
|
|
|
移动端

2.3.6 局部泛化

《深度学习与计算机视觉:算法原理、框架应用与代码实现》本书全面介绍了深度学习及计算机视觉中最基础的知识,并结合最常见的应用场景和大量实例,带领读者进入丰富多彩的计算机视觉领域。作为一本“原理+实践”教程,本书在讲解原理的基础上,通过有趣的实例带领读者一步步亲自动手,不断提高动手能力,而不是枯燥和深奥原理的堆砌。本节为大家介绍局部泛化。

作者:叶韵来源:机械工业出版社|2017-10-23 16:28

【新品产上线啦】51CTO播客,随时随地,碎片化学习

2.3.6  局部泛化

2.3.5节花了不少篇幅介绍了数据和维度的关系,而真正将数据利用起来并处理解决实际问题的还是从数据到结果的映射,也就是函数。数据和函数综合在一起的效果,也就决定了一个问题的复杂度。

在机器学习中有一个常见的概念叫做局部泛化(Local Generalization),意思是对于两个输入样本x和x',如果这两个样本之间的距离很近,则对于要学习的函数f而言,f(x)和f(x')的值应该也相差不多。下面通过图2-32中的一维例子来形象理解一下。

对于三个x轴的一维样本x0,x1和x2,其中x0和x1很靠近,x2离得较远,则f(x0)和f(x1)的值会比较接近,而f(x2)和f(x0)/f(x1)都差得比较多。所以这是对函数值平滑性的一个自然而然的结论。很多非参数机器学习方法背后正是基于这一思想,比如SVM,KNN和高斯过程(Gaussian Process)。

而到了高维度下,基于局部泛化的方法也会遭遇维度的“诅咒”,首先,基于局部泛化的方法有个假设是函数足够光滑,如果函数不那么光滑的情况下,需要描述函数的样本就会随着函数的复杂度而增加。比如图2-32中实线的情况,如果在x2左边函数的极小值处取一个样本,再在x0附近取一个样本,利用二次方或者其他的插值方式就已经能够较好的近似了。我们把问题简化一下,把左边阴影的区域看作是一个区域,右边看作是另一个区域。如果f在这两个区域的值有较大差别,则需要两个不同样本描述。那么考虑二维情况,第二个维度上也可以找到两个区域,所以空间被划分为22=4个区域,如果函数在这4个区域上的值都有差别,比如类似XOR的函数,则至少需要4个样本来描述。依此类推,对于n维空间,如果每一维都有两个区域,且和其他维度形成的全排列都对应一个独特的值,那么则至少需要2n个样本对函数进行近似描述,本质上讲,就是说需要描述的函数是非常不平滑的。

这种指数级上升的样本需求,显然在高维情况下是难以达到的。当然,并不是每一个函数都非常不平滑,但是另一方面,也不是数据的每一维度对函数只有两个区域的不同取值,所以总体而言,随着维度的增加,用局部泛化来描述一个函数是对样本数目有着指数增长的需求的。这就是为什么对于有些高维情况而言,用SVM训练出的模型,所有样本都是支持向量(Support Vector)。

除了函数本身复杂度的影响,数据本身在高维空间中的特性也会影响局部泛化。在2.3.5节中也讲过,随着维度的增加,样本在空间中的分布趋同和趋于稀疏,所以局部的概念就变得弱了。从一个更简单的角度来理解,可以认为在低维度下,一个样本能罩住的局部的范围相对整个样本空间来说的比例比起高维的情况大,比如图2-22中,一维情况下0.1间隔的样本只需要10个就能罩住整个单位空间了,而到了三维则需要100个,更高维度则需要更多,而且是指数变化。所以如果采样的数目不变的情况下,高维度局部泛化的能力显然就没有低维空间强了。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java for Flash动态网站开发手札

本书深入浅出地说明了如何利用Java、Flash及XML进行Flash富媒体应用程序的开发。 本书知识丰富,内容结构合理,包括:Flash影片应用程序与...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊