本文介绍了非线性变换的整体流程:通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行线性分类。
之后介绍了非线性变换存在的问题:时间复杂度和空间复杂度的增加。
最后证明了非线性变换的一般做法:尽可能使用简单的模型,而不是模型越复杂越好。



文章目录

  • 系列文章
  • 12. Nonlinear Transformation
  • 12.1 Quadratic Hypotheses
  • 12.2 Nonlinear Transform
  • 12.3 Price of Nonlinear Transform
  • 12.4 Structured Hypothesis Sets
  • summary



12. Nonlinear Transformation

12.1 Quadratic Hypotheses

在之前的章节中,学习的机器学习模型都为线性模型,即假设空间都为线性的(2D平面中为一条直线,3D空间为一个平面),使用的得分为线性得分(linear scores) 非线性变换支持向量机 非线性变换矩阵_非线性变换。其中,非线性变换支持向量机 非线性变换矩阵_机器学习_02 为特征值向量,非线性变换支持向量机 非线性变换矩阵_机器学习_03

线性模型的优点是理论上可以使用VC限制进行约束(假设是非线性的各种曲线或者超平面,则每种假设都可以完全二分,即有 非线性变换支持向量机 非线性变换矩阵_机器学习基石_04 种二分类。),这保证了 非线性变换支持向量机 非线性变换矩阵_非线性变换支持向量机_05(VC-Dimension比较小)。但是对于线性不可分(non-linear separable)的问题(如下图), 非线性变换支持向量机 非线性变换矩阵_机器学习基石_06 很大,从而导致 非线性变换支持向量机 非线性变换矩阵_算法_07

非线性变换支持向量机 非线性变换矩阵_机器学习基石_08


为了解决线性模型的缺点,我们可以使用非线性模型来进行分类。基于这种非线性思想,之前讨论的PLA、Regression问题也可以通过非线性的形式进行求解。例如可以使用一个半径为 非线性变换支持向量机 非线性变换矩阵_非线性变换支持向量机_09

非线性变换支持向量机 非线性变换矩阵_机器学习基石_10

该公式的含义为将样本点到原点距离的平方与数值0.6作比较,圆形将样本集分离,圆形内部是正类,标记为+1,外部是负类,标记为-1,此种方式称作圆形可分(circular separable)。如下图所示:

非线性变换支持向量机 非线性变换矩阵_机器学习基石_11


将公式(12-01)做如下转换,变为熟悉的线性模型:

非线性变换支持向量机 非线性变换矩阵_机器学习_12


原公式中,非线性变换支持向量机 非线性变换矩阵_算法_13 的权重为 非线性变换支持向量机 非线性变换矩阵_非线性变换支持向量机_14非线性变换支持向量机 非线性变换矩阵_非线性变换_15非线性变换支持向量机 非线性变换矩阵_机器学习基石_16,但是 非线性变换支持向量机 非线性变换矩阵_算法_13 的特征不是线性模型的 非线性变换支持向量机 非线性变换矩阵_机器学习基石_18,而是 非线性变换支持向量机 非线性变换矩阵_非线性变换_19。通过令 非线性变换支持向量机 非线性变换矩阵_非线性变换_20非线性变换支持向量机 非线性变换矩阵_算法_13这种 非线性变换支持向量机 非线性变换矩阵_机器学习_22 的变换可以看作将 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 空间中的点映射到 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 空间中去,即从 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 空间的圆形可分映射到 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 空间的线性可分。非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 域中的直线对应于 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 域中的圆形。其背后的思想是通过非线性的特征变换 非线性变换支持向量机 非线性变换矩阵_机器学习_29(feature transform) 将圆形可分(非线性可分)变为线性可分。

非线性变换支持向量机 非线性变换矩阵_非线性变换支持向量机_30


那么问题来了,已知在 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 域中圆形可分,在 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 域中线性可分;反过来,如果在 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 域中线性可分,是否在 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23答案是否定的。由于权重向量 非线性变换支持向量机 非线性变换矩阵_机器学习_03 取值不同,非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 域中的hypothesis可能是圆形、椭圆、双曲线等等多种情况。

非线性变换支持向量机 非线性变换矩阵_算法_37


通过这种形式转换的 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 空间的直线对应着原 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 空间中特殊的二次曲线(quadratic curves)。说“特殊”是因为表示的圆只能是圆心过原点的圆,不能随意表示各种情况的圆。如果想要表示 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 空间中所有的二次曲面,应设计一个更大的 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 空间,其特征转换如公式为:

非线性变换支持向量机 非线性变换矩阵_非线性变换_42


通过以上特征转换,非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 空间中的每个超平面就对应 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 空间中各种不同情况的二次曲线(圆、椭圆、双曲线)。则 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 空间中的假设空间H为:

