type
status
date
slug
summary
tags
category
icon
password
线性回归是机器学习和统计学中的基础方法之一,旨在找到一条(或在更高维度中找到一个超平面)最适合一组数据点的直线。其背后核心的优化方法便是最小二乘法(Least Squares),它通过最小化预测值与实际观测值之间的误差来找到最优拟合。在本文中,我们将深入探讨最小二乘法的推导过程,详细解释每一步,特别是梯度计算和矩阵求导的细节。准备好了吗?让我们开始吧!🚀✨

1. 什么是最小二乘法?🤔

在线性回归中,最小二乘法是一种通过最小化残差的平方和来找到最佳拟合直线(或超平面)的方法。具体来说,它最小化的是 残差平方和(RSS),即预测值与实际数据点之间的误差。
给定一组训练数据 ,其中 () 为输入特征,( ) 为对应的输出标签,目标是确定最优参数 ( ),使得预测值与实际值之间的误差最小。

2. 损失函数:均方误差(MSE)🧮

为了量化误差,我们定义 均方误差(MSE) 作为损失函数: 其中:
  • ) 是对第 () 个样本的预测值,
  • ( ) 是第 ( ) 个样本的真实标签,
  • ( ) 是样本总数。
在损失函数前加上 ( ) 主要是为了计算梯度时方便,简化数学过程,避免出现多余的系数2。

3. 损失函数的矩阵表示🔢

为了更加简洁地表示预测值和损失函数,我们将其转化为矩阵形式。对于一个包含 ( ) 个样本和 ( ) 个特征的数据集,定义以下变量:
  • ( ) 是一个 ( ) 的特征矩阵,其中每一行是一个训练样本,每一列是一个特征。
  • ( ) 是一个 ( ) 的目标变量向量。
  • ( ) 是一个 ( ) 的参数向量,我们需要通过最小化损失函数来求解它。
所有样本的预测值可以表示为:[] 因此,损失函数(MSE)可以写成矩阵形式:[] 其中,( ) 是残差向量 ( ) 的平方欧几里得范数,即预测值与实际值之间的差异。

4. 损失函数的梯度计算 ✨

为了最小化损失函数,我们需要计算 ( ) 关于 ( ) 的梯度。梯度是损失函数对每个参数 ( ) 的偏导数构成的向量。接下来我们将详细推导梯度。
  1. 平方范数展开:平方范数 ( ) 就是 与其自身的点积:
  1. 链式法则:为了对平方范数进行求导,我们首先应用链式法则: 使用矩阵求导法则,我们知道, 关于 的导数是: 这里的2来自于对平方项求导。由于原始损失函数前已经有 ,所以导数中这个2可以被省略。
  1. 最终梯度表达式:因此,损失函数关于 这给出了梯度的方向,即损失函数增加得最快的方向。为了最小化损失,我们将沿着梯度的反方向更新

5. 设定梯度为零 🔴

为了找到损失函数的最小值,我们令梯度为零: 简化得到: 这给出了一组 线性方程,通过求解这个方程,我们可以得到最优的

6. 解这个方程得到🧩

解这个方程后,我们得到 正规方程 通过乘以(假设它是可逆的),我们得到最终的解: 这就是闭式解,它直接给出了最佳拟合的回归参数

7. 正规方程的优缺点 🏅

优点:

  • 闭式解:正规方程提供了一个明确的公式来计算 ,无需迭代,计算一次就能得到最优解。
  • 实现简便:对于小型数据集,正规方程计算直接且高效。

缺点:

  • 计算复杂度高:计算 对于特征数量非常多时非常耗时,且可能不稳定。😓
  • 不适用于大数据:对于大规模数据集,使用正规方程可能效率低下,因为矩阵的逆计算复杂度较高。

8. 总结:最小二乘法的威力 💪

最小二乘法通过最小化 均方误差(MSE) 来找到最佳的回归模型,使得预测值与真实值的差异最小。正规方程提供了一种通过矩阵运算直接求解 的方法,但对于高维数据集,它的计算复杂度较高,可能不适用。
理解最小二乘法的推导过程不仅帮助我们掌握线性回归模型,还为学习更复杂的机器学习算法打下了坚实的基础。🎯📚