深度学习基础:线性回归与 Softmax 回归全解析,从回归到分类的桥梁
深度学习基础:线性回归与 Softmax 回归全解析,从回归到分类的桥梁
在深度学习的知识体系中,线性回归和 Softmax 回归是两大基础模型 —— 线性回归是处理连续值预测的 “入门工具”,Softmax 回归则是连接回归与分类的 “关键桥梁”。今天我们从生活场景出发,拆解这两个模型的核心逻辑、损失函数与优化方法,帮你夯实深度学习的基础。
一、线性回归:预测连续值的 “入门模型”
提到线性回归,你可能会想到 “房价预测”“气温估算”—— 这些场景的核心都是 “根据已知特征,预测一个连续的数值”。线性回归的本质,就是找到一条 “最优直线(或超平面)”,让模型预测值与真实值的误差最小。
1. 从 “房价预测” 理解线性回归
假设我们要根据 “房屋面积”“卧室数量” 预测 “房价”,线性回归的思路是:
- 定义一个线性函数,将特征与房价关联:\(y = w_1x_1 + w_2x_2 + b\)
- \(x_1\)= 房屋面积,\(x_2\)= 卧室数量(输入特征);
- \(w_1\)、\(w_2\)= 特征权重(表示该特征对房价的影响程度,如 “面积每增加 1㎡,房价平均涨 1.5 万”);
- b= 截距(基础房价,即使面积为 0 时的理论值);
- y= 预测房价(连续值输出)。
推广到 n 个特征,线性回归的通用公式为: \(y = w^Tx + b\
- w是 n 维权重向量(\(w_1, w_2, ..., w_n\)),x是 n 维特征向量,\(w^Tx\)表示向量内积;
- 当特征数量较多时,可写成矩阵形式:\(Y = Xw + b\)(X是 m×n 的特征矩阵,m 为样本数,n 为特征数)。
2. 线性回归的 “神经网络视角”
线性回归本质是一个 “单输出的单层神经网络”:
- 输入层:接收 n 个特征(如面积、卧室数);
- 权重与偏置:输入层到输出层的连接权重为w,偏置为b;
- 输出层:仅 1 个神经元,输出连续值y。
这种简单的网络结构,是后续复杂神经网络(如 CNN、Transformer)的基础 —— 复杂模型本质是 “多层线性回归 + 非线性激活函数” 的组合。
3. 如何找到 “最优参数”:损失函数与梯度下降
线性回归的核心目标是 “最小化预测值与真实值的误差”,这需要通过 “损失函数” 量化误差,并通过 “优化算法” 调整参数w和b。
(1)损失函数:衡量误差的 “标尺”
常用平方损失(L2 损失),公式为: \(L(w,b) = \frac{1}{2m} \sum_{i=1}^m (y_i - \hat{y}_i)^2\)
- m是样本数,\(y_i\)是第 i 个样本的真实值,\(\hat{y}_i = w^Tx_i + b\)是预测值;
- 平方的作用:放大较大误差的惩罚,同时保证损失函数是 “凸函数”(只有一个最小值,便于优化)。
此外,还有其他损失函数适用于不同场景:
- L1 损失:\(L = \frac{1}{m} \sum_{i=1}^m |y_i - \hat{y}_i|\),对异常值更鲁棒(不会过度放大异常值误差);
- Huber 损失:结合 L1 和 L2 的优点,小误差用 L2(平滑),大误差用 L1(抗异常值)。
(2)优化算法:梯度下降法
我们需要找到一组w和b,让损失函数\(L(w,b)\)最小。由于无法直接求解,采用梯度下降法“逐步逼近” 最优解:
- 初始化参数:随机设定w和b的初始值;
- 计算梯度:求损失函数对w和b的偏导数(梯度),梯度方向是 “损失增大最快的方向”,反方向则是 “损失减小最快的方向”;
- 更新参数:沿梯度反方向调整参数,公式为: \(w = w - \eta \cdot \frac{\partial L}{\partial w}\) \(b = b - \eta \cdot \frac{\partial L}{\partial b}\)
- \(\eta\)是学习率(步长),控制每次参数更新的幅度;
- 迭代收敛:重复步骤 2-3,直到损失函数不再下降或达到最大迭代次数。
(3)梯度下降的三种变体
根据每次更新参数使用的样本数量,梯度下降分为三类:
- 批量梯度下降(BGD):每次用全部样本计算梯度,更新稳定但速度慢(适合小数据集);
- 随机梯度下降(SGD):每次用 1 个样本计算梯度,速度快但波动大(适合大数据集);
- 小批量随机梯度下降(MBGD):每次用 k 个样本(如 32、64、128)计算梯度,平衡速度与稳定性,是深度学习的 “默认选择”。
(4)超参数调优:学习率与批量大小
- 学习率(\(\eta\)):
- 太大:参数更新幅度过大,可能跳过最小值(损失震荡不收敛);
- 太小:参数更新缓慢,训练时间过长(甚至陷入局部最小值);
- 建议:从 0.01、0.001 等小值开始,结合学习率衰减策略(如训练后期减小学习率)。
- 批量大小(k):
- 太小:无法充分利用 GPU 并行计算,训练效率低;
- 太大:占用内存多,且可能导致模型收敛到 “次优解”;
- 建议:常用 32、64、128,根据 GPU 内存调整。
二、Softmax 回归:从回归到分类的 “桥梁”
线性回归适合预测连续值,但现实中更多任务是 “分类”(如 “手写数字识别”“垃圾邮件判断”)。Softmax 回归通过 “Softmax 运算” 将线性输出转换为 “概率分布”,从而实现多类分类。
1. 分类任务的核心需求
分类任务需要模型输出 “每个类别的置信度”,且满足两个条件:
- 置信度非负(概率不能为负);
- 所有类别的置信度之和为 1(概率分布的基本要求)。
例如,手写数字识别(10 类)中,模型输出\([0.01, 0.02, 0.95, ..., 0.01]\),表示 “该数字是 2 的概率为 95%”。
2. Softmax 运算:将线性输出转为概率
Softmax 回归的输入是线性层的输出\(o_1, o_2, ..., o_k\)(k 为类别数),通过 Softmax 运算转换为概率\(y_1, y_2, ..., y_k\),公式为: \(y_i = \frac{\exp(o_i)}{\sum_{j=1}^k \exp(o_j)}\)
- 分子\(\exp(o_i)\):通过指数函数确保输出非负;
- 分母\(\sum_{j=1}^k \exp(o_j)\):归一化处理,确保所有\(y_i\)之和为 1。
示例:若线性输出为\([1, -1, 2]\)(3 类),则:
- \(\exp(1)≈2.718\),\(\exp(-1)≈0.368\),\(\exp(2)≈7.389\);
- 分母≈2.718+0.368+7.389≈10.475;
- Softmax 输出≈\([0.26, 0.04, 0.7]\)(和为 1,且最大概率对应原线性输出最大的类别)。
3. Softmax 回归的网络结构
Softmax 回归是 “单输出层的多分类神经网络”:
- 输入层:接收 n 个特征(如手写数字图像的 784 个像素值);
- 全连接层:输入层与输出层全连接,输出 k 个线性值\(o_1~o_k\)(k 为类别数,如 10);
- Softmax 层:对线性输出做 Softmax 运算,输出 k 个类别概率。
注意:Softmax 回归的 “全连接层 + Softmax 层” 通常被视为一个整体,称为 “Softmax 回归层”。
4. 损失函数:交叉熵损失
分类任务不能用平方损失(会导致梯度消失,训练缓慢),而是用交叉熵损失—— 专门用于衡量 “预测概率分布” 与 “真实概率分布” 的差距,公式为: \(L = -\frac{1}{m} \sum_{i=1}^m \sum_{j=1}^k p_{ij} \log(q_{ij})\)
- \(p_{ij}\):第 i 个样本的真实概率分布(“独热编码” 形式,如数字 2 的真实分布为\([0,0,1,...,0]\));
- \(q_{ij}\):第 i 个样本的预测概率分布(Softmax 输出)。
由于真实分布\(p_{ij}\)只有 “正确类别” 为 1,其余为 0,交叉熵损失可简化为: \(L = -\frac{1}{m} \sum_{i=1}^m \log(q_{i,c_i})\)
- \(c_i\)是第 i 个样本的正确类别,\(q_{i,c_i}\)是模型对正确类别的预测概率;
- 含义:正确类别的预测概率越大,\(\log(q_{i,c_i})\)越接近 0,损失越小(符合 “预测越准,损失越小” 的直觉)。
三、线性回归与 Softmax 回归的核心区别
模型 | 任务类型 | 输出形式 | 损失函数常用类型 | 核心运算 |
---|---|---|---|---|
线性回归 | 回归(连续值) | 单个连续值 | 平方损失(L2)、L1 损失 | 线性变换(\(w^Tx + b\)) |
Softmax 回归 | 分类(离散值) | k 个类别概率(和为 1) | 交叉熵损失 | 线性变换 + Softmax 运算 |
四、总结:两大模型的核心价值
线性回归:
- 是深度学习的 “基础积木”,理解其参数优化逻辑(梯度下降、损失函数),就能迁移到复杂模型;
- 适用场景:房价预测、销量估算、气温预测等连续值预测任务。
Softmax 回归:
- 是 “回归到分类” 的关键桥梁,通过 Softmax 运算解决了分类任务的概率输出问题;
- 适用场景:手写数字识别、图像分类(如 ImageNet 1000 类)、文本分类(如恶语评论分类)等多类分类任务。
共性与延伸:
- 两者都是 “单层神经网络”,复杂模型(如 CNN、ResNet)的输出层常采用 Softmax 回归做分类;
- 优化逻辑一致:均通过梯度下降最小化损失函数,核心是调优学习率和批量大小。