# 线性回归误差为什么用平方


# 线性回归误差为什么用平方

## 0. 从已经理解的内容出发

我们用一条直线预测 `y`：

$$
\hat y=\theta_0+\theta_1x
$$

真实值和预测值之间的误差是：

$$
\epsilon=y-\hat y
$$

我们希望选择一组参数，使所有样本的误差尽可能小。于是有一个问题：

> 应该用什么方式衡量误差的大小？

吴恩达在线性回归中选择了平方误差：

$$
J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}
\left(y^{(i)}-\hat y^{(i)}\right)^2
$$

下面解释为什么是平方，而不是一次方或四次方。

## 1. 为什么不能直接把误差相加

假设有两个样本，误差分别是：

$$
\epsilon_1=2,\qquad \epsilon_2=-2
$$

如果直接相加：

$$
\epsilon_1+\epsilon_2=2+(-2)=0
$$

但实际上两个样本都预测错了，所以结果为零不能表示“没有误差”。

原因是误差有正负：

- 正误差：预测值偏小；
- 负误差：预测值偏大。

所以正负误差会互相抵消。

## 2. 一次方、绝对值和平方的区别

### 带符号的一次方

如果使用：

$$
\sum_{i=1}^{m}\epsilon_i
$$

就会发生正负抵消，因此不适合作为总误差。

### 绝对值的一次方

如果使用：

$$
\sum_{i=1}^{m}|\epsilon_i|
$$

就不会发生正负抵消。这其实是合理的损失函数，叫绝对误差损失。

它的缺点是：在 `ε=0` 处有一个尖角，导数不连续；同时它对大误差的惩罚没有平方误差那么强。

### 平方误差

平方误差是：

$$
\sum_{i=1}^{m}\epsilon_i^2
$$

它有三个优点：

1. 正误差和负误差都会变成正数；
2. 大误差会被更强烈地惩罚；
3. 函数连续且可导，方便使用梯度下降。

例如：

$$
2^2=4,\qquad 5^2=25
$$

误差从 `2` 增加到 `5`，平方损失增加得非常明显。

## 3. 高斯分布是怎么出现的

吴恩达不是随意规定“误差要平方”，而是做了一个关于误差的假设：

> 大多数误差应该接近零，较大的误差比较少见，并且正误差和负误差大致对称。

这种误差形状可以用均值为 `0` 的高斯分布表示：

$$
\epsilon\sim\mathcal{N}(0,\sigma^2)
$$

它的概率密度函数是：

$$
p(\epsilon)
=\frac{1}{\sqrt{2\pi}\sigma}
\exp\left(-\frac{\epsilon^2}{2\sigma^2}\right)
$$

先只看最重要的部分：

$$
p(\epsilon)\propto\exp\left(-\frac{\epsilon^2}{2\sigma^2}\right)
$$

因为指数上面出现了 `-ε²`，所以误差越大，出现的概率密度越小。

## 4. 从高斯误差推出平方误差

对于一个样本：

$$
\epsilon^{(i)}=y^{(i)}-\theta^Tx^{(i)}
$$

高斯假设意味着：

$$
p\left(y^{(i)}\mid x^{(i)};\theta\right)
=\frac{1}{\sqrt{2\pi}\sigma}
\exp\left(
-\frac{\left(y^{(i)}-\theta^Tx^{(i)}\right)^2}{2\sigma^2}
\right)
$$

这个式子表示：给定输入 `x` 和参数 `θ` 后，真实输出 `y` 在预测值附近出现的可能性。

如果模型的预测很好，那么误差较小，概率密度较大；如果预测很差，那么误差较大，概率密度较小。

假设不同样本之间相互独立，那么所有样本同时出现的可能性等于各个样本概率密度的乘积：

$$
\mathcal{L}(\theta)
=\prod_{i=1}^{m}
p\left(y^{(i)}\mid x^{(i)};\theta\right)
$$

这个 `𝓛(θ)` 叫似然函数。我们希望找到一组参数，使观察到的训练数据最可能出现，因此希望最大化似然函数。

直接最大化很多乘法不方便，所以取对数：

$$
\log\mathcal{L}(\theta)
=\sum_{i=1}^{m}
\log p\left(y^{(i)}\mid x^{(i)};\theta\right)
$$

代入高斯密度后：

$$
\log\mathcal{L}(\theta)
=-m\log(\sqrt{2\pi}\sigma)
-\frac{1}{2\sigma^2}
\sum_{i=1}^{m}
\left(y^{(i)}-\theta^Tx^{(i)}\right)^2
$$

其中第一项与 `θ` 无关，只有第二项会随着模型参数变化。

因此，最大化对数似然等价于最小化：

$$
\sum_{i=1}^{m}
\left(y^{(i)}-\theta^Tx^{(i)}\right)^2
$$

这就是最小二乘法。

所以核心逻辑是：

$$
\text{高斯误差假设}
\Longrightarrow
\text{最大似然估计}
\Longrightarrow
\text{最小化平方误差}
$$

换句话说，这个逻辑是：最大化预测结果，也就是让真实结果出现在预测值附近的可能性最大化。这里“可能性”的量化标准是概率密度；概率密度越大，说明在相同的小区间内观察到真实值越合理。

