MuXinCG's Blog

Back

在这篇博客中,我们来讨论线性回归问题,笔者才疏学浅,如有出错,请读者多多指正。

线性回归的变量定义#

我们首先研究的线性回归问题,机器学习通俗上来讲,实际上是给定一个函数的输入和输出,让计算机来给我们人类这个函数到底是什么的一种方式。而机器学习又可以分为几类问题,其中当预测的目标变量为连续值时,称这类学习问题为回归问题,而线性表示机器学习研究的这个函数是线性函数。

为了更好地研究我们这门课的问题,我们可以先进行一些约定

  • 约定用 x(i)x^{(i)} 表示”输入”变量,也称作输入特征
  • 约定用 y(i)y^{(i)} 表示”输出”变量,也称作目标变量

我们学习的线性回归问题是一个监督学习问题,可以形式化表述为:给定一个训练集,目标是学习一个函数 h:X↦Yh: \mathcal{X} \mapsto \mathcal{Y},该函数能够根据输入 xx 预测目标值 yy,使输出 h(x)h(x) 尽可能接近真实值。

出于历史原因,函数 hh 被称为假设。

概率解释#

为了研究如何求解线性回归算法的最优值解法,我们需要建立一个模型来推导出我们需要最小化什么来求解出最后的线性回归结果。这句话有些绕口,其实就是

假设输入变量和输出变量之间的关系可以通过以下方程进行建模

y(i)=θTx(i)+ϵ(i)y^{(i)} = \theta^T x^{(i)} + \epsilon^{(i)}

此处 ϵ(i)\epsilon^{(i)} 表示误差项,它包含模型中未建模的因素与随机噪声。我们进一步假定这些误差独立同分布,并满足 ϵ(i)∼N(0,σ2)\epsilon^{(i)} \sim \mathcal{N}(0, \sigma^2)。在这个假设下,最大化训练集的似然等价于最小化平方误差。

定义代价函数

J(θ)=12m∑i=1m(hθ(x(i))−y(i))2J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}\left(h_\theta(x^{(i)}) - y^{(i)}\right)^2

最小均方算法#

我们考虑一种搜索算法:该算法从对 θ\theta 的某个”初始猜测”开始,然后不断地调整 θ\theta 的值,使其沿着使 J(θ)J(\theta) 减小的方向移动,直到最终收敛到最小化 J(θ)J(\theta) 的 θ\theta 值。具体而言,我们考虑使用梯度下降算法。该算法从某个初始的 θ\theta 值开始,并重复执行以下更新步骤

θj←θj−α∂∂θjJ(θ)\theta_j \leftarrow \theta_j - \alpha \frac{\partial}{\partial \theta_j}J(\theta)

对线性回归,梯度可以写成矩阵形式:

θ←θ−αmXT(Xθ−y)\theta \leftarrow \theta - \frac{\alpha}{m}X^T(X\theta-y)

局部加权线性回归#

现在我们再来仔细思考一下线性回归。如果待拟合的函数不是线性的,直接使用全局直线通常会产生较大误差。局部加权线性回归的做法是:对每个查询点 xx,让距离它更近的训练样本拥有更大的权重,例如

w(i)=exp⁡(−∥x(i)−x∥22τ2)w^{(i)} = \exp\left(-\frac{\lVert x^{(i)}-x\rVert^2}{2\tau^2}\right)

然后最小化加权平方误差

J(θ)=12∑iw(i)(θTx(i)−y(i))2.J(\theta) = \frac{1}{2}\sum_i w^{(i)}\left(\theta^T x^{(i)}-y^{(i)}\right)^2.

τ\tau 控制局部范围:它越小,模型越关注查询点附近的样本,但也更容易受到噪声影响。

CS229 Machine Learning - Linear Regression
https://muxincg2004.github.io/blog/cs229-lecture1
Author Ziheng Zhang
Published at March 2, 2026