文章目录
1 回归与函数拟合
回归分析
:指研究两组相互依赖的随机变量 Y 1 , Y 2 , . . . Y n \pmb{Y}_1,\pmb{Y}_2,...\pmb{Y}_n Y1,Y2,...Yn(常称为因变量
) 和 X 1 , X 2 , . . . X m \pmb{X}_1,\pmb{X}_2,...\pmb{X}_m X1,X2,...Xm(常称为自变量
)之间关系的统计分析方法- 按照自变量的多少,分为
一元回归
和多元回归
- 按照因变量的多少,可分为
简单回归
和多重回归
- 按照自变量和因变量之间的关系类型,可分为
线性回归
和非线性回归
- 按照自变量的多少,分为
- 回归建立了自变量和因变量间的关系,因此常用于拟合函数曲线。机器学习中,回归属于监督学习,是一种预测性建模技术,说白了其实就是拟合一条曲线,利用它可以做回归任务,如线性回归;也能做分类任务,如逻辑回归(此时看作拟合分类平面曲线)
- 补充几个和函数曲线拟合相关的概念
拟合函数/估值函数
:给定来自真实分布的一批样本,拟合后得到的函数损失函数
和目标函数
:做函数拟合时,常将其转化为一个优化问题,认为和数据匹配越好的函数越优,这时需要一个指示拟合程度的指标来指导优化方向。给定训练样本,该指标是从模型参数到拟合程度的映射,称之为损失函数或目标函数。损失函数越小/目标函数越大,拟合得就越好注:能列出损失函数/目标函数,就意味着模型形式(函数参数数量,线性关系还是二次关系…)已经确定
残差
:针对某个样本而言, 拟合值与真实值的差。通常把关于的单个样本残差推广到整个训练集来构造损失函数或目标函数,有以下选择残差和
: 指所有训练样本拟合值与真实值的差值的和,有正有负会存在抵消的情况,不能反应真实误差残差绝对值和
:这可以解决残差和有正有负的问题,但是绝对值在后续的求导会异常麻烦残差的平方和
:这可以避免上述两个问题,运用广泛,它再取个均值就是机器学习中常用的 MSE 最小均方损失。其问题在于对异常值非常敏感,会被脏数据影响
最优化问题
:指给定目标函数/损失函数时,通过决定某些可选择的变量应该取何值,使所给定目标函数最大化/损失函数最小化的问题。根据有无约束条件,又分为无约束最优化问题
和约束最优化问题
最优化方法
:指解决最优化问题的方法
2 最小二乘法
最小二乘法/最小平方法
:一种最优化方法,在模型给定的情况下,使用样本残差的平方和作为损失函数,通过令偏导数为 0 直接求解无约束最优化问题,得到最优模型参数的解析解。最小二乘法可用于曲线拟合,也能通过最小化能量或最大化熵来表达其他一些优化问题
2.1 适用模型
- 最小二乘法是针对 线性模型 的 多元简单回归 任务设计的方法,即要求标签为 1 维,且模型对样本特征向量
x
i
=
[
x
1
,
x
2
,
.
.
.
,
x
m
]
⊤
\pmb{x}_i=[x_1,x_2,...,x_m]^\top
xi=[x1,x2,...,xm]⊤ 给出的预测为
f
(
x
,
w
)
=
w
0
+
w
1
x
1
+
w
2
x
2
+
.
.
.
+
w
m
x
m
f(\pmb{x,w}) = w_0+w_1x_1+w_2x_2+...+w_mx_m
f(x,w)=w0+w1x1+w2x2+...+wmxm 为了表示简便,通常增设一个
x
0
=
1
x_0 = 1
x0=1,模型表示为
f ( x , w ) = ∑ i = 0 m w i x i = x ⊤ w f(\pmb{x,w}) =\sum_{i=0}^m w_ix_i = \pmb{x^\top w} f(x,w)=i=0∑mwixi=x⊤w - 非线性模型无法使用最小二乘法估计参数,这是因为非线性的拟合函数里面可能有很复杂的结构,比如求和,积分,级数等,此时就算直接令导数为 0 得到方程,也可能很难求出方程的解析解
- 虽然针对线性模型设计,但并不意味着不能用最小二乘法优化非线性模型参数,可以先把非线性模型表示为非线性部分的线性组合,再使用最小二乘法,如 f ( x , w ) = w 0 + w 1 f 1 ( x ) + w 2 f 2 ( x ) + . . . + w m f m ( x ) f(\pmb{x,w}) = w_0+w_1f_1(\pmb{x})+w_2f_2(\pmb{x})+...+w_mf_m(\pmb{x}) f(x,w)=w0+w1f1(x)+w2f2(x)+...+wmfm(x) 其中每个 f i ( x ) f_i(\pmb{x}) fi(x) 都是非线性部分,比如多项式回归就属于这种情况
- 最小二乘法在求解时,只要有解,一定是全局最优解,参考:最小二乘法求解方程组为什么不会陷入局部最优解
2.2 求解方法
-
先从最常见的多元简单回归角度给出形式化描述:给定样本集
D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) } \mathcal{D} = \{(\pmb{x}_1,y_1),(\pmb{x}_2,y_2),...,(\pmb{x}_n,y_n)\} D={(x1,y1),(x2,y2),...,(xn,yn)}设模型为 f f f,样本特征向量 x i = [ 1 , x i 1 , x i 1 , . . . , x i m ] ⊤ \pmb{x}_i = [1,x_{i1},x_{i1},...,x_{im}]^\top xi=[1,xi1,xi1,...,xim]⊤,参数向量 w = [ w 0 , w 1 , w 2 , . . . , w m ] ⊤ \pmb{w} = [w_0,w_1,w_2,...,w_m]^\top w=[w0,w1,w2,...,wm]⊤,为表示简便,设 p = m + 1 , x i ∈ R p , y i ∈ R p=m+1,\pmb{x}_i\in\mathbb{R}^p,y_i\in \mathbb{R} p=m+1,xi∈Rp,yi∈R,样本集 X n × p = [ x 1 ⊤ , x 2 ⊤ , . . . , x n ⊤ ] ⊤ \pmb{X}_{n\times p}=[\pmb{x}_1^\top,\pmb{x}_2^\top,...,\pmb{x}_n^\top]^\top Xn×p=[x1⊤,x2⊤,...,xn⊤]⊤,标记集 y = [ y 1 , y 2 , . . . , y n ] ⊤ \pmb{y} = [y_1,y_2,...,y_n]^\top y=[y1,y2,...,yn]⊤,模型对于样本 x i \pmb{x}_i xi 给出预测 y ^ i = f ( x i , w ) = x i ⊤ w \hat{y}_i = f(\pmb{x}_i,\pmb{w})= \pmb{x_i^\top w} y^i=f(xi,w)=xi⊤w,对整个样本集有
X w = [ x 1 ⊤ x 2 ⊤ ⋮ x n ⊤ ] w = [ y ^ 1 y ^ 2 ⋮ y ^ n ] = y ^ \pmb{Xw} = \begin{bmatrix} \pmb{x}_1^\top \\ \pmb{x}_2^\top \\ \vdots \\ \pmb{x}_n^\top \\ \end{bmatrix} \pmb{w} = \begin{bmatrix} \hat{y}_1 \\ \hat{y}_2 \\ \vdots \\ \hat{y}_n \\ \end{bmatrix} = \pmb{\hat{y}} Xw= x1⊤x2⊤⋮xn⊤ w= y^1y^2⋮y^n =y^ 使用残差平方和作为损失函数,即 l ( w ) = ∑ i = 1 n ( f ( x i , w ) − y i ) 2 \mathcal{l}(\pmb{w})=\sum_{i=1}^n(f(\pmb{x}_i,\pmb{w})-y_i)^2 l(w)=∑i=1n(f(xi,w)−yi)2,求以下最优化问题
arg min w l ( w ) = arg min w ∑ i = 1 n ( f ( x i , w ) − y i ) 2 = arg min w ( X w − y ) ⊤ ( X w − y ) \argmin_{\mathbf{w}}\mathcal{l}(\pmb{w}) = \argmin_{\mathbf{w}}\sum_{i=1}^n(f(\pmb{x}_i,\pmb{w})-y_i)^2 = \argmin_{\mathbf{w}} (\pmb{X}\pmb{w}-\pmb{y})^\top(\pmb{X}\pmb{w}-\pmb{y}) wargminl(w)=wargmini=1∑n(f(xi,w)−yi)2=wargmin(Xw−y)⊤(Xw−y) 求解时,通过令偏导数为 0 直接计算,即令 ∂ l ( w ) ∂ w i = 0 \frac{\partial\mathcal{l}(\mathbf{w})}{\partial{w_i}}=0 ∂wi∂l(w)=0 直接解出参数 w i w_i wi -
我们可以对每个参数令偏导数为 0 来求解,但是这样计算量太大了,所以直接对参数向量求导。首先展开目标函数
( X w − y ) ⊤ ( X w − y ) = ( w ⊤ X ⊤ − y ⊤ ) ( X w − y ) = w ⊤ X ⊤ X w − w ⊤ X ⊤ y − y ⊤ X w + y ⊤ y = w ⊤ X ⊤ X w − 2 w ⊤ X ⊤ y + y ⊤ y (1) \begin{aligned} (\pmb{X}\pmb{w}-\pmb{y})^\top(\pmb{X}\pmb{w}-\pmb{y}) &= (\pmb{w^\top X^\top -y^\top})(\pmb{X}\pmb{w-y}) \\ &= \pmb{w^\top X^\top X w}-\pmb{w^\top X^\top y} - \pmb{y^\top X w} +\pmb{y^\top y} \\ &= \pmb{w^\top X^\top X w}-2\pmb{w^\top X^\top y} +\pmb{y^\top y} \\ \end{aligned} \tag{1} (Xw−y)⊤(Xw−y)=(w⊤X⊤−y⊤)(Xw−y)=w⊤X⊤Xw−w⊤X⊤y−y⊤Xw+y⊤y=w⊤X⊤Xw−2w⊤X⊤y+y⊤y(1) 注意这里 w ⊤ X ⊤ y \pmb{w^\top X^\top y} w⊤X⊤y 和 y ⊤ X w \pmb{y^\top}\pmb{X}\pmb{w} y⊤Xw 两项都是 1 × 1 1\times 1 1×1 的常数,可以合并。接下来求偏导数
∂ ( w ⊤ X ⊤ X w − 2 w ⊤ X ⊤ y + y ⊤ y ) ∂ w = ∂ ( w ⊤ X ⊤ X w − 2 w ⊤ X ⊤ y ) ∂ w = ∂ ( w ⊤ X ⊤ X w ) ∂ w − 2 ∂ ( w ⊤ X ⊤ y ) ∂ w (2) \begin{aligned} \frac{\partial(\pmb{w^\top X^\top X w}-2\pmb{w^\top X^\top y} +\pmb{y^\top y})}{\partial \pmb{w}} &= \frac{\partial(\pmb{w^\top X^\top X w}-2\pmb{w^\top X^\top y})}{\partial \pmb{w}} \\ &= \frac{\partial(\pmb{w^\top X^\top X w})}{\partial \pmb{w}} -2\frac{\partial(\pmb{w^\top X^\top y})}{\partial \pmb{w}} \end{aligned} \tag{2} ∂w∂(w⊤X⊤Xw−2w⊤X⊤y+y⊤y)=∂w∂(w⊤X⊤Xw−2w⊤X⊤y)=∂w∂(w⊤X⊤Xw)−2∂w∂(w⊤X⊤y)(2) 这里用到向量内积对列向量求导公式 ∂ f ( u ⊤ v ) ∂ x = ∂ f ( u ⊤ ) ∂ x v + ∂ f ( v ⊤ ) ∂ x u \frac{\partial f(\mathbf{u^\top v})}{\partial\mathbf{x}} = \frac{\partial f(\mathbf{u^\top})}{\partial\mathbf{x}}\pmb{v}+\frac{\partial f(\mathbf{v^\top})}{\partial\mathbf{x}}\pmb{u} ∂x∂f(u⊤v)=∂x∂f(u⊤)v+∂x∂f(v⊤)u,其中 u , v \mathbf{u,v} u,v 是向量,根据这个变形有- ∂ x ⊤ x ∂ x = 2 x \frac{\partial\mathbf{x^\top x}}{\partial\mathbf{x}} = 2\mathbf{x} ∂x∂x⊤x=2x
- ∂ x ⊤ A x ∂ x = ∂ x ⊤ ∂ x A x + ∂ x ⊤ A ⊤ ∂ x x = ( A ⊤ + A ) x \frac{\partial\mathbf{x^\top Ax}}{\partial\mathbf{x}} = \frac{\partial\mathbf{x^\top}}{\partial\mathbf{x}}\mathbf{Ax}+\frac{\partial\mathbf{x^\top A^\top}}{\partial\mathbf{x}}\mathbf{x} = (\mathbf{A^\top +A})\mathbf{x} ∂x∂x⊤Ax=∂x∂x⊤Ax+∂x∂x⊤A⊤x=(A⊤+A)x
利用这两个结论展开公式2,得到
∂ ( w ⊤ X ⊤ X w ) ∂ w − 2 ∂ ( w ⊤ X ⊤ y ) ∂ w = ( X ⊤ X + X ⊤ X ) w − 2 X ⊤ y = 2 ( X ⊤ X w − X ⊤ y ) (3) \begin{aligned} \frac{\partial(\pmb{w^\top X^\top X w})}{\partial \pmb{w}} -2\frac{\partial(\pmb{w^\top X^\top y})}{\partial \pmb{w}} &= (\pmb{X^\top X}+\pmb{X^\top X})\pmb{w} - 2\pmb{X^\top y} \\ &= 2(\pmb{X^\top}\pmb{X}\pmb{w} - \pmb{X^\top y} ) \end{aligned} \tag{3} ∂w∂(w⊤X⊤Xw)−2∂w∂(w⊤X⊤y)=(X⊤X+X⊤X)w−2X⊤y=2(X⊤Xw−X⊤y)(3) 令公式 3 为 0,有
X ⊤ X w ^ = X ⊤ y ⇒ w ^ = ( X ⊤ X ) − 1 X ⊤ y (4) \pmb{X^\top}\pmb{X}\pmb{\hat{w}} = \pmb{X^\top y} \Rightarrow \pmb{\hat{w}} = (\pmb{X^\top}\pmb{X})^{-1} \pmb{X^\top y} \tag{4} X⊤Xw^=X⊤y⇒w^=(X⊤X)−1X⊤y(4) 这就是最小二乘法得到的解,其中 ( X ⊤ X ) − 1 X ⊤ (\pmb{X^\top}\pmb{X})^{-1}\pmb{X^\top} (X⊤X)−1X⊤ 是 X \pmb{X} X 的 Moore-Penrose 广义逆,也叫伪逆,记为 X † \pmb{X}^\dagger X†
2.3 理解最小二乘法
2.3.1 函数图像角度
- 最小二乘法要最小化所有样本的预测值和真实值间误差的平方和,其主要适用于简单回归任务,线性模型因变量通常只有一维。一维特征空间中回归拟合一条曲线,样本误差可以看作样本特征点距离拟合函数曲线的
y
y
y 轴方向上的差距;二维特征空间中回归拟合一个曲面,样本误差可以看作样本特征点距离拟合曲面的
z
z
z 轴方向上的差距
常数函数模型
:对于最简单的情况,试想我们要测量一根铅笔的长度,为了保证精准,使用五把不同的尺子多次测量。这种情况下模型为常数函数 f ( x , w ) = w 0 f(\pmb{x,w}) = w_0 f(x,w)=w0 拟合函数 y = w 0 y=w_0 y=w0 是一条平行于 x x x 轴的直线,给定五个样本,各样本误差如下图绿色线所示所示
按最小二乘法原理,求 arg min w 0 ∑ i = 1 5 ( y i − w 0 ) 2 \argmin_{w_0} \sum_{i=1}^5 (y_i-w_0)^2 argminw0∑i=15(yi−w0)2,通过令偏导为 0 可以解出 w 0 ^ = y 1 + y 2 + . . . + y 5 5 \hat{w_0} = \frac{y_1+y_2+...+y_5}{5} w0^=5y1+y2+...+y5 恰是算数平均值,因此多次测量取平均来减小误差的方式是符合最小二乘原理的简单线性模型
:当真实分布是一条直线时,对于线性模型 f ( x , w ) = w 0 + w 1 x f(\pmb{x,w}) = w_0+w_1x f(x,w)=w0+w1x 拟合函数 y = w 0 + w 1 x y= w_0+w_1x y=w0+w1x 是一条直线,给定五个样本,如下图所示
紫色点代表真实标记 b = [ b 1 , b 2 , . . . , b 5 ] ⊤ \pmb{b} = [b_1,b_2,...,b_5]^\top b=[b1,b2,...,b5]⊤,绿色点代表拟合函数预测的样本标记 p = [ p 1 , p 2 , . . . , p 5 ] ⊤ \pmb{p} = [p_1,p_2,...,p_5]^\top p=[p1,p2,...,p5]⊤,二者间的误差 e = [ e 1 , e 2 , . . . , e 5 ] ⊤ = b − p \pmb{e} = [e_1,e_2,...,e_5]^\top = \pmb{b-p} e=[e1,e2,...,e5]⊤=b−p,我们要通过优化 w ^ \pmb{\hat{w}} w^ 来最小化 ∣ ∣ e ∣ ∣ 2 \vert\vert\pmb{e}\vert\vert_2 ∣∣e∣∣2,即 arg min w ( p − b ) ⊤ ( p − b ) = arg min w e ⊤ e = arg min w ∑ i = 1 5 e i 2 \argmin_{\mathbf{w}}(\pmb{p-b})^\top(\pmb{p-b}) = \argmin_{\mathbf{w}}\pmb{e}^\top\pmb{e} = \argmin_{\mathbf{w}}\sum_{i=1}^5e_i^2 wargmin(p−b)⊤(p−b)=wargmine⊤e=wargmini=1∑5ei2多项式函数
:对于更复杂数据分布情况,可以考虑做多项式回归,使用多项式模型 f ( x , w ) = w 0 + w 1 x + w 2 x 2 + . . . + w m x m f(\pmb{x,w}) = w_0+w_1x+w_2x^2 + ... + w_mx^m f(x,w)=w0+w1x+w2x2+...+wmxm 在做最小二乘计算前,先做数据预处理把 x x x 的各次方都算出来,这样就回到线性模型,另外通过选择不同的多项式函数(模型),能得到不同的拟合结果
也可以扩展到多维特征空间,比如拟合得到以下二维多项式模型
f ( x , w ) = 0 + x 1 + 2 x 1 2 + 3 x 2 + 4 x 1 x 2 + 5 x 1 2 x 2 + 6 x 2 2 + 7 x 1 x 2 2 + 8 x 1 2 x 2 2 f(\pmb{x,w}) = 0 + x_1 + 2x_1^2 + 3 x_2 + 4 x_1x_2 + 5 x_1^2x_2 + 6x_2^2 + 7x_1x_2^2 + 8x_1^2x_2^2 f(x,w)=0+x1+2x12+3x2+4x1x2+5x12x2+6x22+7x1x22+8x12x22
任意函数
:从理论上讲,最小二乘法可以拟合任何函数,因为我们可以通过泰勒展开,使用多项式函数逼近将任何函数曲线。泰勒展开式如下
f ( x ) = f ( x 0 ) + ( x − x 0 ) f ′ ( x 0 ) + ( x − x 0 ) 2 f ′ ′ ( x 0 ) 2 ! + . . . = ∑ n = 0 ∞ f ( n ) ( x 0 ) n ! ( x − x 0 ) n f(x) = f(x_0) +(x-x_0)f'(x_0) +(x-x_0)^2\frac{f''(x_0)}{2!} +... = \sum_{n=0}^\infin \frac{f^{(n)}(x_0)}{n!}(x-x_0)^n f(x)=f(x0)+(x−x0)f′(x0)+(x−x0)22!f′′(x0)+...=n=0∑∞n!f(n)(x0)(x−x0)n 为了简化表示,在原点 x 0 = 0 x_0=0 x0=0 处展开,有
f ( x ) = f ( 0 ) + x f ′ ( 0 ) + x 2 f ′ ′ ( 0 ) 2 ! + . . . = ∑ n = 0 ∞ f ( n ) ( 0 ) n ! x n f(x) = f(0) +xf'(0) +x^2\frac{f''(0)}{2!} +... = \sum_{n=0}^\infin \frac{f^{(n)}(0)}{n!}x^n f(x)=f(0)+xf′(0)+x22!f′′(0)+...=n=0∑∞n!f(n)(0)xn 于是问题又变形成了多项式回归的形式
2.3.2 向量空间投影角度
- 从向量空间投影的角度看,模型 X w ^ = y ^ \pmb{X}\pmb{\hat{w}}=\pmb{\hat{y}} Xw^=y^ 是对样本集 X \pmb{X} X 的列向量按 w ^ \pmb{\hat{w}} w^ 做线性组合,得到 X \pmb{X} X 列空间中的 y ^ \pmb{\hat{y}} y^。为了使得误差最小,这个 y ^ \pmb{\hat{y}} y^ 应当是真实标记向量 y \pmb{y} y 在 X \pmb{X} X 列空间中的投影
- 现实生活中常有这样的应用:根据一些测量值求解另一些值,比如根据卫星与几个基站的通讯延时测量其位置。这就是一个解方程的问题,假设一组观测数据可以构造一个线性方程(约束)。为了统一符号,假设每个测量样本为向量
x
∈
R
p
\pmb{x} \in\mathbb{R}^p
x∈Rp,参数向量
w
∈
R
p
\pmb{w}\in\mathbb{R}^p
w∈Rp,每个方程为
x
i
⊤
w
=
b
i
\pmb{x_i^\top w} = b_i
xi⊤w=bi,进而
n
n
n 组观测数据有
X
n
×
p
=
[
x
1
⊤
,
x
2
⊤
,
.
.
.
,
x
n
⊤
]
⊤
\pmb{X}_{n\times p}=[\pmb{x}_1^\top,\pmb{x}_2^\top,...,\pmb{x}_n^\top]^\top
Xn×p=[x1⊤,x2⊤,...,xn⊤]⊤ 和
b
=
[
b
1
,
b
2
,
.
.
.
,
b
n
]
⊤
\pmb{b} = [b_1,b_2,...,b_n]^\top
b=[b1,b2,...,bn]⊤,联立到得到方程组
X w = b \pmb{Xw} = \pmb{b} Xw=b为了提高准确性,一般情况下会收集很多数据,使得观测样本量(方程个数) n n n 远大于未知数个数 p p p,除非其中含有多达 n − p n-p n−p 个无效约束,否则这样的超定方程很难有解析解,因为我们没法对非方阵的 X \pmb{X} X 求逆来得到 w = X − 1 b \pmb{w} = \pmb{X}^{-1}\pmb{b} w=X−1b- 上一节中 “常数函数模型” 这个示例中,未知数个数 p = 1 p=1 p=1,由于每一个测量结果都有微小误差,除非 n n n 个观测中有 n − p = n − 1 n-p=n-1 n−p=n−1 个都无效,否则把他们联立起来就会出现冲突导致无解,反之有解就意味着所有测量结果一模一样
- 上一节中 “简单线性模型” 这个示例中,未知数有 w 0 , w 1 w_0,w_1 w0,w1 两个, p = 2 p=2 p=2,只需要两个观测样本就能确定一条直线,而把这 n = 5 n=5 n=5 个样本联立在一起就无解(找不到一条可以通过全部五个样本点的直线),除非其中 5 − 2 = 3 5-2=3 5−2=3 个样本无效(有四个样本共线)
- 这时我们可以不断地去除方程,直到剩下的方程组有解为止,但这会造成数据浪费。另一种更好的方法是找一个和已知数据 “误差最小” 的解,设这个近似解为
w
^
\pmb{\hat{w}}
w^,我们有
X w ^ = p \pmb{X\hat{w}} = \pmb{p} Xw^=p 这样得到的 p \pmb{p} p 处于 X \pmb{X} X 的列空间中,为了保证 “误差最小”, p \pmb{p} p 应当是 b \pmb{b} b 在 X \pmb{X} X 列空间 C ( X ) C(\pmb{X}) C(X) 中的投影,而误差 e = b − p \pmb{e=b-p} e=b−p 在 X \pmb{X} X 的左零空间 N ( X ) N(\pmb{X}) N(X) 中,与 C ( X ) C(\pmb{X}) C(X) 正交,如下图所示
图中 a a a 换成 x x x,灰色平面代表 X \pmb{X} X 的列空间 C ( X ) C(\pmb{X}) C(X),由于 e ⊥ C ( X ) \pmb{e}\bot C(\pmb{X}) e⊥C(X),有
X ⊤ e = 0 ⇒ X ⊤ ( b − p ) = 0 ⇒ X ⊤ ( b − X w ^ ) = 0 ⇒ X ⊤ b = X ⊤ X w ^ ⇒ w ^ = ( X ⊤ X ) − 1 X ⊤ b \begin{aligned} &\space\space\space\space\space\space\pmb{X^\top e} = \pmb{0} \\ &\Rightarrow \pmb{X^\top (b-p)} = \pmb{0} \\ &\Rightarrow \pmb{X^\top}(\pmb{b}-\pmb{X\hat{w}}) = \pmb{0} \\ &\Rightarrow \pmb{X^\top}\pmb{b} = \pmb{X^\top X\hat{w}}\\ &\Rightarrow \pmb{\hat{w}} = (\pmb{X^\top X})^{-1} \pmb{X^\top}\pmb{b}\\ \end{aligned} X⊤e=0⇒X⊤(b−p)=0⇒X⊤(b−Xw^)=0⇒X⊤b=X⊤Xw^⇒w^=(X⊤X)−1X⊤b 可见得到了和最小二乘法相同的解。这里我们其实推导了一遍子空间投影矩阵 P = X ( X ⊤ X ) − 1 X ⊤ \pmb{P} = \pmb{X}(\pmb{X^\top}\pmb{X})^{-1} \pmb{X^\top} P=X(X⊤X)−1X⊤,任意向量左乘此投影矩阵都会被投影到 C ( X ) C(\pmb{X}) C(X) 中,此情境中是 P b = p \pmb{Pb = p} Pb=p。关于向量空间投影,可以参考 线性代数拾遗(6)—— 向量空间投影与投影矩阵 - 这里其实可以联合 2.3.1 节对比看一下
- 2.3.1 节的视角下,我们是把总误差分到各个样本上,对应于 X \pmb{X} X 的行向量
- 本节视角下,我们是把总误差分到特征空间的各个维度上,对应于 X \pmb{X} X 的列向量
2.3.3 概率角度
- 如果把误差值看做来自一个概率分布的采样,那么当分布是正态分布时,使用最大似然估计得到的估计参数和使用最小二乘法解出的估计参数相同
- 我们可以把每个样本的
x
i
\pmb{x}_i
xi 的真实标记值看做是预测标记值
y
i
^
\hat{y_i}
yi^ 加上一个噪音
e
i
e_i
ei 得到,比如下图这个简单线性模型
假设误差 e i ∼ N ( 0 , σ 2 ) e_i\sim N(0,\sigma^2) ei∼N(0,σ2) 服从均值为 0 的高斯分布,则样本的真实标签 y i = y i ^ + e i = f ( x i , w ) + e i ∼ N ( f ( x i , w ) , σ 2 ) y_i = \hat{y_i}+e_i = f(\pmb{x}_i,\pmb{w})+e_i \sim N(f(\pmb{x}_i,\pmb{w}),\sigma^2) yi=yi^+ei=f(xi,w)+ei∼N(f(xi,w),σ2) 也服从高斯分布,有
p ( y i ∣ x i , w ) = 1 2 π σ exp ( − ( y i − f ( x i , w ) ) 2 2 σ 2 ) p(y_i|\pmb{x}_i,\pmb{w}) = \frac{1}{\sqrt{2\pi}\sigma}\text{exp}(-\frac{(y_i-f(\pmb{x}_i,\pmb{w}))^2}{2\sigma^2}) p(yi∣xi,w)=2πσ1exp(−2σ2(yi−f(xi,w))2) 由于样本独立同分布,整个样本集的似然函数为
L ( w ) = p ( y 1 ∣ x 1 , w ) p ( y 2 ∣ x 2 , w ) . . . . p ( y m ∣ x m , w ) = ∏ i = 1 m p ( y i ∣ x i , w ) L(\pmb{w}) =p(y_1|\pmb{x}_1,\pmb{w})p(y_2|\pmb{x}_2,\pmb{w})....p(y_m|\pmb{x}_m,\pmb{w}) = \prod\limits_{i=1}^mp(y_i|\pmb{x}_i,\pmb{w}) L(w)=p(y1∣x1,w)p(y2∣x2,w)....p(ym∣xm,w)=i=1∏mp(yi∣xi,w) 通过最大化对数似然函数的方式得到参数 w \pmb{w} w 的估计值,即
w ^ = arg max w ^ L ( w ) = arg max w ^ ∏ i = 1 m p ( y i ∣ x i , w ) = arg max w ^ ∑ i = 1 m log p ( y i ∣ x i , w ) = arg max w ^ ∑ i = 1 m ( log 1 2 π σ + log exp ( − ( y i − f ( x i , w ) ) 2 2 σ 2 ) ) = arg max w ^ ∑ i = 1 m − ( y i − f ( x i , w ) ) 2 2 σ 2 = arg min w ^ ∑ i = 1 m ( y i − f ( x i , w ) ) 2 \begin{aligned} \hat{\pmb{w}} &= \argmax\limits_{\mathbf{\hat{w}}} L(\pmb{w}) \\ &= \argmax\limits_{\mathbf{\hat{w}}}\prod_{i=1}^mp(y_i|\pmb{x}_i,\pmb{w}) \\ &= \argmax\limits_{\mathbf{\hat{w}}}\sum_{i=1}^m\log p(y_i|\pmb{x}_i,\pmb{w}) \\ &= \argmax\limits_{\mathbf{\hat{w}}}\sum_{i=1}^m(\log \frac{1}{\sqrt{2\pi}\sigma} +\log \text{exp}(-\frac{(y_i-f(\pmb{x}_i,\pmb{w}))^2}{2\sigma^2}))\\ &= \argmax\limits_{\mathbf{\hat{w}}}\sum_{i=1}^m -\frac{(y_i-f(\pmb{x}_i,\pmb{w}))^2}{2\sigma^2} \\ &= \argmin\limits_{\mathbf{\hat{w}}}\sum_{i=1}^m(y_i-f(\pmb{x}_i,\pmb{w}))^2 \end{aligned} w^=w^argmaxL(w)=w^argmaxi=1∏mp(yi∣xi,w)=w^argmaxi=1∑mlogp(yi∣xi,w)=w^argmaxi=1∑m(log2πσ1+logexp(−2σ2(yi−f(xi,w))2))=w^argmaxi=1∑m−2σ2(yi−f(xi,w))2=w^argmini=1∑m(yi−f(xi,w))2 得到了最小二乘法的目标,因此二者等价 - 我们认为,误差是由于随机的、无数的、独立的、多个因素造成的,因此根据中心极限定理,预测误差在大样本量的情况下确实服从正态分布,所以最小二乘法确实是合理的
2.4 A ⊤ A \pmb{A^\top A} A⊤A 的可逆性
-
综上所述,面对方程组 A x = b \pmb{Ax} = \pmb{b} Ax=b 我们如下处理
- A \pmb{A} A 可逆,直接 x = A − 1 b \pmb{x} = \pmb{A}^{-1}\pmb{b} x=A−1b 为精确解析解
- A \pmb{A} A 非方阵,两边同时左乘 A ⊤ \pmb{A^\top} A⊤ 变为 A ⊤ A x ^ = A ⊤ b \pmb{A^\top A\hat{x}} = \pmb{A^\top b} A⊤Ax^=A⊤b,这时 A ⊤ A \pmb{A^\top A} A⊤A 是一个方阵了,若其可逆则有 x ^ = ( A ⊤ A ) − 1 A ⊤ b \pmb{\hat{x}} = (\pmb{A^\top A})^{-1}\pmb{A^\top b} x^=(A⊤A)−1A⊤b。注意这里 x \pmb{x} x 和 x ^ \pmb{\hat{x}} x^ 不同,若 x \pmb{x} x 有解则 x ^ = x \pmb{\hat{x}=x} x^=x;若 x \pmb{x} x 无解则 x ^ \pmb{\hat{x}} x^ 是最小误差解
可见计算时要求方阵 A ⊤ A \pmb{A^\top A} A⊤A 必须可逆。本节说明以下结论
若 A \pmb{A} A 的列向量线性无关,则 A ⊤ A \pmb{A^\top A} A⊤A 可逆
-
证明需要用到结论:对于任意矩阵 A \pmb{A} A, A \pmb{A} A 列向量线性无关 ⇔ \Leftrightarrow ⇔ A x = 0 \pmb{Ax} = \pmb{0} Ax=0 只有零解。这个等价可从两个角度理解
- A x \pmb{Ax} Ax 是对 A \pmb{A} A 的列向量做线性组合,由于线性无关,要线性组合得到零向量只能是各项系数为 0
- 若 A \pmb{A} A 是方阵,可逆矩阵的零空间只有零向量
-
证明流程
- 首先证明
A
⊤
A
x
=
0
\pmb{A^\top Ax} = \pmb{0}
A⊤Ax=0 和
A
x
=
0
\pmb{Ax} = \pmb{0}
Ax=0 同解
A ⊤ A x = 0 ⇔ x ⊤ A ⊤ A x = 0 ⇔ ( A x ) ⊤ ( A x ) = 0 ⇔ A x = 0 \begin{aligned} &\space\space\space\space\space\space\pmb{A^\top Ax} = \pmb{0}\\ &\Leftrightarrow\pmb{x^\top A^\top Ax} = \pmb{0} \\ &\Leftrightarrow\pmb{(Ax)^\top}\pmb{(Ax)} = \pmb{0} \\ &\Leftrightarrow\pmb{Ax} = \pmb{0} \\ \end{aligned} A⊤Ax=0⇔x⊤A⊤Ax=0⇔(Ax)⊤(Ax)=0⇔Ax=0 - A \pmb{A} A 列向量线性无关 ⇒ A x = 0 \Rightarrow \pmb{Ax} = \pmb{0} ⇒Ax=0 只有零解 ⇒ A ⊤ A x = 0 \Rightarrow\pmb{A^\top Ax} = \pmb{0} ⇒A⊤Ax=0 只有零解 ⇒ A ⊤ A \Rightarrow \pmb{A^\top A} ⇒A⊤A 列向量线性无关 ⇒ A ⊤ A \Rightarrow \pmb{A^\top A} ⇒A⊤A 可逆
- 首先证明
A
⊤
A
x
=
0
\pmb{A^\top Ax} = \pmb{0}
A⊤Ax=0 和
A
x
=
0
\pmb{Ax} = \pmb{0}
Ax=0 同解
-
注意这里 A \pmb{A} A 放在回归任务的语境下就是上面的 X \pmb{X} X,其每一行是一个样本的特征向量,每一列对应一个特征, A \pmb{A} A 的列向量不是线性无关说明特征设计有问题,出现了冗余特征
2.5 局限性
- 要求
X
⊤
X
\pmb{X^\top X}
X⊤X 必须可逆(梯度下降无此限制)
若不可逆,可以通过对样本数据进行整理,去掉冗余特征,使其变为可逆矩阵
- 样本特征维数很大时,
(
X
⊤
X
)
−
1
(\pmb{X^\top X})^{-1}
(X⊤X)−1 计算量可能太大甚至不可行(梯度下降无此限制)
通常超过 10000 个特征就不适合用最小二乘法了,此时可以改用梯度下降等迭代算法,或者通过主成分分析降低特征维度后再用最小二乘法
- 模型必须是线性模型(梯度下降无此限制)
如果拟合函数不是线性的,可以先将其转换为非线性成分的线性组合并对应地处理样本数据,再使用最小二乘法
- 由于考虑误差的二次方,因此受离群点影响很大,使用前应做好数据预处理排除错误数据
- 当样本量 m m m 小于特征数 n n n 的时候,这时拟合方程组是欠定的,常用的优化方法都无法去拟合数据。当样本量 m m m 等于特征数 n n n 的时候,用方程组求解就可以了。当 m m m 大于 n n n 时,拟合方程是超定的,也就是我们常用与最小二乘法的场景了