非线性变换支持向量机 非线性变换矩阵_非线性变换支持向量机_46


上式中,非线性变换支持向量机 非线性变换矩阵_非线性变换支持向量机_47 表示 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24


习题01:

非线性变换支持向量机 非线性变换矩阵_机器学习基石_49


12.2 Nonlinear Transform

非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 空间转换到 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 空间,则在Z空间中获得的好的线性假设函数,相当于在X空间中获得了好的二次假设函数,即在 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 空间中存在线性可分的直线对应于在 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 中(非线性)可分的二次曲线。目标就是在 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24

非线性变换支持向量机 非线性变换矩阵_非线性变换_55

利用映射变换的思想,通过映射关系,把 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 空间中的最高阶二次的多项式转换为 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 空间中的一次向量 z,即从二次假设转换成了感知器问题。用 z 值代替 x 多项式,其中向量 z 的个数与 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 空间中 x 的多项式的个数相同(包含常数项)。这样就可以在 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24

  • 非线性变换支持向量机 非线性变换矩阵_机器学习基石_60 空间中的数据为 非线性变换支持向量机 非线性变换矩阵_机器学习_61非线性变换支持向量机 非线性变换矩阵_机器学习基石_62 空间的数据集为 非线性变换支持向量机 非线性变换矩阵_机器学习基石_63
  • 通过特征变换函数 非线性变换支持向量机 非线性变换矩阵_非线性变换_64非线性变换支持向量机 非线性变换矩阵_机器学习基石_60 空间中线性不可分的数据集 非线性变换支持向量机 非线性变换矩阵_机器学习_61 变换为 非线性变换支持向量机 非线性变换矩阵_机器学习基石_62 空间中线性可分的数据集 非线性变换支持向量机 非线性变换矩阵_机器学习基石_63
  • 使用线性分类算法和 非线性变换支持向量机 非线性变换矩阵_机器学习基石_62 空间的数据集 非线性变换支持向量机 非线性变换矩阵_算法_70 获得表现良好的感知器模型 (最优权重向量) 非线性变换支持向量机 非线性变换矩阵_机器学习_71
  • 最后得到最优的假设函数 非线性变换支持向量机 非线性变换矩阵_算法_72

非线性变换支持向量机 非线性变换矩阵_非线性变换_73

上图中,最下边两幅图表达了该思路的核心思想。判断某个样本属于哪个类别,只需要将 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 空间中的数据变换到 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 空间;然后使用 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 空间中的假设函数(线性分类器)对样本进行分类;最后反变换到 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23

这类模型由两部分构成:

  • 非线性变换函数 非线性变换支持向量机 非线性变换矩阵_非线性变换_64
  • 线性模型:包括之前学习的二分类、线性回归和Logistic回归等;

使用以上求解非线性分类的思路可以解决二次PLA,二次回归,三次回归,…,多项式回归等多种问题。

特征变换(feature transform) 的思想非常常见,比如我们熟知的手写数字识别任务中,从原始的像素值特征转换为具体的特征,比如密度、对称性等:

非线性变换支持向量机 非线性变换矩阵_机器学习_79

习题2:

非线性变换支持向量机 非线性变换矩阵_非线性变换支持向量机_80


12.3 Price of Nonlinear Transform

如果 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 的特征维度为 非线性变换支持向量机 非线性变换矩阵_机器学习_82 维,也就是包含 非线性变换支持向量机 非线性变换矩阵_机器学习_82 个特征,那么二次多项式个数,即 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24

非线性变换支持向量机 非线性变换矩阵_机器学习_85

如果 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 特征维度是2维的,即 非线性变换支持向量机 非线性变换矩阵_机器学习基石_87,那么它的的二次多项式为 非线性变换支持向量机 非线性变换矩阵_机器学习_88,有六项。

如果阶数为 非线性变换支持向量机 非线性变换矩阵_机器学习基石_89非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 空间的特征维度为 d 维,则它的 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24

非线性变换支持向量机 非线性变换矩阵_非线性变换_92

由上式可以看出,计算 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 空间特征维度个数的时间复杂度是 非线性变换支持向量机 非线性变换矩阵_机器学习基石_89非线性变换支持向量机 非线性变换矩阵_机器学习_82 次方,随着 非线性变换支持向量机 非线性变换矩阵_机器学习基石_89非线性变换支持向量机 非线性变换矩阵_机器学习_82

非线性变换支持向量机 非线性变换矩阵_非线性变换_98


