最小二乘法

前言

参考博客:半小时学习最小二乘法
最小二乘法在统计学的地位不必多言。本文的目的是全面地讲解最小二乘法,打好机器学习的基础。本文主要内容是最小二乘法的思想及在线性回归问题中的应用。后面的系列文章会继续讲解最小二乘的正则化。
至于非线性最小二乘和广义线性模型,如果以后有时间会进行整理。

核心思想

最小二乘法是勒让德( A. M. Legendre)于1805年在其著作《计算慧星轨道的新方法》中提出的。它的主要思想就是求解未知参数,使得理论值与观测值之差(即误差,或者说残差)的平方和达到最小:
E = ∑ i = 1 n e i 2 = ∑ i = 1 n ( y i − y ^ ) 2 E=\sum_{i=1}^{n} e_{i}^{2}=\sum_{i=1}^{n}\left(y_{i}-\hat{y}\right)^{2} E=i=1nei2=i=1n(yiy^)2
观测值 y i y_{i} yi 就是我们的多组样本,理论值 y ^ \hat{y} y^ 就是我们的假设拟合函数。目标函数也就是在机器学习中 常说的损失函数 E E E ,我们的目标是得到使目标函数最小化时候的参数。

所谓最小二乘,其实也可以叫做最小平方和,其目的就是通过最小化误差的平方和,使得拟合对象无限接近目标对象。换句话说,最小二乘法定义了一种函数的拟合标准,其目标是最小化误差的平方和。

直观理解

均方误差有非常好的几何意义,它对应了常用的欧几里德距离。在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线的欧氏距离之和最小。

假设有一条直线 y = a x + b y=a x+b y=ax+b ,要在这条直线上找到一点,距离 ( x 0 , y 0 ) \left(x_{0}, y_{0}\right) (x0,y0) 这个点的距离最短。如果用绝 对值的方法寻找,也就是取 min ⁡ ( ∣ y − y 0 ∣ + ∣ x − x 0 ∣ ) \min \left(\left|y-y_{0}\right|+\left|x-x_{0}\right|\right) min(yy0+xx0) ,由于绝对值最小为0,所以最小的情况就是 x = x 0 x=x_{0} x=x0 或者 y = y 0 y=y_{0} y=y0 处,如下图1所示。
在这里插入图片描述
图 1 图 1 1
如果用平方和的方法寻找,就是取min ( y − y 0 ) 2 + ( x − x 0 ) 2 \left(y-y_{0}\right)^{2}+\left(x-x_{0}\right)^{2} (yy0)2+(xx0)2 ,可以看出该式是两点间距离公式, 也就是距离的概念。那么最短的距离,就是点到直线的垂线,如下图2所示。
在这里插入图片描述
图 2 图 2 2
事实上,线性回归中最小二乘法的解 θ = ( X T X ) − 1 X T Y \theta=\left(X^{T} X\right)^{-1} X^{T} Y θ=(XTX)1XTY 也就是投影矩阵的公式: 将Y向量投影到X 构成的平面上。

对任意函数的通用解法

  1. 列出损失函数 E = ∑ i = 1 n e i 2 = ∑ i = 1 n ( y i − y ^ ) 2 E=\sum_{i=1}^{n} e_{i}^{2}=\sum_{i=1}^{n}\left(y_{i}-\hat{y}\right)^{2} E=i=1nei2=i=1n(yiy^)2
  2. 根据损失函数对参数应用多元函数的求极值方法,直接求解函数最小值。而更常见的方法即是将损失函数 y i y_{i} yi x i x_{i} xi和参数表示,然后使用梯度下降算法。
  3. 求得函数最小值的参数或待到梯度算法收敛,此时的参数即为所求这些个步骤说起来抽象,实际上这是在机器学习中应用最广泛的方法。但是对于后面的线性回归问题,有着更简洁的推导方法。

以算术平均值为例——为什么算术平均即是真值

可以说整部数理统计学的历史,就是对算术平均不断深入研究的历史。而最小二乘法可以解释为什么多次测量取算术平均的结果就是真值,比如估计身高可以测三次后取平均。

当我们对于某个末知量 θ \theta θ 观测 m m m 次,记每次的结果为 x i x_{i} xi
E = ∑ i = 1 m e i 2 = ∑ i = 1 m ( x i − θ ) 2 E=\sum_{i=1}^{m} e_{i}^{2}=\sum_{i=1}^{m}\left(x_{i}-\theta\right)^{2} E=i=1mei2=i=1m(xiθ)2
求导得
∑ i = 1 n − ( x i − θ ) = 0 \sum_{i=1}^{n}-\left(x_{i}-\theta\right)=0 i=1n(xiθ)=0
所以 θ = x ˉ = ∑ x i m \theta=\bar{x}=\frac{\sum^{x_{i}}}{m} θ=xˉ=mxi

