一.Linear Regression Problem
我们之前证明了VC bound的正确性,并且机器学习是能够学习到东西的,现在我们默认对于其他机器学习方法,该定理也是成立的(确实成立,但是我们不在进行证明)
我们在之前的二分类中已经确定哪些人能够发信用卡,那么现在我们就要决定那些要发信用卡的人,我们应该发他们多少额度的信用卡。
我们认为发的信用卡额度应该和他们的输入X相关,是他们的加权组合。
我们要对这些数据进行拟合寻找一条完美的直线,那就得要求数据点到这条直线的距离最短。
我们这里对Ein和Eout使用平方项误差(这是统计学家们研究出来的比较好的误差计算方法)
二.Linear Regression Algorithm
我们将上述Ein公式进行变形,将其变化成矩阵的形式方便我们之后的计算
接下来我们要做的就是尽量让Ein尽可能的小,这样根据霍夫丁定理Eout也会比较小,这样我们就能获得接近f的g。
我们发现上面的误差公式是一个凸函数,有极小值,我们只需要对误差公式求导让结果等于0我们就能获取最小的Ein.
向量的平方等于向量的内积,接下来我们对误差求导,qui向量求导的方法与普通变量相似。
对上述导数求值,通常情况下,N>>d+1,所以大部分情况下矩阵是有逆的,Wlin只有一个解,特需情况下矩阵没有逆,则存在无数的解。
对上述步骤进行总结,线型回归分为三个步骤:
三.Generalization Issure
我们可能会觉得上述方法并不是机器学习,因为它并没有学习的过程,它一步登天直接获取了结果,但是它有一个好的Ein,好的Eout,并且他的学习过程可能包含在求逆的过程中。
之前对二维分类讲过了VC Bound这里来讲一下为什么线型回归也能学到东西。
下图第一个式子是我们要证的式子,该式子说明Ein的平均值与数据量成反比,数据量越大我们求得的Ein平均越接近真实的误差水平,维数d越大我们所获得的Ein平均值虽然越小,但是远远偏离了真实误差,维数d越小Ein平均越接近真实误差。
y(hat)为我们求出的Win预测的y值,其与真实y值的差的平方即我们的Ein,我们将其变形如下图所示。
定性推导如下:
真实的值组成的向量Y是一个N维的向量,我们预测的向量Y(hat)=X·WLin其中X为所有数据组成的矩阵形状为为N*(d+1),WLin为(d+1)向量即Y(hat)是WLin对X的每列向量做的一个加权和。那么Y(hat)只会出现在X的列向量所能决定的那么空间里面我们称之为Span。
我们希望Y与Y(hat)的差距越小越好且当Y-Y(hat)垂直于Span时距离最小。
又由于Y(hat)=HY(H代表含义见上图),所以H的作用相当于将Y投影到Y(hat)
I-H就是将Y转换到Y-Y(hat)且其垂直于span
我们有一个结论I-H的迹=N-(d+1),物理解释为,我们将一个N个自由度的向量(即可以在N维空间任意转动)转换到一个由d+1个N为向量定义的空间,然后取余其自由度变为N-(d+1)即其转动范围被限定了。
假设f(x)为我们理想的函数,那么Y-Y(hat)为我们真实的noise(误差),我们对noise求span的垂直投影就会得到我们之前的误差投影,最后得到我们所证的公式。
注意:我们的理想的f(x)是条直线是不可能真正反映真实数据的(所以我们把真实数据和f(x)的误差的原因归根于noise)而Y和Y(hat)的误差是noise和h(x)和f(x)的误差之和,我们要做的就是让h(x)的误差等于noise求出f(x)。
Eout如下,推导较复杂不做推导。
H有如下性质:
有下图可知Eout与Ein的关系证明算法可以进行学习。
四.Linear Regression for Binary Classification
线型分类和线型回归有什么区别,我们是否能够用线型回归来进行线型分类呢?
我们发现线型分类的Y={-1,1}线型回归Y=R,既然{-1,1}属于R那么我们是能够用线型回归来进行分类的,当我们的Y为-1时,线型回归会返回一个负值,当Y为+1时,线型回归会返回一个正值,我们只要在结果上加一个sign即可。
那么他们有什么区别呢?
区别就在他们的误差函数,一个为01误差,一个为平方误差。 我们发现不论在y=1还是y=-1情况下,平方误差都在01误差上面。
将上述结果带入线型分类的Eout与Ein关系不等式中有:
这就引出了机器学习中一个非常重要的方法,就是用比较好算的但是比较宽松的误差函数来代替原先的比较精确的但是难算的误差函数来进行求解计算。