【机器学习基础】非线性变换

引言

在之前介绍的分类问题中,所涉及的分类的模型都是线性的,在非线性变换这一节中,我们将模型延伸到非线性的情况下来进行数据的分类。

二次假设(Quadratic Hypotheses)


我们看到上面的例子,在左图中,圆圈和红叉的数据无法用一条直线将其分成两类,那么这这个例子中,我们其实可以用一个大圆圈将数据分类,所以现在我们考虑假设,该假设hSEP(x)是一个过原点的圆圈,这启示我们可以用系统化的方法结合之前我们学习的线性分类的方法,来解决更加广泛的问题。
还是拿上面的这个圆圈的Φ假设为例,h(x)=sign(0.6· 1 + (-1) ·x1^2 + (-1) ·x2^2)。我们令w0=0.6,w1=-1,w2=-1;而z0=1,z1=x1^2,z2=x2^2。通过这种方式我们就可以将之前的h(x)变化成sign(wT * z),这个熟悉的形式就是我们之前学习的线性分类的形式,我们唯一做的不同的事情就是将之前的x的空间转换成新的z的空间。我们把x空间的每一个点转换到z空间的每一个点的过程称作特征转换(Feature Transform)。这里值得一提的是,x空间里用二次假设可分的情况,可以得到在z空间的 线性可分,但是反过来则不可以,因为在z空间里的直线不见得在x空间里都是正圆形,还有可能是双曲线之类的二次曲线,所以在z空间使得数据线性可分的直线对应x空间的特定的曲线。


我们可以考虑一个更加广泛的二次假设,这个假设是使得在z空间里让数据线性可分的假设,那其中的转换函数如下图定义。


非线性变换(Nonlinear Transform)

我们可以总结这个非线性转换的步骤,即先通过Φ(x)将x空间的点转换成z空间的点,而在z空间上得到一个线性的假设,再恢复到原来的x空间中得到一个二次的假设(这个反运算的过程不一定存在)。


其实这个特征转换是非常重要的,比如在手写数字分类的案例中,我们将原始的像素的特征数据转换到更加具体的、具有物理意义的特征上去,进而进行分类的求解。这个例子其实就是在新的特征空间中做线性分类,而对于原始的像素空间里其实是一个非线性的假设。


非线性变换的代价(Price of Nonlinear Transform)

计算/存储的代价(Computation/Storage Price)

现在我们考虑一个很一般化(general)的非线性变换,将刚才的二次变成Q次的多项式转换。


我们用d来表示在z空间的维度,我们需要得到d维的不同的组合方法,复杂度是O(Q^d)。
这个数字代表我们需要这样的计算复杂度来计算Φ(x)变换、计算参数w(因为一些训练算法的时间复杂度和数据的维度是有关的),还有存储w的话也需要付出代价。


模型复杂度(Model Complexity Price)

我们知道这个z空间的模型的参数是1+d个,这个相当于是z空间的vc维,所以当Q变大的时候,vc维也变大了。


泛化问题(Generalization Issue)

我们再回到机器学习的一个基本都是平衡折中问题上,如果d(Q)大的时候,我们可以让Ein很小,但是这会导致Ein和Eout差别很大;当d(Q)小的时候,可以使得Ein和Eout差别小,但是又不能保证Ein很小。


结构化的假设集合(Structured Hypothesis Sets)

现在我们把多项式的变换做一个递归式的定义,先定义0次的变换,再定义1次的变换,其中包括之前的0次变换和所有的一次式,以此类推,Q次的变换包含之前的Q-1次的变换和所有的Q次式。


上面的定义中,因为每个变换都包含了前面的变换,即前面的变换是后面变换的一个特例。从假设集合的角度,复杂的变换对应的假设集合是包含相对简单的变换对应的假设集合。


有了之前复杂度不同的假设集合的包含关系,可以得到以下的关系,即vc维随着假设集合的数量越累越多而变得越来越大,而Ein随着这些假设集合中的选择越来越多而呈下降的趋势。


这个关系如下图所示,这告诉我们一个高维度的变换因为付出了很大的模型复杂度,所以会使得Eout和Ein偏离较远。那么,在未来的模型选择中,可以首先选择线性的模型,因为线性模型简单、有效、安全并且工作效果好。


转载请注明作者Jason Ding及其出处
Github主页(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值