1.1 线性回归

HuxJiang Lv2

线性回归的基本概念

  • 线性回归基于几个简单的假设

    • 假设自变量和因变量之间的关系是线性的,也就是说可以表示为中元素的加权和;
    • 假设任何噪声都比较正常,如噪声遵循正太分布;
  • 数据集/训练集:对生活中的一些问题进行预测时,收集到的真实数据,称为数据集或训练集;例如通过房屋面积和房龄来预测房屋价格,收集到的所有数据就是数据集。

  • 样本/数据点/数据样本:数据集中的每一个数据项就是一个样本,也就是一个成员的所有相关属性数据;例如一个房屋的面积、年龄、价格,就是一个样本。

  • 标签/目标:需要预测的属性值,例如房屋的价格,在已有的数据集中,我们已知房屋价格,这就是样本的标签,预测时,只知道房屋的面积和年龄,那么价格就是目标;

  • 特征/协变量:进行预测时所依赖的属性,例如房屋的面积和年龄,就是特征。

  • 通常使用 n 来表示样本数,对于索引为 i 的样本,其输入表示为,对应的标签为

线性模型

  • 线性假设是指目标(房屋价格)可以表示为特征(面积和房龄)的加权和,如下面的式子:

    • 式子中的称为权重(weight),权重决定了每个特征对我们预测值的影响。 称为偏置(bias)、偏移量(offset)或截距(intercept)。
  • 仿射变换:通过加权和对特征进行线性变换(linear transformation), 并通过偏置项来进行平移(translation)。(线性变换和仿射变换的区别在于偏置项,线性变换没有偏置项)

    • 严格来说, 上面的式子就是输入特征的一个 仿射变换(affine transformation)。
  • 给定一个数据集,我们的目标是寻找模型的权重和偏置, 使得根据模型做出的预测大体符合数据里的真实价格。输出的预测值由输入特征通过线性模型的仿射变换决定,仿射变换由所选权重和偏置确定。

线性模型的向量矩阵表示

  • 机器学习中,通常使用高维数据,在运算过程中使用线性代数表示,当输入包含个特征时,将对结果的预测值表示为

  • 将所有的特征写成一个向量中,将所有权重放到向量​中,则可以用点积表示上式

  • 上面的式子中,是一个向量,表示一个样本的特征,现在将所有个样本的特征组合成一个矩阵,矩阵的每一行是一个样本,每一列是一个特征。则预测值可以按照如下方法表示,这个过程中的求和将使用 广播机制

  • 给定训练数据特征和对应的已知标签,线性回归的目标是找到一组权重向量和偏置,当给定从的同分布中取样的新样本特征时,这组权重向量和偏置能够使得新样本预测标签的误差尽可能小。

损失函数

  • 在前面我们说过,我们的目的是找到一组权重和偏置让预测值和标签的误差最小,用损失函数(loss function)来表示这个误差的大小;

  • 通常会选择非负数作为损失,且数值越小表示损失越小,完美预测时的损失为 0。

  • 寻找一组参数使得在所有训练样本上的总损失最小,找到的这组参数即最优参数,表示使损失函数最小的参数

平方误差函数

平方误差函数是回归问题中最常用的损失函数;

  • 当样本的预测值为,其相应的真实标签为时,平方误差可以定义为以下公式:

    其中常数不会带来本质的差别,但这样在形式上稍微简单一些(因为当我们对损失函数求导后常数系数为 1);

  • 所有样本的损失求均值,就得到了模型在整个数据集上的质量,这就是均方误差损失函数:

优化器 Optimizer

随机梯度下降 SDG

线性回归模型的解析解

将偏置和权重进行合并,得到,则,那么损失函数可以写成:

$$
\begin{aligned}
L(\mathbf{\theta}) &= \frac{1}{2n} \sum_{i=1}^n \left( [\mathbf{X} \mathbf{\theta} - \mathbf{y}]_i \right)^2\
&=\frac{1}{2n}[\mathbf{X} \mathbf{\theta} - \mathbf{y}]^\top[\mathbf{X} \mathbf{\theta} - \mathbf{y}]\
&=\frac{1}{2n}[\mathbf{\theta}^\top\mathbf{X}^\top - \mathbf{y}^\top][\mathbf{X} \mathbf{\theta} - \mathbf{y}]\
&=\frac{1}{2n}[\mathbf{\theta}^\top\mathbf{X}^\top\mathbf{X} \mathbf{\theta}-\mathbf{\theta}^\top\mathbf{X}^\top\mathbf{y}-\mathbf{y}^\top\mathbf{X} \mathbf{\theta}+\mathbf{y}^\top\mathbf{y}]