特征转换还带来另一个问题。在前面的章节中讲述过,模型参数的自由度大概是该模型的VC维度。z域中特征个数随着Q和d增加变得很大,同时权重w也会增大,即自由度增加,VC-Dimension 增大。令z域中的特征维度为 非线性变换支持向量机 非线性变换矩阵_机器学习基石_99 ,在 非线性变换支持向量机 非线性变换矩阵_机器学习基石_24 域中,任何 非线性变换支持向量机 非线性变换矩阵_机器学习_101 的输入都不能被 shattered,同样,在 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 域中,任何 非线性变换支持向量机 非线性变换矩阵_机器学习_101 的输入也不能被 shattered;非线性变换支持向量机 非线性变换矩阵_机器学习基石_99 是 VC-Dimension 的上界,如果 非线性变换支持向量机 非线性变换矩阵_机器学习基石_99 很大,相应的 VC-Dimension 也会很大。根据之前章节课程的讨论,VC-Dimenslon 过大,模型的泛化能力会比较差。

非线性变换支持向量机 非线性变换矩阵_机器学习基石_106


下例解释了 VC-Dimension 过大,导致分类效果不佳的原因:

非线性变换支持向量机 非线性变换矩阵_机器学习_107


上图中,左边用直线进行线性分类,有部分点分类错误;右边用四次曲线进行非线性分类,所有点都分类正确,那么哪一个分类效果好呢?单从平面上这些训练数据来看,四次曲线的分类效果更好,但是四次曲线模型很容易带来过拟合的问题,虽然它的 非线性变换支持向量机 非线性变换矩阵_机器学习基石_06 比较小;泛化能力上,左边的分类器更好。也就是说,VC-Dimension 过大会带来过拟合问题,非线性变换支持向量机 非线性变换矩阵_机器学习基石_99那么如何选择合适的Q,避免过拟合,提高模型泛化能力呢?一般情况下,为了尽量减少特征自由度,会根据训练样本的分布情况,人为地减少、省略一些项。但是,这种人为地删减特征会带来一些“自我分析”代价,虽然对训练样本分类效果好,但是对训练样本外的样本,不一定效果好。所以,一般情况下,还是要保存所有的多项式特征,避免对训练样本的人为选择。

非线性变换支持向量机 非线性变换矩阵_算法_110


习题3:

非线性变换支持向量机 非线性变换矩阵_机器学习_111


12.4 Structured Hypothesis Sets

下面讨论 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23 空间到 非线性变换支持向量机 非线性变换矩阵_机器学习基石_23

如果特征维度是一维的,变换多项式只有常数项:

非线性变换支持向量机 非线性变换矩阵_非线性变换支持向量机_114

如果特征维度是两维的,变换多项式包含了一维的 非线性变换支持向量机 非线性变换矩阵_非线性变换支持向量机_115

非线性变换支持向量机 非线性变换矩阵_非线性变换_116

如果特征维度是三维的,变换多项式包含了二维的 非线性变换支持向量机 非线性变换矩阵_机器学习_117

非线性变换支持向量机 非线性变换矩阵_机器学习基石_118

以此类推,如果特征维度是Q维的,则它的变换多项式为:

非线性变换支持向量机 非线性变换矩阵_机器学习基石_119

这种结构称为 Structured Hypothesis Sets

非线性变换支持向量机 非线性变换矩阵_非线性变换_120


对于这种 Structured Hypothesis Sets ,VC-Dimention 和 非线性变换支持向量机 非线性变换矩阵_机器学习基石_06 满足如下关系:

非线性变换支持向量机 非线性变换矩阵_非线性变换支持向量机_122


VC-Dimention 与错误率之间的关系如下:

非线性变换支持向量机 非线性变换矩阵_非线性变换_123


由上图易知,随着变换多项式的阶数增大,虽然 非线性变换支持向量机 非线性变换矩阵_机器学习基石_06 逐渐减小,但模型复杂度会逐渐增大,造成 非线性变换支持向量机 非线性变换矩阵_算法_07

如果选择的阶数很大,能使 非线性变换支持向量机 非线性变换矩阵_机器学习_126 ,但泛化能力很差,这种情况叫做tempting sin。所以,一般做法是先从低阶开始,如先选择一阶假设,看看非线性变换支持向量机 非线性变换矩阵_机器学习基石_06 是否很小,如果 非线性变换支持向量机 非线性变换矩阵_机器学习基石_06


习题4:

非线性变换支持向量机 非线性变换矩阵_非线性变换支持向量机_129


summary

本节课介绍了非线性变换的整体流程(通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行线性分类。

之后介绍了非线性变换存在的问题:时间复杂度和空间复杂度的增加。

最后介绍了在付出代价的情况下,使用非线性变换的最安全做法:尽可能使用简单的模型,而不是模型越复杂越好。

非线性变换支持向量机 非线性变换矩阵_算法_130


参考:

https://github.com/RedstoneWill/HsuanTienLin_MachineLearning