Jerry's Blog

Back

从极大似然到最小二乘#

最小二乘法(Least Squares Method)是数据拟合里最经典的一类方法。它要做的事情可以先用一句话记住:

找到一条线,或者一个模型,让所有数据点的误差平方和尽可能小。

这里最容易卡住的问题不是公式本身,而是三个更本质的追问:

  1. 为什么不能把误差直接相加?
  2. 既然要消除正负号,为什么常用平方,而不是绝对值?
  3. 为什么从极大似然估计出发,也会推到同一个平方误差目标?

这篇按这三个问题展开。阅读顺序先从最小二乘的直觉困惑出发,再进入概率密度和似然函数,最后完成真正的推导方向:从极大似然到最小二乘


1. 残差是什么#

假设我们有一组数据点:

(xi,yi),i=1,,N(x_i, y_i),\quad i=1,\ldots,N

用模型

f(xi;w)f(x_i; w)

去预测第 ii 个样本的输出。真实值和预测值之间的差,就是残差:

ri=yif(xi;w)r_i = y_i - f(x_i; w)

如果模型是一条直线,那么 ww 可以理解为这条直线的斜率和截距。最小二乘法要找的,就是一组最合适的 ww

问题在于:每个点都有一个残差,我们怎么把一堆残差合成一个总误差?


2. 为什么不能直接把残差相加#

最朴素的想法是直接相加:

i=1Nri\sum_{i=1}^N r_i

但这会马上遇到一个陷阱:正负误差会互相抵消

比如只有两个点:

残差
A+10+10
B10-10

直接相加得到:

(+10)+(10)=0(+10)+(-10)=0

这个总误差看起来是 00,好像模型完美拟合了数据。但实际上它在两个点上都偏得很远,只是一个点偏高、一个点偏低。

所以,拟合误差不能只看“方向上的总和”,还要看“偏离的大小”。为了消除符号,常见选择有两个:

riri2|r_i| \quad\text{或}\quad r_i^2

前者得到的是绝对误差,后者得到的是平方误差。


3. 为什么最小二乘选择平方#

平方不是唯一选择,但它有三个特别重要的优势。

3.1 平方函数更适合求导优化#

绝对值函数

x|x|

x=0x=0 的地方有尖角,不可导。它当然可以优化,但推导和算法处理会更麻烦。

平方函数

x2x^2

是一条平滑的抛物线,处处可导。把所有残差平方后相加:

J(w)=i=1N(yif(xi;w))2J(w)=\sum_{i=1}^N \left(y_i-f(x_i; w)\right)^2

再对参数 ww 求导,就能得到非常干净的优化条件。在线性回归里,这甚至可以推出解析解。

3.2 平方会更重地惩罚大误差#

平方会放大大的残差:

残差平方误差
1111
552525
1010100100

这意味着最小二乘法会非常在意那些偏离很远的点。好处是它会努力避免某些点出现极端离谱的预测;代价是它也会对离群点比较敏感。

所以更准确地说:

平方误差适合“误差大致来自稳定噪声”的场景;如果数据里有很强的离群点,绝对误差或 Huber 损失有时会更稳健。

3.3 平方误差和正态分布天然相连#

最小二乘法最漂亮的地方,是它不只是一个计算方便的技巧。只要我们假设误差服从正态分布,那么用极大似然估计求最可能的参数,最后就会得到最小二乘目标。

这也是平方误差在统计学习里特别核心的原因。


4. 先分清概率密度和似然#

在推导之前,要先处理一个容易混淆的概念:同一个公式,为什么有时叫概率密度函数,有时又叫似然函数?

关键区别不是公式,而是谁被当作变量

4.1 概率密度:已知参数,看数据怎么分布#

如果模型参数 ww 已经给定,数据 yy 是随机变量,那么

p(yx;w)p(y\mid x; w)

描述的是:在参数 ww 下,观测到不同 yy 的相对密集程度。

因为回归里的 yy 通常是连续变量,所以这里严格说是概率密度,不是某个精确点上的概率。连续变量取某一个精确值的概率是 00,真正的概率来自某个区间上的积分。

4.2 似然:已知数据,反过来比较参数#

极大似然估计的视角反过来。

