MLaPP Chapter 7 Linear Regression 线性回归

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangxb35/article/details/54927870

7.1 Introduction

线性回归(Linear Regression)是统计学和机器学习中的主力军(work horse),当用核函数等做基函数扩充(basis function expansion)时,又可以模拟非线性关系。除了回归问题,如果用伯努利或者多努利分布代替高斯分布,那么就可以用来做分类问题(classification),下一章会讲。

7.2 Model specification 模型的确定

先来回顾第一章的 1.4.5 小节推导线性回归的内容。假设我们想用所有特征的线性组合来预测回归问题,可以写成下面的形式,

y(x)=wTx+ϵ=j=1Dwjxj+ϵ
其中 wTx 表示输入向量 x 和 权重向量 w 的内积, ϵ 表示 残差(residual error),即真实值和预测值之间的误差。一般我们会假设残差是服从高斯分布的,表示为 ϵN(μ,σ2)

为了更清楚的表示线性回归和高斯分布之间的关系(吐槽:感觉其实书里还是没讲清楚),我们可以重写线性模型的形式,

p(y|x,θ)=N(y|μ(x),σ2(x))
假如我们考虑最简单的情况,令 μ(x)=wTx,σ2(x)=σ2 ,就会得到
p(y|x,θ)=N(y|wTx,σ2)
这个就是线性回归的形式。


为了让模型有拟合 x,y 之间非线性关系的能力,可以用一个基函数扩充(basic function expansion) ϕ(x) 来代替 x ,得到

p(y|x,θ)=N(y|wTϕ(x),σ2)
一种很简单的例子是多项式基函数(polynomial basic function),
ϕ(x)=[1,x,x2,,xd]

7.3 MLE (or least squares) 最大似然估计(最小二乘法)

线性回归里的参数是 θ=(w,σ) ,可以考虑用最大似然估计来求解,

θ^argmaxθlogp(D|θ)
若样本中所有的数据都是独立同分布的(iid,independent and identically distributed),那么可以构造似然函数,
(θ)logp(D|θ)=i=1Nlogp(yi|xi,θ)
也有别的构造方式,如考虑最大化似然函数,也等价于最小化负对数似然函数( NLL, negative log likelihood),
NLL(θ)i=1Nlogp(yi|xi,θ)

回忆一下高斯分布的公式,

N(x|μ,σ2)12πσ2e12σ2(xμ)2
代入似然函数得,
(θ)=i=1Nlog(12πσ2)12exp(12σ2(yiwTxi)2)=12σ2RSS(w)N2log(2πσ2)
其中 RSSNi=1(yiwTxi)2 表示 残差平方和(residual sum of squares),当然还有一个更重要的名字,叫做 均值方差(MSE, mean squared error),可以写成残差 2 范数的形式,
RSS(W)=ϵ22=i=1Nϵ2i
其中 ϵi=(yiwTxi) 表示残差。可以看出,

最大化线性回归的似然函数,就等价于最小化均值方差 RSS,即等价于最小二乘法。

7.3.1 Derivation of the MLE 最大似然估计推导

线性回归中的参数为权重向量 w ,可以直接通过矩阵的运算直接求解,下面推导一下。

首先考虑把要最小化的目标函数写成更容易微分的形式,

NLL(w)=12(yXw)T(yXw)=12wT(XTX)wwT(XTy)
对于这个公式的理解,首先我觉得应该是 RSS 而非 NLL ,其实应该是求导,而非直接等于,这样后面某些项才能转换和舍去,书里太不严谨了。

化简成这种形式以后,后面的两项

XTX=i=1NxixTi=i=1Nx2i,1xi,1xi,Dxi,1xi,Dx2i,1,XTy=i=1Nxiyi
其中 (xi)D×1 是列向量,表示第 i 个样本,矩阵 (XT)D×N=(x1,,xN) 是所有的样本,即训练集的矩阵表示。注意 N 是样本个数, D 是每个样本的特征维度。 (y)N×1 是列向量,表示样本的标签(label)。

利用矩阵求导的法则,且 XTX 为对称矩阵,有

g(w)=XTXwXTy
令导数为零,可以推导出 XTXw=XTy 那么最后要求的解就是
w^OLS=(XTX)1XTy
其中 OLS 表示 Ordinary least squares or OLS,指的就是原始的线性回归,即原始的最小二乘法。

7.3.2 Geometric interpretation 几何解释

考虑如果样本数量大于特征的维度,即 N>D ,那么矩阵 X 定义了维度 D 的一个线性子空间,第 j 列用 xj^RN 表示,所以 X=(x1^,,xD^) 。而我们想要找一个 y^RN 在此线性子空间中(lies in this linear subspace)而且尽可能地和 y 相近,即

argminy^span({x1^,,xD^})yy^2
因为 y^span(X) ,所以一定存在列向量 w=(w1,,wD)T ,即权重向量,使得
y^=w1x1^++wDxD^=Xw
为了最小化残差 yy^ ,需要令残差向量正交于 X 的每一列。即,对 j=1:D
x^j(yy^)=0XT(yXw)=0w=(XTX)1XTy
因此 y 的投影就是
y^=Xw^=X(XTX)1XTy
其实就等价于把 y 正交投影于 X 的列空间,投影矩阵 PX(XTX)1XT 又叫做帽子矩阵(hat matrix),因为只是给 y 戴上了一个帽子。

7.3.3 Convexity 凸性

在讨论最小二乘法的时候,可以看到 NLL 函数是像碗一样的形状,且有唯一的最小值,描述这种性质的属于叫做凸性。

设集合 S 为凸集的充要条件是,对任意 θ,θS ,有

