上节课,我们主要介绍了在有 noise 的情况下,VC Bound 理论仍然是成立的。同时,介绍了不同的 error measure 方法。本节课介绍机器学习最常见的一种算法: Linear Regression。

一、线性回归问题

在之前的 Linear Classification 课程中,讲了信用卡发放的例子,利用机器学习来决定是否给用户发放信用卡。本节课仍然引入信用卡的例子,来解决给用户发放信用卡额度的问题,这就是一个线性回归(Linear Regression)问题。

linear regression residual R 画图 linear regression line_权重


令用户特征集为 d 维的 linear regression residual R 画图 linear regression line_权重_02,加上常数项,维度为 d+1,与权重 w 的线性组合即为 Hypothesis ,记为 h(x)。线性回归的预测函数取值在整个实数空间,这跟线性分类不同。

linear regression residual R 画图 linear regression line_逆矩阵_03

linear regression residual R 画图 linear regression line_权重_04


根据上图,在一维或者多维空间里,线性回归的目标是找到一条直线(对应一维)、一个平面(对应二维)或者更高维的超平面,使样本集中的点更接近它,也就是残留误差 Residuals 最小化。

一般最常用的错误测量方式是基于最小二乘法,其目标是计算误差的最小平方和对应的权重 w,即上节课介绍的 squared error:

linear regression residual R 画图 linear regression line_线性回归_05


这里提一点,最小二乘法可以解决线性问题和非线性问题。线性最小二乘法的解是 closed-form,即 linear regression residual R 画图 linear regression line_逆矩阵_06,而非线性最小二乘法没有 closed-form,通常用迭代法求解。本节课的解就是 closed-form 的。

二、线性回归算法

样本数据误差 linear regression residual R 画图 linear regression line_权重_07 是权重 linear regression residual R 画图 linear regression line_逆矩阵_08 的函数,因为 linear regression residual R 画图 linear regression line_权重_02linear regression residual R 画图 linear regression line_权重_10 都是已知的。我们的目标就是找出合适的 linear regression residual R 画图 linear regression line_逆矩阵_08,使 linear regression residual R 画图 linear regression line_权重_07

首先,运用矩阵转换的思想,将 linear regression residual R 画图 linear regression line_权重_07

linear regression residual R 画图 linear regression line_逆矩阵_14


然后,对于此类线性回归问题,linear regression residual R 画图 linear regression line_权重_15 一般是个凸函数。凸函数的话,我们只要找到一阶导数等于零的位置,就找到了最优解。那么,我们将 linear regression residual R 画图 linear regression line_线性回归_16 对每个 linear regression residual R 画图 linear regression line_机器学习_17 求偏导,偏导为零的 linear regression residual R 画图 linear regression line_权重_18,即为最优化的权重值分布。

linear regression residual R 画图 linear regression line_线性回归_19


根据梯度的思想,对 linear regression residual R 画图 linear regression line_线性回归_16

linear regression residual R 画图 linear regression line_线性回归_21


令偏导为零,最终可以计算出权重向量 linear regression residual R 画图 linear regression line_逆矩阵_08 为:

linear regression residual R 画图 linear regression line_线性回归_23


最终,我们推导得到了权重向量 linear regression residual R 画图 linear regression line_机器学习_24,这是上文提到的 closed-form 解。其中,linear regression residual R 画图 linear regression line_逆矩阵_25 又称为伪逆矩阵 pseudo-inverse,记为 linear regression residual R 画图 linear regression line_机器学习_26,维度是 linear regression residual R 画图 linear regression line_权重_27

但是,我们注意到,伪逆矩阵中有逆矩阵的计算,逆矩阵 linear regression residual R 画图 linear regression line_逆矩阵_28

三、泛化问题

现在,可能有这样一个疑问,就是这种求解权重向量的方法是机器学习吗?或者说这种方法满足我们之前推导 VC Bound,即是否泛化能力强 linear regression residual R 画图 linear regression line_权重_29

linear regression residual R 画图 linear regression line_逆矩阵_30


有两种观点:

  1. 这不属于机器学习范畴。
  1. 这种 closed-form 解的形式跟一般的机器学习算法不一样。
  2. 在计算最小化误差的过程中没有用到迭代。
  1. 这属于机器学习范畴。
  1. 从结果上看,linear regression residual R 画图 linear regression line_机器学习_31linear regression residual R 画图 linear regression line_逆矩阵_32
  2. 实际上在计算逆矩阵的过程中,也用到了迭代。

其实,只从结果来看,这种方法的确实现了机器学习的目的。下面通过介绍一种更简单的方法,证明 linear regression 问题是可以通过线下最小二乘法方法计算得到好的 linear regression residual R 画图 linear regression line_权重_07linear regression residual R 画图 linear regression line_机器学习_34

linear regression residual R 画图 linear regression line_逆矩阵_35


首先,我们根据平均误差的思想,把 linear regression residual R 画图 linear regression line_权重_36 写成如图的形式,经过变换得到:

linear regression residual R 画图 linear regression line_线性回归_37

我们称 linear regression residual R 画图 linear regression line_权重_38

下面从几何图形的角度来介绍帽子矩阵H的物理意义。

linear regression residual R 画图 linear regression line_机器学习_39

图中,y 是 N 维空间的一个向量,粉色区域表示输入矩阵 X 乘以不同权值向量 w 所构成的空间,根据所有 w 的取值,预测输出都被限定在粉色的空间中。向量 linear regression residual R 画图 linear regression line_机器学习_40

