12.1 Nonlinear Transformation - Quadratic Hypotheses
我们用非线性的方法来做分类。
但是也有其他的情况,无法利用线性的方法来进行分割。
我们不用线的方式,而是用其他的方法,将数据进行分割。
我们想通过使用圆圈的方式来进行分类。这样我们要重新改写之前所有的分类结果。
重新编写 圆-PLA,圆-Regression 这几种方法。
我们给w上面加了个~,表示 我们现在不是在x上面的w了,而是在z上面的w。
我们就很像是将圆圈里的点,变成了线性空间上的点!!!!!!!!!!!!!!!!!!
我们将把x世界里的每一个点,变成z世界上的点的过程,叫做feature transform
可是反过来呢?新资料可以线性分开,那么一定代表原来的资料可以被圆圈分开嘛?
因此Z空间的一条线,对应原来x空间里,有各种各样的形状,如圆,双曲线,等等。
这要看变量z前面的w的系数。
我们想做所有可能的二次曲线,因此我们需要所有的二次项,一次项,和常数项。
比如我们给了X空间里的一个椭圆曲线,我们想知道Z空间里是否可以用感知器来做到。
我们得到了W^T的六个值。我们的z也有六个,下角标0~5。我们就可以用Z空间的直线来区分X空间的点。
12.2 Nonlinear Transformation - Nonlinear Transform
我们已经建立了Z空间与X空间的一一对应的方法。
我们干脆直接在Z空间中找到一条好的线,用Z空间上的好的一条线。
在Z空间上分类号后在逆运算后得到。虽然可能不一定存在,但是思路是这样的。
当然,我们最后实际上还是输入x,但是判断是哪个类别的话,就要用到后面的,输出到高维空间上的方法来做。
我们有了feature transform这个思想利器后,发现很多问题都可以得到解决。
虽然feature transform能够将raw input 变成 concrete input,但是这是否会增加很多的代价呢?
12.3 Nonlinear Transformation - Price of Nonlinear Transform
Q次的多项式。
high computation and high storage if the Q is large
我们的未知变量就要有这么多。自由度随着Q很快的增加上去。
现在我们面临着一个难题,一方面是如果用一个曲线直接区分两种点,可能会有少量不太好的点,
另一方面则是用四次曲线来分割,能够完美的分割所有点。我们应该选择哪个???
我们面临着两难选择。
小,有小的好处,大有大的好处。
对于高维度而言,我们很难想象能够分割十维空间的分割平面之类的。
而且低纬度,也会出现问题。
我们虽然好像把维度从6维降低到了1维,但是我们实际上是用我们自己的“工人智能”简化运算了。
我们不要让自己的聪明的决策之类的想法进入到机器学习之中,否则会出现在测试集上貌似做的很好,然而在未知的数据集上会出现很多的误差。
我们用1000维来对数据进行拟合,但是我们真的有10000个以上的数据嘛?
注意有个结论是数据量大约为dvc的10倍以上,能够做到较好的机器学习结果、
12.4 Nonlinear Transformation - Structured Hypothesis Sets
我们的多项式的变换。我们定义0维的变化,为常数。
三维变换,里面包含二维变换和三次项。
因为每个高维的都可以改写成低维+高维数据。我们只要将w的高维部分都置为0,这样就实现了高维数据向低维数据的转换。
因此也说明了,高维的线性能够在低维以非线性等方式表示出。
我们叫这种图的包含方式表示称为结构。
dvc之间的关系很好理解。
Ein则是因为H增多了,我们的选择增多了,故维数越高,Ein越低。
我们关注的是out-of-sample error,即机器学习算法在训练集和测试级外的未知样本的表现情况。
显然,我们不要一开始就是用很高维度的变换,因为这会位于曲线的右端。
如果维数太低,也处于曲线翘起的部分。
当我们使用高维度变换的时候,我们很容易得到Ein约等于0。然而高维度基本上无法在out-of-sample上做什么事情。
安全做法是从低纬度开始,不满意慢慢往曲线的右边开始移动。
哲学思想,线性往往是描述现实世界的好方法。