λθ+(1λ)θS,λ[0,1]
从几何形状上来看,就是连接任意两点的直线,仍在在该集合形状内。从函数的角度来看,一个函数是 凸函数(convex function) 的定义是,此函数上面所有点(epigraph)构成一个凸集。等价地,也可以用下面的函数定义,即对函数 f(x) 的定义域上任意两点 x1,x2 ,恒有
f(λx1+(1λ)x2)λf(x1)+(1λ)f(x2)
当上述不等式是严格的(strict,就是不取等号),那么此函数也是严格的凸函数。

当函数 f(x) 是凸函数时,那么原函数 f(x) 就是 凹函数(concave function),两种函数的定义和性质正好都是相反的,但是都存在全局最值点,像碗(bowl)一样的形状。

由于严格的凸函数只有一个全局最优解,其二阶导数一定是正数,那么推广来看,一个多元可微函数为严格凸函数的充要条件是其海森矩阵为正定矩阵。

补充:海森矩阵(Hessian Matrix)是二阶偏导数矩阵,定义为 Hjk=f2(θ)θjθk ,其正定的充要条件为任意非零向量 v 都有 vTHv>0 成立。

7.4 Robust linear regression *

在线性回归中,残差服从高斯分布,那么最大化似然函数就等价于最小化残差平方和。然而这种模型对于 outliers 数据拟合地不好,因此我们需要更鲁棒性(robustness)的模型。一个代替高斯分布,能很好处理重尾(heavy tail)的分布式拉普拉斯分布(Laplace Distribution).

p(y|x,w,b)=Lap(y|wTx,b)exp(1b|ywTx|)
可以发现从最小化 2 范数(norm)变成了最小化 1 范数。

假如固定 b ,残差 riy)iwTx ,那么 NLL 可以写做

(w)=i|ri(w)|
因为这是一个非线性的目标函数,所以很难优化,可以用 split variable trick,把目标函数转化成线性函数,加上线性约束。这是一个 线性规划(linear program) 问题。

也可以选用 Huber loss function

LH(r,δ)={r2/2δ|r|δ2/2if |r|δif |r|>δ
当误差较小时,等价于 2 范数,误差较大时,等价于 1 范数,但是此函数处处可微,因此梯度更平滑,可以用牛顿法等计算而非线性规划。

7.5 Ridge regression 岭回归

单单用线性回归,很容易过拟合,所以岭回归(Ridge regression)试图在高斯分布前面再加上一个高斯先验,用最大后验估计来代替最大似然估计。当然,频率学派可以用正则化来解释先验,因此岭回归在这两个学派中都有很好的解释,应用也很广泛。

7.5.1 Basic idea 基本思路

书里给了个例子,发现大的权重 w 会导致拟合出的曲线很都用(wiggly),因为我们可以通过一个高斯先验来鼓励获得小的参数,

p(w)=jN(wj|0,τ2)
其中 1/τ2 控制了先验的力度(strength),和后面的权重衰减参数 λ 意思应该差不多吧!对应的最大后验估计变成了,
argmaxw[i=1NlogN(yi|w0+wTxi,σ2)+i=1DlogN(wj|0,τ2)]
很容易证明(你倒是证明给我看啊?!)出,上式等价于下面的代价函数
J(w)=1Ni=1N(yi(w0+wTxi))2+λw22
其中 λσ2/τ20,w22=jw2j=wTw ,前者叫权重衰减参数,后者是 2 范数的平方。上面损失函数的前一项是 MSE/NLL,后一项是复杂度惩罚(complexity penalty),或者叫做 2 正则项(regulrization)。

类似的,最小化代价函数可以得到

w^ridge=(λID+XTX)1XTy
易知,当 λ=0 时, w^ridge=w^OLS

此外,这里总结一下范数的一些见解。首先,范数可以是向量范数,也可以是矩阵范数。这里这讨论向量范数,其本质上是衡量向量之间距离的一种数学工具。若有向量 x=(x1,x2,,xn) ,那么常见的范数有

  • 0 normx0
    • 求解向量中绝对值不为零的元素的个数
    • 可以让参数 稀疏化
  • 1 normx1=ni=1|xi|
    • 向量各元素绝对值之和,Lasso 套索
    • 也鼓励参数稀疏化,但是比 0 范数更容易实现,因此用的更多
  • 2 normx2=ni=1x2i
    • 做模型复杂度的惩罚项,权重衰减,惩罚大的权重。
    • 岭回归(ridge regression)里有用到。

7.5.2 Numerically stable computation *

岭回归不仅有抑制过拟合的作用,而且在矩阵求逆的时候, (λID+XTX)1 会比 (XTX)1 得到的结果更稳定。后者其实是一个病态的矩阵(ill-condition),就是说,矩阵元素的微小改动(比如从0.9变成0.8999),都会造成结果的很大偏差。而岭回归实际上是丢失了无偏性,但是换来了矩阵求逆时的稳定性。在对角线元素加上一个 λ 会使得矩阵不会偏向于奇异矩阵,特征值也会变得很大。

7.5.3 Connection with PCA *

OLS 和 ridge regression 都是属于 shrinkage method。主成分回归(PCR Principle Components Regression)指的是先用主成分分析降维,然后再用岭回归做回归。

7.5.4 Regularization effects of big data

数据越多越好,越不容易过拟合。

7.6 Bayesian linear regression 贝叶斯线性回归

7.6.1 Computing the posterior 计算后验

7.6.2 Computing the posterior predictive

7.6.3 Bayesian inference when σ2 is unknown *

7.6.3.1 Conjugate prior 共轭先验

7.6.3.2 Uninformative prior

7.6.3.3 An example where Bayesian and frequentist inference coincide *

7.6.4 EB for linear regression (evidence procedure)

猜你喜欢

转载自blog.csdn.net/zhangxb35/article/details/54927870