假设数据集为:

线性回归 - 图1%2C(x_2%2C%20y_2)%2C%5Ccdots%2C(x_N%2C%20y_N)%5C%7D%0A#card=math&code=%5Cmathcal%7BD%7D%3D%5C%7B%28x_1%2C%20y_1%29%2C%28x_2%2C%20y_2%29%2C%5Ccdots%2C%28x_N%2C%20y_N%29%5C%7D%0A&height=20&width=267)

后面我们记:

线性回归 - 图2%5ET%2CY%3D(y_1%2Cy_2%2C%5Ccdots%2Cy_N)%5ET%0A#card=math&code=X%3D%28x_1%2Cx_2%2C%5Ccdots%2Cx_N%29%5ET%2CY%3D%28y_1%2Cy_2%2C%5Ccdots%2Cy_N%29%5ET%0A)

线性回归假设:

线性回归 - 图3%3Dw%5ETx%0A#card=math&code=f%28w%29%3Dw%5ETx%0A)

最小二乘法

对这个问题,采用二范数定义的平方误差来定义损失函数:

线性回归 - 图4%3D%5Csum%5Climits%7Bi%3D1%7D%5EN%7C%7Cw%5ETx_i-y_i%7C%7C%5E2_2%0A#card=math&code=L%28w%29%3D%5Csum%5Climits%7Bi%3D1%7D%5EN%7C%7Cw%5ETx_i-y_i%7C%7C%5E2_2%0A)

展开得到(向量):

线性回归 - 图5

最小化这个值的 线性回归 - 图6

线性回归 - 图7%26%5Clongrightarrow%5Cfrac%7B%5Cpartial%7D%7B%5Cpartial%20w%7DL(w)%3D0%5Cnonumber%5C%5C%0A%26%5Clongrightarrow2X%5ETX%5Chat%7Bw%7D-2X%5ETY%3D0%5Cnonumber%5C%5C%0A%26%5Clongrightarrow%20%5Chat%7Bw%7D%3D(X%5ETX)%5E%7B-1%7DX%5ETY%3DX%5E%2BY%0A%5Cend%7Balign%7D%0A#card=math&code=%5Cbegin%7Balign%7D%0A%5Chat%7Bw%7D%3D%5Cmathop%7Bargmin%7D%5Climits_wL%28w%29%26%5Clongrightarrow%5Cfrac%7B%5Cpartial%7D%7B%5Cpartial%20w%7DL%28w%29%3D0%5Cnonumber%5C%5C%0A%26%5Clongrightarrow2X%5ETX%5Chat%7Bw%7D-2X%5ETY%3D0%5Cnonumber%5C%5C%0A%26%5Clongrightarrow%20%5Chat%7Bw%7D%3D%28X%5ETX%29%5E%7B-1%7DX%5ETY%3DX%5E%2BY%0A%5Cend%7Balign%7D%0A&height=90&width=372)

这个式子中 线性回归 - 图8%5E%7B-1%7DX%5ET#card=math&code=%28X%5ETX%29%5E%7B-1%7DX%5ET) 又被称为伪逆。对于行满秩或者列满秩的 线性回归 - 图9,可以直接求解,但是对于非满秩的样本集合,需要使用奇异值分解(SVD)的方法,对 线性回归 - 图10 求奇异值分解,得到

线性回归 - 图11

于是:

线性回归 - 图12

在几何上,最小二乘法相当于模型(这里就是直线)和试验值的距离的平方求和,假设我们的试验样本张成一个 线性回归 - 图13 维空间(满秩的情况):线性回归 - 图14#card=math&code=X%3DSpan%28x_1%2C%5Ccdots%2Cx_N%29),而模型可以写成 线性回归 - 图15%3DX%5Cbeta#card=math&code=f%28w%29%3DX%5Cbeta),也就是 线性回归 - 图16 的某种组合,而最小二乘法就是说希望 线性回归 - 图17 和这个模型距离越小越好,于是它们的差应该与这个张成的空间垂直:

线性回归 - 图18%3D0%5Clongrightarrow%5Cbeta%3D(X%5ETX)%5E%7B-1%7DX%5ETY%0A#card=math&code=X%5ET%5Ccdot%28Y-X%5Cbeta%29%3D0%5Clongrightarrow%5Cbeta%3D%28X%5ETX%29%5E%7B-1%7DX%5ETY%0A)

噪声为高斯分布的 MLE

对于一维的情况,记 线性回归 - 图19#card=math&code=y%3Dw%5ETx%2B%5Cepsilon%2C%5Cepsilon%5Csim%5Cmathcal%7BN%7D%280%2C%5Csigma%5E2%29),那么 线性回归 - 图20#card=math&code=y%5Csim%5Cmathcal%7BN%7D%28w%5ETx%2C%5Csigma%5E2%29)。代入极大似然估计中:

线性回归 - 图21%3D%5Clog%20p(Y%7CX%2Cw)%26%3D%5Clog%5Cprod%5Climits%7Bi%3D1%7D%5ENp(y_i%7Cx_i%2Cw)%5Cnonumber%5C%5C%0A%26%3D%5Csum%5Climits%7Bi%3D1%7D%5EN%5Clog(%5Cfrac%7B1%7D%7B%5Csqrt%7B2%5Cpi%5Csigma%7D%7De%5E%7B-%5Cfrac%7B(yi-w%5ETx_i)%5E2%7D%7B2%5Csigma%5E2%7D%7D)%5C%5C%0A%5Cmathop%7Bargmax%7D%5Climits_wL(w)%26%3D%5Cmathop%7Bargmin%7D%5Climits_w%5Csum%5Climits%7Bi%3D1%5EN%7D(yi-w%5ETx_i)%5E2%0A%5Cend%7Balign%7D%0A#card=math&code=%5Cbegin%7Balign%7D%0AL%28w%29%3D%5Clog%20p%28Y%7CX%2Cw%29%26%3D%5Clog%5Cprod%5Climits%7Bi%3D1%7D%5ENp%28yi%7Cx_i%2Cw%29%5Cnonumber%5C%5C%0A%26%3D%5Csum%5Climits%7Bi%3D1%7D%5EN%5Clog%28%5Cfrac%7B1%7D%7B%5Csqrt%7B2%5Cpi%5Csigma%7D%7De%5E%7B-%5Cfrac%7B%28yi-w%5ETx_i%29%5E2%7D%7B2%5Csigma%5E2%7D%7D%29%5C%5C%0A%5Cmathop%7Bargmax%7D%5Climits_wL%28w%29%26%3D%5Cmathop%7Bargmin%7D%5Climits_w%5Csum%5Climits%7Bi%3D1%5EN%7D%28y_i-w%5ETx_i%29%5E2%0A%5Cend%7Balign%7D%0A)

这个表达式和最小二乘估计得到的结果一样。

权重先验也为高斯分布的 MAP

取先验分布 线性回归 - 图22#card=math&code=w%5Csim%5Cmathcal%7BN%7D%280%2C%5Csigma_0%5E2%29)。于是:

线性回归 - 图23%26%3D%5Cmathop%7Bargmax%7D%5Climits_wp(Y%7Cw)p(w)%5Cnonumber%5C%5C%0A%26%3D%5Cmathop%7Bargmax%7D%5Climits_w%5Clog%20p(Y%7Cw)p(w)%5Cnonumber%5C%5C%0A%26%3D%5Cmathop%7Bargmax%7D%5Climits_w(%5Clog%20p(Y%7Cw)%2B%5Clog%20p(w))%5Cnonumber%5C%5C%0A%26%3D%5Cmathop%7Bargmin%7D%5Climits_w%5B(y-w%5ETx)%5E2%2B%5Cfrac%7B%5Csigma%5E2%7D%7B%5Csigma_0%5E2%7Dw%5ETw%5D%0A%5Cend%7Balign%7D%0A#card=math&code=%5Cbegin%7Balign%7D%0A%5Chat%7Bw%7D%3D%5Cmathop%7Bargmax%7D%5Climits_wp%28w%7CY%29%26%3D%5Cmathop%7Bargmax%7D%5Climits_wp%28Y%7Cw%29p%28w%29%5Cnonumber%5C%5C%0A%26%3D%5Cmathop%7Bargmax%7D%5Climits_w%5Clog%20p%28Y%7Cw%29p%28w%29%5Cnonumber%5C%5C%0A%26%3D%5Cmathop%7Bargmax%7D%5Climits_w%28%5Clog%20p%28Y%7Cw%29%2B%5Clog%20p%28w%29%29%5Cnonumber%5C%5C%0A%26%3D%5Cmathop%7Bargmin%7D%5Climits_w%5B%28y-w%5ETx%29%5E2%2B%5Cfrac%7B%5Csigma%5E2%7D%7B%5Csigma_0%5E2%7Dw%5ETw%5D%0A%5Cend%7Balign%7D%0A)

这里省略了 线性回归 - 图24线性回归 - 图25#card=math&code=p%28Y%29)和 线性回归 - 图26 没有关系,同时也利用了上面高斯分布的 MLE的结果。

我们将会看到,超参数 线性回归 - 图27的存在和下面会介绍的 Ridge 正则项可以对应,同样的如果将先验分布取为 Laplace 分布,那么就会得到和 L1 正则类似的结果。