线性回归问题的定义

这部分我们简要回顾一下基本的线性代数知识。

我们知道一条直线,在三维空间中,可以用形如 a x + b y + c z = d a x+b y+c z=d ax+by+cz=d的方程表示,而用矩阵的形式表达的话,即为 A X = B AX=B AX=B,其中 B B B为常数,而 A A A X X X都为n维向量。那么多个这样的方程联立在一起就被称为线性方程组,其中有两个基本问题:
1)方程组是否有解,即解的存在性问题?
2)如果有解,解的个数有多少个?

为了回答这两个问题,我们令线性方程组中的方程都为线性无关方程(可以通过简单地初等行变换),方程个数为m,特征数(参数数量)为n。在这样的假设下,如果m=n,则一行方程对应一个参数的解,此时方程组有唯一解。如果m>n,则方程无解,因为存在互相矛盾的两个方程。如果m<n,则方程和参数不能一一对应,存在无穷多解。而最小二乘法是在m>n时可以使用的,其通过让残差平方和最小,找到互相矛盾解之间的近似解。

使用最小二乘求解线性回归问题

对于线性回归问题,当然可以使用求导的代数方法来找到损失函数的最小值。但矩阵法比代数法要简洁,所以现在很多书和机器学习库都是用的矩阵法来做最小二乘法,本文这里介绍一下如何使用矩阵法求解线性回归问题。

对于函数 h θ ( x 1 , x 2 , … x n ) = θ 0 + θ 1 x 1 + … + θ n x n h_{\theta}\left(x_{1}, x_{2}, \ldots x_{n}\right)=\theta_{0}+\theta_{1} x_{1}+\ldots+\theta_{n} x_{n} hθ(x1,x2,xn)=θ0+θ1x1++θnxn ,我们将其的矩阵形式记作:
X θ = Y X \theta=Y Xθ=Y

x ( i ) = ( x 0 ( i ) x 1 ( i ) ⋮ x n ( i ) ) θ = ( θ 0 θ 1 ⋮ θ n ) X = ( ( x ( 1 ) ) T ( x ( 2 ) ) T ⋮ ( x ( m ) ) T ) Y = ( y ( 1 ) y ( 2 ) ⋮ y ( m ) ) x^{(i)}=\left(\begin{array}{c} x_{0}^{(i)} \\ x_{1}^{(i)} \\ \vdots \\ x_{n}^{(i)} \end{array}\right) \quad \theta=\left(\begin{array}{c} \theta_{0} \\ \theta_{1} \\ \vdots \\ \theta_{n} \end{array}\right) \quad X=\left(\begin{array}{c} \left(x^{(1)}\right)^{T} \\ \left(x^{(2)}\right)^{T} \\ \vdots \\ \left(x^{(m)}\right)^{T} \end{array}\right) \quad Y=\left(\begin{array}{c} y^{(1)} \\ y^{(2)}\\ \vdots \\ y^{(m)} \end{array}\right) x(i)=x0(i)x1(i)xn(i)θ=θ0θ1θnX=(x(1))T(x(2))T(x(m))TY=y(1)y(2)y(m)
故损失函数根据定义将 Y Y Y X X X θ θ θ代替:(系数1/2是为了简化计算添加的,求迹前和求迹后值不变)
J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = 1 2 tr ⁡ [ ( X θ − Y ) T ( X θ − Y ) ] J(\theta)=\frac{1}{2} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}=\frac{1}{2} \operatorname{tr}\left[(X \theta-Y)^{T}(X \theta-Y)\right] J(θ)=21i=1m(hθ(x(i))y(i))2=21tr[(XθY)T(XθY)]
应用矩阵迹的计算公式:
∂ J ( θ ) ∂ θ = 1 2 ⋅ ∂ tr ⁡ ( θ T X T X θ − θ T X T Y − Y T X θ + Y T Y ) ∂ θ = 1 2 ⋅ [ ∂ tr ⁡ ( θ I θ T X T X ) ∂ θ − ∂ tr ⁡ ( θ T X T Y ) ∂ θ − ∂ tr ⁡ ( θ Y T X ) ∂ θ ] = 1 2 ⋅ [ X T X θ I + ( X T X ) T θ I T − X T Y − ( Y T X ) T ] = X T X θ − X T Y \begin{aligned} \frac{\partial J(\theta)}{\partial \theta} &=\frac{1}{2} \cdot \frac{\partial \operatorname{tr}\left(\theta^{T} X^{T} X \theta-\theta^{T} X^{T} Y-Y^{T} X \theta+Y^{T} Y\right)}{\partial \theta} \\ &=\frac{1}{2} \cdot\left[\frac{\partial \operatorname{tr}\left(\theta I \theta^{T} X^{T} X\right)}{\partial \theta}-\frac{\partial \operatorname{tr}\left(\theta^{T} X^{T} Y\right)}{\partial \theta}-\frac{\partial \operatorname{tr}\left(\theta Y^{T} X\right)}{\partial \theta}\right] \\ &=\frac{1}{2} \cdot\left[X^{T} X \theta I+\left(X^{T} X\right)^{T} \theta I^{T}-X^{T} Y-\left(Y^{T} X\right)^{T}\right] \\ &=X^{T} X \theta-X^{T} Y \end{aligned} θJ(θ)=21θtr(θTXTXθθTXTYYTXθ+YTY)=21[θtr(θIθTXTX)θtr(θTXTY)θtr(θYTX)]=21[XTXθI+(XTX)TθITXTY(YTX)T]=XTXθXTY
令上式为 0 ,解得 θ = ( X T X ) − 1 X T Y \theta=\left(X^{T} X\right)^{-1} X^{T} Y θ=(XTX)1XTY