\end{aligned}
$$

要让损失函数最小,则求损失函数关于参数的极值,对其进行求导可得:

也就是说

线性回归这样的简单问题存在解析解,但并不是所有的问题都存在解析解。 解析解可以进行很好的数学分析,但解析解对问题的限制很严格,导致它无法广泛应用在深度学习里。

在无法得到解析解的情况下,我们需要其他有效方法优化损失函数,梯度下降(gradient descent)是其中一种,这种方法几乎可以优化所有深度学习模型。 它通过不断地在损失函数递减的方向上更新参数来降低误差。

  • 梯度下降算法的思路:

    • 计算损失函数关于模型参数的偏导数/梯度,得到一个与模型参数相关的、固定的式子;
    • 生成初始一个模型参数,带入偏导数式子中,如果偏导数大于 0,说明此时损失函数随着参数增大而增大,需要减小该参数,偏导数小于 0 同理;
    • 用上一步的参数减去将刚才得到的偏导数的固定倍数,对参数进行优化更新;
  • 梯度下降算法每次更新都需要计算新的偏导数值,需要整个数据集的数据参与运算,对这个问题进行优化,提出小批量随机梯度下降(minibatch stochastic gradient descent):在每次迭代中,随机取一小批样本,计算这批样本的损失函数关于模型参数的导数(梯度);

    • 其中表示每个小批量中的样本数,也称为批量大小(batch size)。
    • 表示学习率(learning rate)。
    • 批量大小和学习率的值通常是手动预先指定,这些可以调整但不在训练过程中更新的参数称为超参数(hyperparameter)。调参(hyperparameter tuning)是选择超参数的过程。
    • 超参数通常是我们根据训练迭代结果来调整的,而训练迭代结果是在独立的验证数据集(validation dataset)上评估得到的。

正态分布与均方误差损失函数

正态分布(normal distribution),也称为高斯分布(Gaussian distribution),若随机变量具有均值和方差(标准差),其正态分布概率密度函数如下:

假设了观测中包含噪声,其中噪声服从正态分布。噪声正态分布如下:

噪声项
  • 尽管我们相信给定预测的最佳模型会是线性的,但是很难找到包含个样本的数据集完全形成一条直线,因此加入一个噪声项表示误差;

其中,。可以写出从给定的得到特定似然(likelihood),其含义是,给定,则得到取值的概率,现在,根据极大似然估计法,参数的最优值是使整个数据集的似然最大的值:

根据极大似然估计法选择的估计量称为极大似然估计量, 通过最大化似然对数来简化。由于通常说最小化而不是最大化,因此给式子加一个负号,可以改为最小化负对数似然。由此可以得到的数学公式是:

现在我们只需要假设是某个固定常数就可以忽略第一项,因为第一项不依赖于。第二项除了常数外,其余部分和前面介绍的均方误差是一样的。幸运的是,上面式子的解并不依赖于。因此,在高斯噪声的假设下,最小化均方误差等价于对线性模型的极大似然估计。

从线性回归到深度网络

  • 采用描述神经网络的方式来描述线性模型,从而把线性模型看作一个神经网络。

  • 我们用“层”符号来重写这个模型:在下面的图将线性回归模型描述为一个神经网络。 需要注意的是,该图只显示连接模式,即只显示每个输入如何连接到输出,隐去了权重和偏置的值。输入为,因此输入层中的输入数(或称为特征维度,feature dimensionality)为
    网络的输出为,因此输出层中的输出数是 1。

    singleneuron

  • 需要注意的是,输入值都是已经给定的,并且只有一个计算神经元。由于模型重点在发生计算的地方,所以通常我们在计算层数时不考虑输入层。也就是说,图中神经网络的层数为 1。可以将线性回归模型视为仅由单个人工神经元组成的神经网络,或称为单层神经网络。

  • 对于线性回归,每个输入都与每个输出(在本例中只有一个输出)相连,我们将这种变换(图中的输出层)称为全连接层(fully-connected layer)或称为稠密层(dense layer)。

  • 标题: 1.1 线性回归
  • 作者: HuxJiang
  • 创建于 : 2026-02-05 22:29:32
  • 更新于 : 2026-06-25 01:28:09
  • 链接: https://github.com/HuxJiang/2026/02/05/11-linear-regression-z2dho9f/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论