现在数据已经观测到了,yiy_i 是确定的;未知的是参数 ww。我们把同一个表达式看成关于 ww 的函数:

L(w)=p(yixi;w)L(w)=p(y_i\mid x_i; w)

这时它就叫似然函数。它的含义不是“参数 ww 的概率”,而是:

如果参数是 ww,那么它生成当前这批观测数据的支持程度有多高。

一个简单记法是:

名字已知变量问题
概率密度参数 ww数据 yy这个模型会生成什么样的数据?
似然数据 yy参数 ww哪个参数更像是生成这批数据的原因?

5. 用极大似然推出最小二乘#

现在进入推导。

假设真实值由模型预测值加噪声得到:

yi=f(xi;w)+ϵiy_i = f(x_i; w) + \epsilon_i

其中误差项满足独立同分布,并服从均值为 00、方差为 σ2\sigma^2 的正态分布:

ϵiN(0,σ2)\epsilon_i \sim \mathcal{N}(0,\sigma^2)

也就是说:

yif(xi;w)N(0,σ2)y_i - f(x_i; w) \sim \mathcal{N}(0,\sigma^2)

于是,在给定 xix_iww 的情况下,观测到 yiy_i 的概率密度为:

p(yixi;w)=12πσ2exp((yif(xi;w))22σ2)p(y_i\mid x_i; w) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left( -\frac{(y_i-f(x_i; w))^2}{2\sigma^2} \right)

因为样本之间独立,整批数据的似然是每个样本似然的乘积:

L(w)=i=1Np(yixi;w)L(w) = \prod_{i=1}^N p(y_i\mid x_i; w)

代入正态分布密度:

L(w)=i=1N12πσ2exp((yif(xi;w))22σ2)L(w) = \prod_{i=1}^N \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left( -\frac{(y_i-f(x_i; w))^2}{2\sigma^2} \right)

极大似然估计要找:

w^=argmaxwL(w)\hat{w}=\arg\max_w L(w)

连乘不方便求导,所以取对数。由于对数函数单调递增,最大化 L(w)L(w) 等价于最大化 logL(w)\log L(w)

(w)=logL(w)\ell(w)=\log L(w)

展开以后得到:

(w)=i=1N[log(12πσ2)(yif(xi;w))22σ2]\ell(w) = \sum_{i=1}^N \left[ \log\left(\frac{1}{\sqrt{2\pi\sigma^2}}\right) - \frac{(y_i-f(x_i; w))^2}{2\sigma^2} \right]

也就是:

(w)=Nlog(12πσ2)12σ2i=1N(yif(xi;w))2\ell(w) = N\log\left(\frac{1}{\sqrt{2\pi\sigma^2}}\right) - \frac{1}{2\sigma^2} \sum_{i=1}^N \left(y_i-f(x_i; w)\right)^2

观察这个式子:

  1. 第一项和 ww 无关,是常数;
  2. 12σ2\frac{1}{2\sigma^2} 是正数;
  3. 唯一和 ww 有关的部分,是残差平方和。

因此,最大化对数似然等价于最小化:

J(w)=i=1N(yif(xi;w))2J(w) = \sum_{i=1}^N \left(y_i-f(x_i; w)\right)^2

这正是最小二乘法。


6. 最后一层直觉#

最小二乘法里的“平方”可以从两个角度理解:

角度解释
优化角度平方消除正负号,而且平滑可导,方便求解析解或梯度优化。
统计角度如果误差服从正态分布,极大似然估计自然推出平方误差。

所以,平方不是凭空选出来的。它一边来自优化上的便利,一边来自正态误差假设下的概率模型。

当然,这也告诉我们一个反方向的判断标准:

如果误差不像正态噪声,而是有大量离群点,最小二乘未必是最稳的选择。

这时可以考虑最小绝对偏差、Huber 损失或其他更鲁棒的目标函数。但在“误差大致对称、集中、没有太多极端离群点”的情况下,最小二乘法依然是最自然、最干净、也最常用的起点。

从极大似然到最小二乘
https://jerry609.github.io/blog/least-squares-mle-likelihood
Author Jerry
Published at May 9, 2026
Comment seems to stuck. Try to refresh?✨