Note:矩阵求导坑多,使用迹来计算比较方便

线性回归的t检验
记n为回归方程的特征个数,m为样本数
S 回  = ∑ i = 1 m ( y ^ − y ˉ ) S 剩  = ∑ i = 1 m ( y i − y ^ ) \begin{aligned} &S_{\text {回 }}=\sum_{i=1}^{m}(\hat{y}-\bar{y}) \\ &S_{\text {剩 }}=\sum_{i=1}^{m}\left(y_{i}-\hat{y}\right) \end{aligned} S =i=1m(y^yˉ)S =i=1m(yiy^)
总平方和(SST)可分解为回归平方和(SSR)与残差平方和(SSE)两部
M S R = S S R / k M S E = S S E / ( n − k − 1 ) F = M S R M S E = S 回  / k S 剩  / ( n − k − 1 ) \begin{gathered} M S R=S S R / k \\ M S E=S S E /(n-k-1) \\ F=\frac{M S R}{M S E}=\frac{S_{\text {回 }} / k}{S_{\text {剩 }} /(n-k-1)} \end{gathered} MSR=SSR/kMSE=SSE/(nk1)F=MSEMSR=S /(nk1)S /k
若用样本计算的F>F0.05(k,n−k−1),则拒绝H0,则回归方程在显著性水平α=0.05下是显著的

最小二乘法的适用场景
当样本量m很少,小于特征数n的时候,这时拟合方程是欠定的,需要使用LASSO。当m=n时,用方程组求解。当m>n时,拟合方程是超定的,我们可以使用最小二乘法。

局限性

  • 首先,最小二乘法需要计算(XTX)−1逆矩阵,有可能逆矩阵不存在,这样就没有办法直接用最小二乘法。
  • 第二,当样本特征n非常的大的时候,计算逆矩阵是一个非常耗时的工作,甚至不可行。建议不超过10000个特征。
  • 第三,如果拟合函数不是线性的,这时无法使用最小二乘法,需要通过一些技巧转化为线性才能使用。

最小二乘法和M估计
在统计数据时,难免会遇到异常值,即人为误差。而这种误差对结果的影响远比系统误差大,比如将1记录成10。所以我们使用稳健性来评价一个方法对异常值的敏感程度。

最小二乘法是一种稳健性较差的方法,原因在于其目标函数是误差的平方,是一个增长很快的函数。
所以不难想到,对于 E = Σ f ( x i ) E = Σ f ( x i ) E=\Sigma^{f}(x_i)E=\Sigma^{f}(x_i) E=Σf(xi)E=Σf(xi),我们可以取 f ( x ) = ∣ x ∣ f(x)=|x| f(x)=x来减小函数的增长速度。

