- 参考:
- 如何理解最小二乘法?
- 最小二乘法小结
- 最小二乘法的原理理解
文章目录
1 回归与函数拟合
回归分析
:指研究两组相互依赖的随机变量 Y 1 , Y 2 , . . . Y n \pmb{Y}_1,\pmb{Y}_2,...\pmb{Y}_n YYY1,YYY2,...YYYn(常称为因变量
) 和 X 1 , X 2 , . . . X m \pmb{X}_1,\pmb{X}_2,...\pmb{X}_m XXX1,XXX2,...XXXm(常称为自变量
)之间关系的统计分析方法- 按照自变量的多少,分为
一元回归
和多元回归
- 按照因变量的多少,可分为
简单回归
和多重回归
- 按照自变量和因变量之间的关系类型,可分为
线性回归
和非线性回归
- 按照自变量的多少,分为
- 回归建立了自变量和因变量间的关系,因此常用于拟合函数曲线。机器学习中,回归属于监督学习,是一种预测性建模技术,说白了其实就是拟合一条曲线,利用它可以做回归任务,如线性回归;也能做分类任务,如逻辑回归(此时看作拟合分类平面曲线)
- 补充几个和函数曲线拟合相关的概念
拟合函数/估值函数
:给定来自真实分布的一批样本,拟合后得到的函数损失函数
和目标函数
:做函数拟合时,常将其转化为一个优化问题,认为和数据匹配越好的函数越优,这时需要一个指示拟合程度的指标来指导优化方向。给定训练样本,该指标是从模型参数到拟合程度的映射,称之为损失函数或目标函数。损失函数越小/目标函数越大,拟合得就越好残差
:针对某个样本而言, 拟合值与真实值的差。通常把关于的单个样本残差推广到整个训练集来构造损失函数或目标函数,有以下选择最优化问题
:指给定目标函数/损失函数时,通过决定某些可选择的变量应该取何值,使所给定目标函数最大化/损失函数最小化的问题。根据有无约束条件,又分为无约束最优化问题
和约束最优化问题
最优化方法
:指解决最优化问题的方法
2 最小二乘法
最小二乘法/最小平方法
:一种最优化方法,在模型给定的情况下,使用样本残差的平方和作为损失函数,通过令偏导数为 0 直接求解无约束最优化问题,得到最优模型参数的解析解。最小二乘法可用于曲线拟合,也能通过最小化能量或最大化熵来表达其他一些优化问题
2.1 适用模型
-
最小二乘法是针对 线性模型 的 多元简单回归 任务设计的方法,即要求标签为 1 维,且模型对样本特征向量 x i = [ x 1 , x 2 , . . . , x m ] ⊤ \pmb{x}_i=[x_1,x_2,...,x_m]^\top xxxi=[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,wx,wx,w)=w0+w1x1+w2x2+...+wmxm 这是因为非线性的拟合函数里面可能有很复杂的结构,比如求和,积分,级数等,此时就算直接令导数为 0 得到方程,也可能很难求出方程的解析解。为了表示简便,通常增设一个 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,wx,wx,w)=i=0∑mwixi=x⊤wx⊤wx⊤w -
虽然针对线性模型设计,但并不意味着不能用最小二乘法优化非线性模型参数,可以先把非线性模型表示为非线性部分的线性组合,再使用最小二乘法,如 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,wx,wx,w)=w0+w1f1(xxx)+w2f2(xxx)+...+wmfm(xxx) 其中每个 f i ( x ) f_i(\pmb{x}) fi(xxx) 都是非线性部分,比如多项式回归就属于这种情况
-
最小二乘法在求解时,只要有解,一定是全局最优解,参考:最小二乘法求解方程组为什么不会陷入局部最优解
2.2 求解方法
-
先从最常见的多元简单回归角度给出形式化描述:给定样本集
D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) } , x i ∈ R m + 1 , y i ∈ R \mathcal{D} = \{(\pmb{x}_1,y_1),(\pmb{x}_2,y_2),...,(\pmb{x}_n,y_n)\},\pmb{x}_i\in\mathbb{R}^{m+1},y_i\in \mathbb{R} D={(xxx1,y1),(xxx2,y2),...,(xxxn,yn)},xxxi∈Rm+1,yi∈R设模型为 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 xxxi=[1,xi1,xi1,...,xim]⊤,参数向量 w = [ w 0 , w 1 , w 2 , . . . , w m ] ⊤ \pmb{w} = [w_0,w_1,w_2,...,w_m]^\top www=[w0,w1,w2,...,wm]⊤,样本集 X n × m + 1 = [ x 1 ⊤ , x 2 ⊤ , . . . , x n ⊤ ] ⊤ \pmb{X}_{n\times m+1}=[\pmb{x}_1^\top,\pmb{x}_2^\top,...,\pmb{x}_n^\top]^\top XXXn×m+1=[xxx1⊤,xxx2⊤,...,xxxn⊤]⊤,标记集 Y = [ y 1 , y 2 , . . . , y n ] ⊤ \pmb{Y} = [y_1,y_2,...,y_n]^\top YYY=[y1,y2,...,yn]⊤,模型对于样本 x i \pmb{x}_i xxxi 给出预测 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(xxxi,www)=xi⊤wxi⊤wxi⊤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}} XwXwXw=⎣⎢⎢⎢⎡xxx1⊤xxx2⊤⋮xxxn⊤⎦⎥⎥⎥⎤www=⎣⎢⎢⎢⎡y^1y^2⋮y^n⎦⎥⎥⎥⎤=Y^Y^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(www)=∑i=1n(f(xxxi,www)−yi)2,求以下最优化问题
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}}\sum_{i=1}^n(f(\pmb{x}_i,\pmb{w})-y_i)^2 = \argmin_{\mathbf{w}} (\pmb{X w-Y})^\top(\pmb{X w-Y}) wargmini=1∑n(f(xxxi,www)−yi)2=wargmin(Xw−YXw−YXw−Y)⊤(Xw−YXw−YXw−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{Xw-Y})^\top(\pmb{Xw-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−YXw−YXw−Y)⊤(Xw−YXw−YXw−Y)=(w⊤X⊤−Y⊤w⊤X⊤−Y⊤w⊤X⊤−Y⊤)(XXXw−Yw−Yw−Y)=w⊤X⊤Xww⊤X⊤Xww⊤X⊤Xw−w⊤X⊤Yw⊤X⊤Yw⊤X⊤Y−Y⊤XwY⊤XwY⊤Xw+Y⊤YY⊤YY⊤Y=w⊤X⊤Xww⊤X⊤Xww⊤X⊤Xw−2w⊤X⊤Yw⊤X⊤Yw⊤X⊤Y+Y⊤YY⊤YY⊤Y(1) 注意这里 w ⊤ X ⊤ Y \pmb{w^\top X^\top Y} w⊤X⊤Yw⊤X⊤Yw⊤X⊤Y 和 Y ⊤ X w \pmb{Y^\top X w} Y⊤XwY⊤XwY⊤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} ∂www∂(w⊤X⊤Xww⊤X⊤Xww⊤X⊤Xw−2w⊤X⊤Yw⊤X⊤Yw⊤X⊤Y+Y⊤YY⊤YY⊤Y)=∂www∂(w⊤X⊤Xww⊤X⊤Xww⊤X⊤Xw−2w⊤X⊤Yw⊤X⊤Yw⊤X⊤Y)=∂www∂(w⊤X⊤Xww⊤X⊤Xww⊤X⊤Xw)−2∂www∂(w⊤X⊤Yw⊤X⊤Yw⊤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⊤)vvv+∂x∂f(v⊤)uuu,其中 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} ∂www∂(w⊤X⊤Xww⊤X⊤Xww⊤X⊤Xw)−2∂www∂(w⊤X⊤Yw⊤X⊤Yw⊤X⊤Y)=(X⊤XX⊤XX⊤X+X⊤XX⊤XX⊤X)www−2X⊤YX⊤YX⊤Y=2(X⊤X⊤X⊤XXXwww−X⊤YX⊤YX⊤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⊤X⊤X⊤XXXw^w^w^=X⊤YX⊤YX⊤Y⇒w^w^w^=(X⊤X⊤X⊤XXX)−1X⊤YX⊤YX⊤Y(4) 这就是最小二乘法得到的解
2.3 理解最小二乘法
2.3.1 几何角度
- 最小二乘法要最小化所有样本的预测值和真实值间误差的平方和,其主要适用于简单回归任务,线性模型因变量通常只有一维。一维特征空间中回归拟合一条曲线,样本误差可以看作样本特征点距离拟合函数曲线的
y
y
y 轴方向上的差距;二维特征空间中回归拟合一个曲面,样本误差可以看作样本特征点距离拟合曲面的
z
z
z 轴方向上的差距
常数函数模型
:对于最简单的情况,试想我们要测量一根铅笔的长度,为了保证精准,使用五把不同的尺子多次测量。这种情况下模型为常数函数 f ( x , w ) = w 0 f(\pmb{x,w}) = w_0 f(x,wx,wx,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 w0argmin∑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,wx,wx,w)=w0+w1x 我们要最小化的各样本误差如下所示
多项式函数
:对于更复杂数据分布情况,可以考虑做多项式回归,使用多项式模型 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,wx,wx,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,wx,wx,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}} XXXw^w^w^=Y^Y^Y^ 是对样本集 X \pmb{X} XXX 列向量做线性组合得到 Y ^ \pmb{\hat{Y}} Y^Y^Y^。当误差最小时,这个 Y ^ \pmb{\hat{Y}} Y^Y^Y^ 应当是真实标记向量 Y \pmb{Y} YYY 在 X \pmb{X} XXX 列空间中的投影
- 现实生活中常有这样的应用:根据一些测量值求解另一些值,比如根据卫星与几个基站的通讯延时测量其位置。根据一组观测值可以解出一个结果,为了提高准确性,通常会收集很多数据,这样就联立到得到方程组 A x = b \pmb{Ax} = \pmb{b} AxAxAx=bbb一般情况下观测样本量 m m m 远大于未知数个数 n n n,即 A m × n \pmb{A}_{m\times n} AAAm×n 中 m > > n m>>n m>>n,这样的超定方程很难有解析解,除非其中含有多达 m − n m-n m−n 个无效约束,因为我们没法对非方阵的 A \pmb{A} AAA 求逆来得到 x = A − 1 b \pmb{x} = \pmb{A}^{-1}\pmb{b} xxx=AAA−1bbb
- 这时我们可以不断地去除方程,直到剩下的方程组有解为止,但这会造成数据浪费。另一种更好的方法是找一个和已知数据 “误差最小” 的解,设这个近似解为
x
^
\pmb{\hat{x}}
x^x^x^,我们有
A x ^ = p \pmb{A\hat{x}} = \pmb{p} Ax^Ax^Ax^=ppp 这样得到的 p \pmb{p} ppp 处于 A \pmb{A} AAA 的列空间中,为了保证 “误差最小”, p \pmb{p} ppp 应当是 b \pmb{b} bbb 在 A \pmb{A} AAA 列空间中的投影,而误差 e = b − p \pmb{e=b-p} e=b−pe=b−pe=b−p 与 A \pmb{A} AAA 列空间正交,如下图所示
关于向量空间投影,可以参考 线性代数拾遗(6)—— 向量空间投影与投影矩阵 - 以上一节中简单线性模型部分为例,我们要拟合一条
f
(
x
,
w
)
=
w
0
+
w
1
x
f(x,\pmb{w}) = w_0+w_1x
f(x,www)=w0+w1x 形式的直线
可见,这里未知数有 w 0 , w 1 w_0,w_1 w0,w1 两个,只需要两个观测样本就能确定一条直线,而把这五个样本联立在一起就无解(找不到一条可以通过全部五个样本点的直线)。对应到公式上,紫色点代表真实标记 b = [ b 1 , b 2 , . . . , b 5 ] ⊤ \pmb{b} = [b_1,b_2,...,b_5]^\top bbb=[b1,b2,...,b5]⊤,绿色点代表拟合函数预测的样本标记 p = [ p 1 , p 2 , . . . , p 5 ] ⊤ \pmb{p} = [p_1,p_2,...,p_5]^\top ppp=[p1,p2,...,p5]⊤,二者间的误差 e = [ e 1 , e 2 , . . . , e 5 ] ⊤ = b − p \pmb{e} = [e_1,e_2,...,e_5]^\top = \pmb{b-p} eee=[e1,e2,...,e5]⊤=b−pb−pb−p,我们要通过优化 x ^ \pmb{\hat{x}} x^x^x^ 来最小化 ( A x ^ − b ) ⊤ ( A x ^ − b ) = ( p − b ) ⊤ ( p − b ) = e ⊤ e = ∑ i = 1 5 e i 2 (\pmb{A\hat{x}}-\pmb{b})^\top(\pmb{A\hat{x}}-\pmb{b}) = (\pmb{p-b})^\top(\pmb{p-b}) = \pmb{e}^\top\pmb{e} = \sum_{i=1}^5e_i^2 (Ax^Ax^Ax^−bbb)⊤(Ax^Ax^Ax^−bbb)=(p−bp−bp−b)⊤(p−bp−bp−b)=eee⊤eee=i=1∑5ei2 这时从最小二乘法和向量投影两个角度可以得到相同的结果- 按最小二乘法思想,直接令偏导数为 0 算出解析解,这样可以得到
x ^ = ( A ⊤ A ) − 1 A ⊤ b \pmb{\hat{x}} = (\pmb{A^\top}\pmb{A})^{-1} \pmb{A^\top b} x^x^x^=(A⊤A⊤A⊤AAA)−1A⊤bA⊤bA⊤b - 从向量投影的角度看,当
x
^
\pmb{\hat{x}}
x^x^x^ 是向量
b
\pmb{b}
bbb 在
A
\pmb{A}
AAA 的列空间
C
(
A
)
C(\pmb{A})
C(AAA) 中的投影时误差最小,根据向量空间投影公式,使用投影矩阵
P
=
A
(
A
⊤
A
)
−
1
A
⊤
\pmb{P} = \pmb{A}(\pmb{A^\top}\pmb{A})^{-1} \pmb{A^\top}
PPP=AAA(A⊤A⊤A⊤AAA)−1A⊤A⊤A⊤ 计算此投影,
P
b
=
p
\pmb{Pb = p}
Pb=pPb=pPb=p,即
A ( A ⊤ A ) − 1 A ⊤ b = p = A x ^ ⇒ x ^ = ( A ⊤ A ) − 1 A ⊤ b \pmb{A}(\pmb{A^\top}\pmb{A})^{-1} \pmb{A^\top}\pmb{b} = \pmb{p} = \pmb{A\hat{x}} \Rightarrow \pmb{\hat{x}} = (\pmb{A^\top}\pmb{A})^{-1} \pmb{A^\top b} AAA(A⊤A⊤A⊤AAA)−1A⊤A⊤A⊤bbb=ppp=Ax^Ax^Ax^⇒x^x^x^=(A⊤A⊤A⊤AAA)−1A⊤bA⊤bA⊤b
- 按最小二乘法思想,直接令偏导数为 0 算出解析解,这样可以得到
2.3.3 概率角度
- 如果把误差值看做来自一个概率分布的采样,那么当分布是正态分布时,使用最大似然估计得到的估计参数和使用最小二乘法解出的估计参数相同
- 首先我们假设每个样本
x
i
\pmb{x}_i
xxxi 的误差
e
i
=
y
i
^
−
y
i
=
f
(
x
i
,
w
)
−
y
i
e_i = \hat{y_i}-y_i = f(\pmb{x}_i,\pmb{w})-y_i
ei=yi^−yi=f(xxxi,www)−yi 出现的概率为
p
(
e
i
∣
w
)
p(e_i|\pmb{w})
p(ei∣www),由于样本独立同分布,整个样本集对应联合概率分布
L ( w ) = p ( e 1 ∣ w ) p ( e 2 ∣ w ) . . . . p ( e m ∣ w ) = ∏ i = 1 m p ( e i ∣ w ) L(\pmb{w}) =p(e_1|\pmb{w})p(e_2|\pmb{w})....p(e_m|\pmb{w}) = \prod\limits_{i=1}^mp(e_i|\pmb{w}) L(www)=p(e1∣www)p(e2∣www)....p(em∣www)=i=1∏mp(ei∣www) 这恰好是似然函数的形式,通过最大化似然函数得到估计值,即
w ^ = arg max w ^ L ( w ) \hat{\pmb{w}} = \argmax\limits_{\mathbf{\hat{w}}} L(\pmb{w}) www^=w^argmaxL(www) 这个最值也是通过令偏导数为 0 计算的,我们假设在最小二乘法所得结果 w ^ = ( X ⊤ X ) − 1 X ⊤ Y \pmb{\hat{w}} = (\pmb{X^\top}\pmb{X})^{-1} \pmb{X^\top Y} w^w^w^=(X⊤X⊤X⊤XXX)−1X⊤YX⊤YX⊤Y 处偏导数为 0,即
∂ L ( w ) ∂ w ∣ w = w ^ = 0 \frac{\partial L(\pmb{w})}{\partial\pmb{w}} \big\vert_{\mathbf{w=\hat{w}}} = 0 ∂www∂L(www)∣∣w=w^=0 求解该偏微分方程,即可解出误差值所属的概率分布正是正态分布,即
p ( e i ) = 1 2 π σ e x p ( − e i 2 2 σ 2 ) p(e_i) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{e_i^2}{2\sigma^2}) p(ei)=2πσ1exp(−2σ2ei2) - 反过来推也可以,假设样本误差服从分布,则似然函数为
L ( w ) = ∏ i = 1 m 1 2 π σ e x p ( − e i 2 2 σ 2 ) = ∏ i = 1 m 1 2 π σ e x p ( − ( f ( x i , w ) − y i ) 2 2 σ 2 ) L(\pmb{w}) =\prod\limits_{i=1}^m\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{e_i^2}{2\sigma^2})=\prod\limits_{i=1}^m\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(f(\pmb{x}_i,\pmb{w})-y_i)^2}{2\sigma^2}) L(www)=i=1∏m2πσ1exp(−2σ2ei2)=i=1∏m2πσ1exp(−2σ2(f(xxxi,www)−yi)2) 通过取对数似然函数做最大似然估计,即
w ^ = arg max w ^ L ( w ) = arg max w ^ ∏ i = 1 m 1 2 π σ e x p ( − ( f ( x i , w ) − y i ) 2 2 σ 2 ) = arg max w ^ − 1 2 σ 2 ∑ i = 1 m ( f ( x i , w ) − y i ) 2 = arg min w ^ ∑ i = 1 m ( f ( x i , w ) − y i ) 2 \begin{aligned} \hat{\pmb{w}} &= \argmax\limits_{\mathbf{\hat{w}}} L(\pmb{w}) \\ &= \argmax\limits_{\mathbf{\hat{w}}}\prod\limits_{i=1}^m\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(f(\pmb{x}_i,\pmb{w})-y_i)^2}{2\sigma^2}) \\ &=\argmax\limits_{\mathbf{\hat{w}}} - \frac{1}{2\sigma^2}\sum_{i=1}^m(f(\pmb{x}_i,\pmb{w})-y_i)^2 \\ &=\argmin\limits_{\mathbf{\hat{w}}}\sum_{i=1}^m(f(\pmb{x}_i,\pmb{w})-y_i)^2 \\ \end{aligned} www^=w^argmaxL(www)=w^argmaxi=1∏m2πσ1exp(−2σ2(f(xxxi,www)−yi)2)=w^argmax−2σ21i=1∑m(f(xxxi,www)−yi)2=w^argmini=1∑m(f(xxxi,www)−yi)2 得到了最小二乘法的目标,因此二者等价 - 我们认为,误差是由于随机的、无数的、独立的、多个因素造成的,因此根据中心极限定理,预测误差在大样本量的情况下确实服从正态分布,所以最小二乘法确实是合理的
2.4 A ⊤ A \pmb{A^\top A} A⊤AA⊤AA⊤A 的可逆性
-
综上所述,面对方程组 A x = b \pmb{Ax} = \pmb{b} AxAxAx=bbb 我们可以如下处理
- A \pmb{A} AAA 可逆,直接 x = A − 1 b \pmb{x} = \pmb{A}^{-1}\pmb{b} xxx=AAA−1bbb 为精确解析解
- A \pmb{A} AAA 非方阵,两边同时左乘 A ⊤ \pmb{A^\top} A⊤A⊤A⊤ 变为 A ⊤ A x ^ = A ⊤ b \pmb{A^\top A\hat{x}} = \pmb{A^\top b} A⊤Ax^A⊤Ax^A⊤Ax^=A⊤bA⊤bA⊤b,这时 A ⊤ A \pmb{A^\top A} A⊤AA⊤AA⊤A 是一个方阵了,若其可逆则有 x ^ = ( A ⊤ A ) − 1 A ⊤ b \pmb{\hat{x}} = (\pmb{A^\top A})^{-1}\pmb{A^\top b} x^x^x^=(A⊤AA⊤AA⊤A)−1A⊤bA⊤bA⊤b。注意这里 x \pmb{x} xxx 和 x ^ \pmb{\hat{x}} x^x^x^ 不同,若 x \pmb{x} xxx 有解则 x ^ = x \pmb{\hat{x}=x} x^=xx^=xx^=x;若 x \pmb{x} xxx 无解则 x ^ \pmb{\hat{x}} x^x^x^ 是最小误差解
注意到我们要求方阵 A ⊤ A \pmb{A^\top A} A⊤AA⊤AA⊤A 必须可逆。本节说明以下结论
-
证明需要用到结论:对于任意矩阵 A \pmb{A} AAA, A \pmb{A} AAA 列向量线性无关 ⇔ \Leftrightarrow ⇔ A x = 0 \pmb{Ax} = \pmb{0} AxAxAx=000 只有零解。这个等价可从两个角度理解
- A x \pmb{Ax} AxAxAx 是对 A \pmb{A} AAA 的列向量做线性组合,由于线性无关,要线性组合得到零向量只能是各项系数为 0
- 若 A \pmb{A} AAA 是方阵,可逆矩阵的零空间只有零向量
-
证明流程
- 首先证明
A
⊤
A
x
=
0
\pmb{A^\top Ax} = \pmb{0}
A⊤AxA⊤AxA⊤Ax=000 和
A
x
=
0
\pmb{Ax} = \pmb{0}
AxAxAx=000 同解
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⊤AxA⊤AxA⊤Ax=000⇔x⊤A⊤Axx⊤A⊤Axx⊤A⊤Ax=000⇔(Ax)⊤(Ax)⊤(Ax)⊤(Ax)(Ax)(Ax)=000⇔AxAxAx=000 - A \pmb{A} AAA 列向量线性无关 ⇒ A x = 0 \Rightarrow \pmb{Ax} = \pmb{0} ⇒AxAxAx=000 只有零解 ⇒ A ⊤ A x = 0 \Rightarrow\pmb{A^\top Ax} = \pmb{0} ⇒A⊤AxA⊤AxA⊤Ax=000 只有零解 ⇒ A ⊤ A \Rightarrow \pmb{A^\top A} ⇒A⊤AA⊤AA⊤A 列向量线性无关 ⇒ A ⊤ A \Rightarrow \pmb{A^\top A} ⇒A⊤AA⊤AA⊤A 可逆
- 首先证明
A
⊤
A
x
=
0
\pmb{A^\top Ax} = \pmb{0}
A⊤AxA⊤AxA⊤Ax=000 和
A
x
=
0
\pmb{Ax} = \pmb{0}
AxAxAx=000 同解
-
注意这里 A \pmb{A} AAA 放在回归任务的语境下就是上面的 X \pmb{X} XXX,其每一行是一个样本的特征向量,每一列对应一个特征, A \pmb{A} AAA 的列向量不是线性无关说明特征设计有问题,出现了冗余特征
2.5 局限性
- 要求 X ⊤ X \pmb{X^\top X} X⊤XX⊤XX⊤X 必须可逆(梯度下降无此限制)
- ( X ⊤ X ) − 1 (\pmb{X^\top X})^{-1} (X⊤XX⊤XX⊤X)−1 计算量太大甚至不可行(梯度下降无此限制)
- 模型必须是线性模型(梯度下降无此限制)
- 由于考虑误差的二次方,因此受离群点影响很大,使用前应做好数据预处理排除错误数据
- 当样本量 m m m 小于特征数 n n n 的时候,这时拟合方程组是欠定的,常用的优化方法都无法去拟合数据。当样本量 m m m 等于特征数 n n n 的时候,用方程组求解就可以了。当 m m m 大于 n n n 时,拟合方程是超定的,也就是我们常用与最小二乘法的场景了