正则化

在实际应用时,如果样本容量不远远大于样本的特征维度,很可能造成过拟合,对这种情况,我们有下面三个解决方式:

  1. 加数据
  2. 特征选择/提取(降低特征维度)如 PCA 算法。
  3. 正则化

正则化一般是在损失函数(如上面介绍的最小二乘损失)上加入正则化项(表示模型的复杂度对模型的惩罚),下面我们介绍一般情况下的两种正则化框架。

线性回归 - 图28

下面对最小二乘误差分别分析这两者的区别。

L1 Lasso

L1正则化可以引起稀疏解。

从最小化损失的角度看,由于 L1 项求导在0附近的左右导数都不是0,因此更容易取到0解。

从另一个方面看,L1 正则化相当于:

线性回归 - 图29%5C%5C%0As.t.%20%7C%7Cw%7C%7C_1%5Clt%20C%0A#card=math&code=%5Cmathop%7Bargmin%7D%5Climits_wL%28w%29%5C%5C%0As.t.%20%7C%7Cw%7C%7C_1%5Clt%20C%0A)

我们已经看到平方误差损失函数在 线性回归 - 图30 空间是一个椭球,因此上式求解就是椭球和 线性回归 - 图31的切点,因此更容易相切在坐标轴上。

L2 Ridge(岭回归,权值衰减)

线性回归 - 图32%2B%5Clambda%20w%5ETw%26%5Clongrightarrow%5Cfrac%7B%5Cpartial%7D%7B%5Cpartial%20w%7DL(w)%2B2%5Clambda%20w%3D0%5Cnonumber%5C%5C%0A%26%5Clongrightarrow2X%5ETX%5Chat%7Bw%7D-2X%5ETY%2B2%5Clambda%20%5Chat%20w%3D0%5Cnonumber%5C%5C%0A%26%5Clongrightarrow%20%5Chat%7Bw%7D%3D(X%5ETX%2B%5Clambda%20%5Cmathbb%7BI%7D)%5E%7B-1%7DX%5ETY%0A%5Cend%7Balign%7D%0A#card=math&code=%5Cbegin%7Balign%7D%0A%5Chat%7Bw%7D%3D%5Cmathop%7Bargmin%7D%5Climits_wL%28w%29%2B%5Clambda%20w%5ETw%26%5Clongrightarrow%5Cfrac%7B%5Cpartial%7D%7B%5Cpartial%20w%7DL%28w%29%2B2%5Clambda%20w%3D0%5Cnonumber%5C%5C%0A%26%5Clongrightarrow2X%5ETX%5Chat%7Bw%7D-2X%5ETY%2B2%5Clambda%20%5Chat%20w%3D0%5Cnonumber%5C%5C%0A%26%5Clongrightarrow%20%5Chat%7Bw%7D%3D%28X%5ETX%2B%5Clambda%20%5Cmathbb%7BI%7D%29%5E%7B-1%7DX%5ETY%0A%5Cend%7Balign%7D%0A&height=90&width=443)

可以看到,这个正则化参数和前面的 MAP 结果不谋而合。利用2范数进行正则化不仅可以是模型选择 线性回归 - 图33 较小的参数,同时也避免 线性回归 - 图34不可逆的问题。

和最小二乘法线性回归 - 图35多了一个对角阵

代码

http://www.hwater.site:8888/lab/tree/ML/linner_regression.ipynb

小结

线性回归模型是最简单的模型,但是麻雀虽小,五脏俱全,在这里,我们利用最小二乘误差得到了闭式解。同时也发现,在噪声为高斯分布的时候,MLE 的解等价于最小二乘误差,而增加了正则项后,最小二乘误差加上 L2 正则项等价于高斯噪声先验下的 MAP解,加上 L1 正则项后,等价于 Laplace 噪声先验。

传统的机器学习方法或多或少都有线性回归模型的影子:

  1. 线性模型往往不能很好地拟合数据,因此有三种方案克服这一劣势:
    1. 对特征的维数进行变换,例如多项式回归模型就是在线性特征的基础上加入高次项。
    2. 在线性方程后面加入一个非线性变换,即引入一个非线性的激活函数,典型的有线性分类模型如感知机。
    3. 对于一致的线性系数,我们进行多次变换,这样同一个特征不仅仅被单个系数影响,例如多层感知机(深度前馈网络)。
  2. 线性回归在整个样本空间都是线性的,我们修改这个限制,在不同区域引入不同的线性或非线性,例如线性样条回归和决策树模型。
  3. 线性回归中使用了所有的样本,但是对数据预先进行加工学习的效果可能更好(所谓的维数灾难,高维度数据更难学习),例如 PCA 算法和流形学习。