统计学家休伯将这一想法用于对单个末知量 θ \theta θ 参数估计的情况,误差满足正态分布 x i = θ + e i x_{i}=\theta+e_{i} xi=θ+ei ,就给 定 ρ \rho ρ 函数:
取定函数 ρ \rho ρ ,找出使函数 M ( θ ) = ∑ i = 1 m ρ ( x i − θ ) M(\theta)=\sum_{i=1}^{m} \rho\left(x_{i}-\theta\right) M(θ)=i=1mρ(xiθ) 达到最小的 θ ^ \hat{\theta} θ^ ,将其作为 θ \theta θ 的估计值。 θ ^ \hat{\theta} θ^ 称为 θ \theta θ M M M 估计。

M估计是一类估计,主要包括 ρ ( u ) = u 2 \rho(u)=u^{2} ρ(u)=u2 的最小二乘法和 ρ ( u ) = ∣ x ∣ \rho(u)=|x| ρ(u)=x 的最小一乘法。M估计也可以和 最小二乘法一样,推广到多元线性回归,称为稳健回归,但是因为难于计算等局限,应用并不广泛。

Note: 最小一乘法对末知参数 θ \theta θ 的估计值 θ ^ = x i \hat{\theta}=x_{i} θ^=xi 的中位数

最小二乘法和正则化

( X T X ) − 1 \left(X^{T} X\right)^{-1} (XTX)1 不存在,即 X T X X_{T} X XTX 不满秩时, θ \theta θ 无唯一解。

故考虑在原先的A的最小二乘估计中加一个小扰动 λ I \lambda I λI ,使原先无法求广义逆的情况变成可以求出其广 义逆,使得问题稳定并得以求解。有:
θ ^ = ( X T X + λ I ) − 1 X T Y \hat{\theta}=\left(X^{T} X+\lambda I\right)^{-1} X^{T} Y θ^=(XTX+λI)1XTY
而此时对应的损失函数为:
J ( θ ) = ∑ i = 1 m ( y i − θ T x i ) 2 + λ ∥ θ ∥ 2 2 J(\theta)=\sum_{i=1}^{m}\left(y_{i}-\theta^{T} x_{i}\right)^{2}+\lambda\|\theta\|_{2}^{2} J(θ)=i=1m(yiθTxi)2+λθ22

上式称为岭回归(ridge regression),通过引入L2范数正则化。当然也可以将L2范数替换为L1范数。对应有
J ( θ ) = ∑ i = 1 m ( y i − θ T x i ) 2 + λ ∥ θ ∥ 1 J(\theta)=\sum_{i=1}^{m}\left(y_{i}-\theta^{T} x_{i}\right)^{2}+\lambda\|\theta\|_{1} J(θ)=i=1m(yiθTxi)2+λθ1

上式称为LASSO。对于L2范数,本质上其实是对误差的高斯先验。而L1范数则对应于误差的Laplace先验。

最小二乘法的理论证明

拉普拉斯指出随机误差应满足正态分布,而高斯创造性地发明并使用极大似然法证明了最小二乘法。

故测量误差服从高斯分布的情况下, 最小二乘法等价于极大似然估计。

对于任何拟合方程都有: y = y ^ + e y=\hat{y}+e y=y^+e
因为 e ∼ N ( 0 , σ 2 ) e \sim N\left(0, \sigma^{2}\right) eN(0,σ2), 故 y ∼ N ( y ^ , σ 2 ) y \sim N\left(\hat{y}, \sigma^{2}\right) yN(y^,σ2)
由极大似然估计, L ( θ ) = ∏ i f ( y i ) L(\theta)=\prod_{i} f\left(y_{i}\right) L(θ)=if(yi)
L = 1 ( 2 π σ ) n exp ⁡ { − 1 2 σ 2 ∑ i = 1 n ( y i − y ^ ) 2 } = 1 ( 2 π σ ) n exp ⁡ − 1 2 σ 2 ∑ i = 1 n e i 2 L=\frac{1}{(\sqrt{2 \pi} \sigma)^{n}} \exp \left\{-\frac{1}{2 \sigma^{2}} \sum_{i=1}^{n}\left(y_{i}-\hat{y}\right)^{2}\right\}=\frac{1}{(\sqrt{2 \pi} \sigma)^{n}} \exp -\frac{1}{2 \sigma^{2}} \sum_{i=1}^{n} e_{i}^{2} L=(2π σ)n1exp{2σ21i=1n(yiy^)2}=(2π σ)n1exp2σ21i=1nei2

Note:数学的发展史很多时候是不符合逻辑顺序的。事实上,高斯当时是循环论证最小二乘法的,推理有缺陷。而后拉普拉斯才弥补了这一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

磁生电

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值