线性回归

Joss认为 1+1=2 很有可能,当然 =3 或 =1 也有可能发生,只是概率比较小。这是他的看法。

发布于: 2025年10月18日 作者: Joss

从 y=kx+b 开始

从前 xx 表示自变量,yy 叫做因变量,它表示的是 xxyy 之间的关系如何。

例如 2=1×1+02=1 \times 1+0。在这里 xxyykkbb 都是实数。

然而现在任务的方向变了。我们想要找到最好的 kkbb,使得它能够表示所有的 xxyy 并且效果最好。于是换一种表达方法:

y =θ0+θ1xy  ={\theta_0}+{\theta_1}x

我们不想关注 xxyy 是怎么变化了,想把重点放在θ\theta上,于是有这样一种表达:

yθ =θ0+θ1xy_{\theta}  ={\theta_0}+{\theta_1}x

这样就可以表达了。

如果有 xx有两维呢,也就是 x=(x1x2)\mathbf{x}= \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} ,那么自然θ\theta就是三维,也就是说:

yθ =θ0+θ1x1+θ2x2y_{\theta}  ={\theta_0}+{\theta_1}x_1+{\theta_2}x_2

在这里,θ=(θ0θ1θ2)\theta = \begin{pmatrix} \theta_0 \\ \theta_1 \\ \theta_2 \end{pmatrix}

因此,yθy_\theta就可以表示为:

yθ=θ(1x)y_\theta=\theta\cdot \begin{pmatrix}1\\ \mathbf{x} \\ \end{pmatrix}

也就是说:

yθ=(θ0θ1θ2)(1x1x2)y_\theta=\begin{pmatrix} \theta_0 \\ \theta_1 \\ \theta_2 \end{pmatrix}\cdot \begin{pmatrix} 1\\ x_1 \\ x_2 \end{pmatrix}

有一些非常讨厌的写法,例如i=0nθixi\sum_{i=0}^{n} \theta_i x_i或者是θTx\mathbf{\theta}^T \mathbf{x},因为x0x_0根本没有定义,即使它们在数学上是等价的。 因此,你不能先约定xx是二维向量,然后又说θ0\theta_0对应x0x_0

不妨令x=(1x)\mathbf{x}=\begin{pmatrix} 1\\ \mathbf{x} \end{pmatrix}

现在,我们来约定一下最终的写法:

y=θTxy=\mathbf{\theta}^T \mathbf{x}

y 有一些误差

我们采集了一些自变量 x\mathbf{x} 与目标 yy ,例如第一个x\mathbf{x} 与第一个 yy ,第二个x\mathbf{x} 与第二个 yy ,该怎么表示这些x\mathbf{x}yy 呢?

最垃圾的教科书会想当然这样写:x1x2y1y2\mathbf{x}_1 \quad \mathbf{x}_2 \quad y_1 \quad y_2。理由很简单:x1x2y1y2\mathbf{x}_1 \quad \mathbf{x}_2 \quad y_1 \quad y_2都没被定义过,用下标表示不同的样本是很常见的方法啊,直接用就好了。然而下标这个方法在上一节表示的是向量的分量啊! 一般垃圾的教科书会这样写:x1x2y1y2\mathbf{x}^1 \quad \mathbf{x}^2 \quad y^1 \quad y^2,发现和幂函数冲突了,于是美滋滋加个括号就给读者端上来:x(1)x(2)y(1)y(2)\mathbf{x}^{(1)} \quad \mathbf{x}^{(2)} \quad y^{(1)} \quad y^{(2)}

在这里,用YY表示多个yy从左到右一列一列排好,用XX表示多个x\mathbf{x}从左到右一列一列排好,原来的公式也成立:

Y=θTXY=\mathbf{\theta}^T X

至于单个样本的情况,就用

y=θTxy=\mathbf{\theta}^T \mathbf{x}

来表示就好了。

然后我们发现,对于每个样本,实际上不可能真正测量到线性相关的关系,而是存在一定的误差ϵ\epsilon,也就是说,

y=θTx+ϵy=\mathbf{\theta}^T \mathbf{x} +\epsilon

这太麻烦了!来一点假设吧。假设 随机误差相互独立服从正态分布,也就是说ϵN(0,σ2)\epsilon \sim \mathcal{N}(0,\sigma^2),也就是说:

p(ϵ)=12πσexp(ϵ22σ2)p(\epsilon) = \frac{1}{\sqrt{2\pi\sigma}} \exp \left( -\frac{\epsilon^2}{2\sigma^2} \right)

可以得到:

p(yx,θ)=12πσ2exp((yθTx)22σ2)p(y|\mathbf{x}, \mathbf{\theta}) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp \left( -\frac{(y - \mathbf{\theta}^T \mathbf{x})^2}{2\sigma^2} \right)

其中p(yx)p(y|\mathbf{x})表示输入x\mathbf{x}得到yy的概率,p(θ)p(\theta)表示θ\theta的概率,正是我们想要的。

现在来考虑关于θ\theta的似然函数:

L(θ)=(x,y)(X,Y)[12πσ2exp((yθTx)22σ2)]\mathcal{L}(\mathbf{\theta}) = \prod_{(\mathbf{x}, y) \in (X,Y)} \left[ \frac{1}{\sqrt{2\pi\sigma^2}} \exp \left( -\frac{(y - \mathbf{\theta}^T \mathbf{x})^2}{2\sigma^2} \right) \right]

顺理成章取对数:

LL(θ)=(x,y)(X,Y)ln[12πσ2exp((yθTx)22σ2)]\mathcal{L L}(\mathbf{\theta}) = \sum_{(\mathbf{x}, y) \in (X,Y)} \ln \left[ \frac{1}{\sqrt{2\pi\sigma^2}} \exp \left( -\frac{(y - \mathbf{\theta}^T \mathbf{x})^2}{2\sigma^2} \right) \right]

从而得到:

LL(θ)=(x,y)(X,Y)[12ln(2πσ2)(yθTx)22σ2]\mathcal{L L}(\mathbf{\theta}) = \sum_{(\mathbf{x}, y) \in (X,Y)} \left[ -\frac{1}{2} \ln(2\pi\sigma^2) - \frac{(y - \mathbf{\theta}^T \mathbf{x})^2}{2\sigma^2} \right]

观察图中的公式,为了最大化似然函数LL(θ)\mathcal{L L}(\mathbf{\theta}),得到损失函数J(θ)J(\mathbf{\theta})平方误差和(SSE)

J(θ)=12(x,y)(X,Y)(θTxy)2J(\mathbf{\theta}) = \frac{1}{2} \sum_{(\mathbf{x}, y) \in (X,Y)} \left( \mathbf{\theta}^T \mathbf{x} - y \right)^2