1、Linear Regression Problem
我们之前的课程讲到我们在二元分类情况下证明的VC bound是可以用在不同的error measure和有noise的情形,当然也包括我们regression。想象我们已经有了bound,那么演算法上我们应该怎么设计呢?
回到我们之前讲的银行发信用卡的例子,如果今天银行不是要决定给不给用户发信用卡,而是要决定给某个用户多少的额度,那么这就不是一个是非题了,输出的不是+1或者-1而是一个具体的实数,因此我们可以看到regression问题的特点就是其输出空间是整个实数,当然在信用卡这个问题上,输出空间为正实数。那么当输出空间为实数时,我们的hypothesis会长什么样子呢?
比如我们有顾客的一部分资料,我们将这些资料做一个加权处理,算一个分数,用这个分数来做运算。我们希望得出的这个分数与我们决定给用户的信用卡额度十分接近,这就与感知机不同了,因为感知机在算出分数后还要决定它是+1还是-1。
linear regression的hypothesis的图形如下:(左边输入空间为一维,右边输入空间为为二维)
可以看到,回归分析的目的是找出一条线或者一个平面来描述资料点。这些红色的部分我们叫做误差或者余数(residuals)。
传统上,我们要衡量余数小不小,一般用squared error进行错误衡量。
注意我们现在讨论的是可能有noise的环境,除了输入x要从某个distribution出来,我们的输出y也要从某个distribution出来,然后两者结合起来,我们才可以说(x,y)是服从联合概率分布的。
接下来我们就要考虑怎么最小化Ein。
2、Linear Regression Algorithm
我们的目标是找到合适的w使得Ein(w)越小越好。为了方便计算,首先将向量w转置乘向量x转化为向量x转置乘向量w(向量内积符合交换律),再将平方求和转化为向量的模的平方,最后整理公式(d+1是因为加了x0的一列向量)。
我们发现Ein关于w的图形为一个连续可微的凸函数(注意函数凹凸性与同济版高数书中的函数凹凸性相反),因此我们要找到最小的Ein,即找到对w梯度为0的位置,记为wLin。
将Ein(w)展开(Xw为一个列向量,y也为一个列向量,故其差为一个列向量,该列向量的模的平方为其内积,因此可以表示为向量转置乘向量的形式 )
假设为w只有一个维度,展开时如左图;当w为一个向量时,展开如右图(对应左图)。
我们现在想要找到梯度为0的点,如果A矩阵可逆,很容易可以得到wLin。
pseudo-inverse是伪逆,因为输入矩阵X(维度为(d+1)*N)很少情况下是方阵(N=d+1)。但这种伪逆矩阵的形式和方阵中的逆矩阵具有很多相似的性质,因此才有此名。矩阵A一般情况下是可逆的,因为机器学习过程中,通常都满足N>>d+1,因此A中存在足够的自由度使其满足可逆的条件。
当矩阵A不可逆时,Ein的式子可看做线性代数中Aw=b求w的问题,实际上此时可以得到许多满足条件的解,只需要通过其他方式定义伪逆矩阵,然后求出满足条件的wLin。
总结一下linear Regression的演算法:
3、Generalization Issus
我们可能会想,这种求解权重向量的方法真的是机器学习嘛?有两种观点;1、这不是机器学习,更接近于一种分析,并且在求解过程中没有相对提升Ein或者Eout的准确率;2、这是机器学习,因为从结果上来看,Ein和Eout都实现了最小化,且在实际计算过程中,求解伪逆矩阵并不是一步得到结果,而是需要几次迭代。总结来说,只要Eout(w)结果足够好,那么学习就发生了。
下面我们来证明如何保证Eout足够小,首先从Ein出发,首先观察Ein的平均,不断从整体样本空间中抽取样本集,计算Ein,最后算所有Ein的平均值。Ein的平均大概等于关于噪音的一个式子。(PS:w.r.t=with regard to;noise level为噪音)
Ein(wLin)经过推导得到:
称为帽子矩阵(hat matrix),简称H矩阵。我们从几何图形来理解H矩阵的意义:
y是实际输出向量,粉色区域表示输入矩阵X乘以不同权值向量w所构成的空间,根据w的取值,预测的输出都被约束在粉色区域内。
机器学习的目的是在粉色区域中找到一个预测输出y^使它接近最真实的y,因此我们要求的y^就是y在该粉色区域上的投影,因此有y-y^⊥粉色区域。假设y^=Hy(H表示将y投影到粉色区域为y^),则有(I-H)y=y-y^。
PS:trace(I-H)=N-(d+1)的物理意义— —原来有一个有N个自由度的向量,现在要把它投影到d+1维的空间,取余数,剩下的自由度最多只有N-(d+1)个。
在存在noise的情况下:
图中,粉色空间的红色箭头是目标函数f(x),虚线箭头是noise,可见,真实样本输出y由f(x)和noise相加得到。由上面推导,已知向量y经过I-H转换为y-y^,而noise与y是线性变换关系,那么根据线性函数知识,我们推导出noise经过I-H也能转换为y-y^。
那么就有
对于Eout的证明比较复杂,不做探讨。
当N->∞时,Ein的平均和Eout的平均都会趋近于noise level的值;Ein的平均和Eout的平均相差2(d+1)/N。在由此我们可以得出Ein的平均和Eout的平均的图形
当N足够大时,Ein和Eout逐渐接近,满足Ein≈Eout,且数值保持noise level,这就类似VC理论,证明了当N足够大时linear regression是可以进行机器学习的。
4、Linear Regression for Binary Classification
linear classification和linear regression到底有什么区别和相同之处呢?
有人可能会想,既然linear regression这么好解,+1和-1也属于实数集中的一部分,如果我们将线性回归输出的正实数记为+1,负实数记为-1,那么我们能否用求线性回归的方法来求二元分类问题呢?听起来好像很有道理,但这个道理不一定是数学上的道理。
我们发现linear classification和linear regression最大的差别就是就是使用的error function不同。下面是当y=+1和-1时err与预测输出值得关系:
我们发现,不管我们的预测输出值是什么,平方的错误一定比0/1的错误来的大。
结合之前的VC理论
不难看出,linear classification由此得到一个更宽松的上界,但却更有效率。也就是说用linear regression可以解决linear classification的问题,且效果可能不会太差。