0%

大模型第一课:手写推导线性回归的“灵魂”

大模型第一课:手写推导线性回归的“灵魂”

在深度学习和人工智能的宏大叙事中,Transformer、大语言模型动辄拥有千亿参数,令人望而生畏。但如果我们剥去这些复杂的外衣,会发现一切神经网络的基石,其实都源于一个最简单的模型——线性回归

今天这篇博客,我们不谈复杂的框架代码,而是回归数学本质。我们将通过一份手写的学习笔记,彻底搞懂机器是如何通过“试错”来学会预测的。

核心观点:理解线性回归,就是掌握了深度学习的“第一性原理”。


一、模型的诞生:给数据画一条直线

想象一下,你是一名房产中介,手头有一堆历史成交数据(房子的面积和对应的价格)。你的目标是找到一条规律,能最好地“穿过”这些数据点,从而根据新房子的面积来预测它的价格。

这就是线性回归要解决的问题:拟合

为了实现这个目标,我们需要定义两个核心要素:

  • 输入值 (x):喂给模型的特征数据(例如:房子面积)。
  • 输出值 (z):模型给出的预测结果(例如:预测房价)。

为了让 x 变成 z,我们需要两个可调节的参数——这也是模型真正要去“学习”的东西:

  1. 权重 ($w$, Weight):决定输入 x 对结果的影响程度。在几何上,它是直线的斜率
  2. 偏置 ($b$, Bias):决定当 x=0 时的基础值。在几何上,它是直线的截距

于是,我们得到了机器学习界最经典的公式:

💡 笔记划重点:这个简单的线性公式,就是所有神经网络神经元计算的雏形。


二、怎么才算“学得好”?引入 Loss 函数

模型给出了预测值 z,但怎么知道它准不准呢?我们需要一个“裁判”来打分。这个裁判就是损失函数(Loss Function)

同时,我们需要一个参照标准——目标值 (Y, Ground Truth),也就是真实答案(例如:房子的实际成交价)。

笔记中使用了最直观的均方误差(MSE)思想。为了简化推导,我们只看单个样本的误差平方:

代入,就得到了关于 w 和 b 的完整表达式:

核心逻辑图解:

情况 预测值 vs 真实值 Loss 大小 含义
预测准确 z 接近 Y 很小 (趋近于0) 模型表现好 ✅
预测偏差大 z 远离 Y 很大 模型表现差 ❌

我们的终极目标:通过不断调整 w 和 b,让 Loss 尽可能小。这就是所谓的“训练”。


三、如何调整参数?反向传播与梯度下降

知道了目标是最小化 Loss,那具体该怎么调 $w$ 和 $b$ 呢?像无头苍蝇一样随机乱猜肯定不行,我们需要数学指引。

这就涉及到了两个关键概念:反向传播(Backpropagation)梯度下降(Gradient Descent)

1. 寻找方向:梯度的意义

我们需要知道:如果我稍微改变一点点 $w$,Loss 会变大还是变小?变化有多快?

这就需要用到微积分中的求导(Derivative)。导数(也叫梯度)告诉我们 Loss 函数在当前点的“坡度”方向。

  • 如果梯度是正的,说明往右走 Loss 会变大,我们要往左走(减小 $w$)。
  • 如果梯度是负的,说明往右走 Loss 会变小,我们要往右走(增加 $w$)。

2. 链式求导实战

根据链式法则,我们对 $w$ 和 $b$ 分别求导(即计算梯度):

① 对权重 $w$ 求导:

  • 推导拆解:外层平方求导得到 $2(\dots)$ $\times$ 内层 $(xw+b)$ 对 $w$ 求导得到 $x$。
  • 物理含义:误差越大,或者输入 $x$ 越大,权重的调整幅度就应该越大。

② 对偏置 $b$ 求导:

  • 推导拆解:外层平方求导得到 $2(\dots)$ $\times$ 内层 $(xw+b)$ 对 $b$ 求导得到 $1$。

3. 迈出步伐:参数更新

有了梯度之后,我们就可以沿着梯度的反方向更新参数(因为梯度的方向是 Loss 增加最快的方向,反方向才是下山的路):

其中 $\eta$(读作 Eta)是学习率(Learning Rate)。它控制每次更新的步长:

  • 太大:可能直接跨过最低点,导致无法收敛(震荡)。
  • 太小:下山速度太慢,训练时间过长。

四、总结:机器学习的完美闭环

回顾整个流程,我们可以总结出机器学习最基本的闭环逻辑

graph LR
    A[输入 x] --> B(前向传播 计算 z = x*w + b)
    B --> C["计算 Loss(z - Y)²"]
    C -- 误差反馈 --> D["反向传播 计算梯度 ∂Loss/∂w, ∂Loss/∂b"]
    D --> E["参数更新w = w - η·梯度"]
    E --> B

    style A fill:#e1f5fe,stroke:#333,stroke-width:2px
    style B fill:#fff9c4,stroke:#333,stroke-width:2px
    style C fill:#ffe0b2,stroke:#333,stroke-width:2px
    style D fill:#f3e5f5,stroke:#333,stroke-width:2px
    style E fill:#c8e6c9,stroke:#333,stroke-width:2px
步骤 名称 作用 形象比喻
1 前向传播 用当前的 $w, b$ 算出预测值 $z$ 盲人摸象,先猜一下
2 计算 Loss 对比预测值 $z$ 和真实值 $Y$,算出误差 睁眼看看,猜错了多少
3 反向传播 利用求导公式,算出梯度 分析原因,确定调整方向
4 参数更新 沿梯度反方向更新 $w$ 和 $b$ 修正动作,下次猜得更准

循环往复,直到 Loss 降到一个可接受的范围。这就是机器“学习”的本质——不断试错、反馈、调整,直到找到最优解。


写在最后

虽然现在的 Transformer 和大模型结构极其复杂,内部包含了注意力机制、多层感知机等高级组件,但它们底层的优化逻辑,依然没有逃出这几行简单的公式:

  • 前向传播:$z = x \cdot w + b$ (及其非线性变体)
  • 计算损失:$(z - Y)^2$ (或交叉熵等)
  • 反向传播:链式求导
  • 参数更新:梯度下降

万丈高楼平地起。 当你以后面对再复杂的模型感到迷茫时,只要回到线性回归这个原点,你就不会迷失方向。


核心公式速查卡

建议截图保存,随时复习:

公式 含义
$z = x \cdot w + b$ 线性回归模型(前向传播)
$\text{Loss} = (z - Y)^2$ 损失函数(衡量预测误差)
$\frac{\partial \text{Loss}}{\partial w} = 2(z - Y) \cdot x$ 权重梯度(指导 $w$ 如何变)
$\frac{\partial \text{Loss}}{\partial b} = 2(z - Y)$ 偏置梯度(指导 $b$ 如何变)
$w = w - \eta \cdot \text{梯度}$ 参数更新规则(梯度下降)

欢迎关注我的其它发布渠道