机器学习的目的是在粉色空间中找到一个 linear regression residual R 画图 linear regression line_机器学习_40 ,使它最接近真实的 y,那么我们只要将 y 在粉色空间上作垂直投影即可,投影得到的 linear regression residual R 画图 linear regression line_机器学习_40 即为在粉色空间内最接近 y 的向量。这样即使平均误差 linear regression residual R 画图 linear regression line_机器学习_43

从图中可以看出,linear regression residual R 画图 linear regression line_机器学习_40 是 y 的投影,已知 linear regression residual R 画图 linear regression line_逆矩阵_45,那么 H 表示的就是将 y 投影到 linear regression residual R 画图 linear regression line_机器学习_40 的一种操作。图中绿色的箭头 linear regression residual R 画图 linear regression line_权重_47 是向量 y 与linear regression residual R 画图 linear regression line_机器学习_40 相减,linear regression residual R 画图 linear regression line_权重_47 垂直于粉色区域。已知 linear regression residual R 画图 linear regression line_权重_50 那么 I-H 表示的就是将 y 投影到 linear regression residual R 画图 linear regression line_权重_47

这里 trace(I-H) 称为 I-H 的迹,值为 N-(d+1)。这条性质很重要,一个矩阵的 trace 等于该矩阵的所有特征值 (Eigenvalues) 之和。下面给出简单证明:

linear regression residual R 画图 linear regression line_线性回归_52
linear regression residual R 画图 linear regression line_机器学习_53
linear regression residual R 画图 linear regression line_逆矩阵_54
linear regression residual R 画图 linear regression line_逆矩阵_55

介绍下该 I-H 这种转换的物理意义:原来有一个有 N 个自由度的向量 y,投影到一个有 d+1 维的空间 x(代表一列的自由度,即单一输入样本的参数,如图中粉色区域),而余数剩余的自由度最大只有 N-(d+1) 种。

在存在 noise 的情况下,上图变为:

linear regression residual R 画图 linear regression line_机器学习_56


图中,粉色空间的红色箭头是目标函数 f(x),虚线箭头是 noise,可见,真实样本输出 y 由 f(x) 和 noise 相加得到。由上面推导,已知向量 y 经过 I-H 转换为 linear regression residual R 画图 linear regression line_权重_57,而 noise 与 y 是线性变换关系,那么根据线性函数知识,我们推导出noise 经过 I-H 也能转换为 linear regression residual R 画图 linear regression line_权重_57。则对于样本平均误差,有下列推导成立:

linear regression residual R 画图 linear regression line_机器学习_59


linear regression residual R 画图 linear regression line_线性回归_60

同样,对linear regression residual R 画图 linear regression line_机器学习_34有如下结论:
linear regression residual R 画图 linear regression line_权重_62

这个证明有点复杂,但是我们可以这样理解:linear regression residual R 画图 linear regression line_逆矩阵_63linear regression residual R 画图 linear regression line_逆矩阵_64 形式上只差了 linear regression residual R 画图 linear regression line_线性回归_65 项,从哲学上来说, linear regression residual R 画图 linear regression line_逆矩阵_63 是我们看得到的样本的平均误差,如果有 noise,我们把预测往 noise 那边偏一点,让 linear regression residual R 画图 linear regression line_逆矩阵_63 好看一点点,所以减去 linear regression residual R 画图 linear regression line_线性回归_65 项。那么同时,新的样本 linear regression residual R 画图 linear regression line_逆矩阵_64 是我们看不到的,如果 noise 在反方向,那么 linear regression residual R 画图 linear regression line_逆矩阵_64 就应该加上 linear regression residual R 画图 linear regression line_线性回归_65

我们把 linear regression residual R 画图 linear regression line_逆矩阵_63linear regression residual R 画图 linear regression line_逆矩阵_64

linear regression residual R 画图 linear regression line_权重_74


当 N 足够大时,linear regression residual R 画图 linear regression line_逆矩阵_63linear regression residual R 画图 linear regression line_逆矩阵_64 逐渐接近,满足 linear regression residual R 画图 linear regression line_权重_77,且数值保持在 noise level。这就类似 VC 理论,证明了当 N 足够大的时候,这种线性最小二乘法是可以进行机器学习的,算法有效!

四、Linear Regression方法解决Linear Classification问题

之前介绍的 Linear Classification 问题使用的 Error Measure 方法用的是 0/1 error,那么 Linear Regression 的 squared error 是否能够应用到 Linear Classification 问题?

linear regression residual R 画图 linear regression line_线性回归_78


下图展示了两种错误的关系,一般情况下,squared error 曲线在 0/1 error 曲线之上。即 linear regression residual R 画图 linear regression line_逆矩阵_79

linear regression residual R 画图 linear regression line_线性回归_80


根据之前的 VC 理论,linear regression residual R 画图 linear regression line_机器学习_34

linear regression residual R 画图 linear regression line_机器学习_82


从图中可以看出,用 linear regression residual R 画图 linear regression line_机器学习_83 代替 linear regression residual R 画图 linear regression line_线性回归_84linear regression residual R 画图 linear regression line_机器学习_34

五、总结

本节课,我们主要介绍了 Linear Regression。首先,我们从问题出发,想要找到一条直线拟合实际数据值;然后,我们利用最小二乘法,用解析形式推导了权重 w 的 closed-form 解;接着,用图形的形式得到 linear regression residual R 画图 linear regression line_机器学习_86