线性回归和 softmax 回归
一、线性回归
(一)核心场景与模型表达式
线性回归主要用于预测连续值,典型场景如房价估计 —— 通过分析往年房价、房屋特征(如卧室数量、停车位数量等),估计目标房屋的合理价格。
其核心模型表达式有两种形式:
- 针对单个样本:预测值等于权重向量与输入特征向量的点积,再加上偏置项。其中,输入特征向量包含样本的各项属性,权重向量代表各特征对预测结果的影响程度,偏置项是调整预测基准的常数。
- 针对多个样本:预测值等于样本特征矩阵与权重向量的乘积,再加上偏置项。样本特征矩阵的每行对应一个样本的所有特征,通过矩阵运算可批量计算多个样本的预测值。
(二)线性回归的神经网络表示
线性回归可看作最简单的单层神经网络,结构包含:
- 输入层:接收样本特征(如房屋的卧室数、车库面积等),无计算过程,仅传递特征数据。
- 输出层:仅含一个神经元,对输入特征进行线性组合(即上述单个样本的模型表达式),输出预测的连续值。
- 权重连接输入层与输出层,每个权重对应一个输入特征的重要性;偏置为输出层神经元的偏移量,用于调整整体预测基准。
二、模型训练核心:损失函数与优化算法
(一)损失函数:量化预测误差
损失函数用于衡量模型预测值与真实值的差异,线性回归中常用平方损失(L2 损失),此外还有其他类型损失函数适用于不同场景:
损失函数类型 | 核心特点 | 适用场景 |
---|---|---|
平方损失(L2 损失) | 计算预测值与真实值差值的平方,对异常值(与真实值偏差极大的预测值)敏感,异常值会导致损失值大幅增大 | 线性回归等连续值预测任务,且数据中异常值较少的场景 |
L1 损失 | 计算预测值与真实值差值的绝对值,对异常值的敏感度低于平方损失,鲁棒性更强 | 需减少异常值干扰的回归任务,如含少量极端数据的房价预测 |
Huber 损失 | 结合 L1 和 L2 损失特性:当预测误差较小时,采用平方损失(使损失变化更平滑);当误差超过阈值时,采用 L1 损失(避免异常值导致损失过大) | 兼顾损失平滑性与抗异常值能力的回归任务 |
(二)优化算法:寻找最优参数
优化算法的目标是调整权重和偏置,使损失函数最小化,核心方法围绕梯度下降展开。
1. 梯度与梯度法基础
- 梯度:由损失函数对所有参数(权重和偏置)的偏导数组成的向量,它指示函数值减小最快的方向(注意:梯度方向不是绝对的最小值方向,但沿此方向调整参数能最大限度降低函数值)。
- 梯度法流程:从初始参数(随机设定的权重和偏置)出发,沿梯度的反方向(因为梯度指向函数值增大最快的方向,反方向才能减小损失)更新参数;之后重新计算新参数对应的梯度,再次沿反方向更新,重复此过程,直至损失函数值收敛到较小且稳定的范围(接近最小值)。
2. 三种梯度下降变体
梯度下降类型 | 核心逻辑 | 优缺点 |
---|---|---|
批量梯度下降(BGD) | 每次更新参数时,使用全部训练数据计算梯度 | 优点:梯度计算基于所有数据,结果准确,模型收敛稳定;缺点:当数据量极大时,计算梯度的耗时和内存占用极高,效率低 |
随机梯度下降(SGD) | 每次更新参数时,随机选取 1 个训练样本计算梯度 | 优点:每次计算量小,速度快,适合大规模数据;缺点:单个样本的梯度随机性强,导致梯度波动大,模型收敛路径不稳定,可能在最小值附近震荡 |
小批量随机梯度下降(Mini-batch SGD) | 每次更新参数时,选取一小批训练样本(如 32 个、64 个)计算梯度,用这批样本的平均梯度更新参数 | 优点:平衡计算效率与梯度稳定性 —— 批量大小适中,既避免了批量梯度下降的低效,又减少了随机梯度下降的波动;缺点:需要手动调整 “批量大小” 这一超参数 |
3. 关键超参数调整
- 学习率:控制每次参数更新的步长,直接影响模型收敛效果:
- 太大:步长过大,可能跳过损失函数的最小值,导致模型震荡不收敛(损失值忽大忽小,无法稳定下降);
- 太小:步长过小,参数更新缓慢,需要极多次迭代才能使损失函数收敛,耗时久。
- 批量大小:小批量随机梯度下降中 “一批样本” 的数量:
- 太小:无法充分利用 GPU 等硬件的并行计算能力,且批量样本少会导致梯度估计的方差大,模型收敛不稳定;
- 太大:会占用过多内存,且当批量增大到一定程度后,梯度估计的准确性提升有限,反而增加计算成本。
三、Softmax 回归:从回归到多类分类
(一)回归与分类的核心区别
任务类型 | 输出特点 | 目标 | 典型场景 |
---|---|---|---|
回归 | 输出单个连续值(如房价、未来温度、商品销量) | 最小化预测值与真实值的误差(如通过平方损失衡量) | 房价预测、股票价格走势预测、温度预报 |
分类 | 输出多个离散类别(如 “猫 / 狗”“0-9 数字”“正常评论 / 恶语评论”) | 最大化预测样本属于 “真实类别” 的概率 | ImageNet 图像分类(1000 个类别)、MNIST 手写数字分类(10 个类别:0-9)、维基百科恶语评论分类(7 个类别:toxic、severe_toxic 等) |
(二)Softmax 回归的核心结构
Softmax 回归是用于多类分类的单层神经网络,结构特点:
- 输入层:接收样本特征(如图像的像素值、文本的向量表示等);
- 输出层:神经元的数量等于分类任务的类别数(如 MNIST 手写数字分类任务中,输出层含 10 个神经元,分别对应 0-9 这 10 个数字类别);
- 全连接:输出层的每个神经元都与输入层的所有特征相连,每个连接对应一个权重,神经元会计算输入特征与对应权重的线性组合(记为 “logits”,即未经过概率转换的原始输出)。
(三)Softmax 运算:将线性输出转为概率
Softmax 运算的作用是将输出层的线性组合结果(可能为正、负任意实数)转换为概率分布—— 确保每个类别对应的预测概率非负,且所有类别概率之和为 1,便于直观判断样本属于各类别的可能性。
具体计算逻辑为:对于输出层每个神经元的线性组合结果,先计算其指数值(确保结果非负),再将该指数值除以所有神经元线性组合结果的指数值之和,得到该类别对应的预测概率。
示例:若输出层 3 个神经元的线性组合结果为 [1, -1, 2],则先计算每个结果的指数值(分别约为 2.718、0.368、7.389),再计算每个指数值占总和(2.718+0.368+7.389≈10.475)的比例,最终得到概率分布约为 [0.26, 0.04, 0.7],即样本属于第 3 类的概率最高(70%)。
(四)Softmax 回归的损失函数:交叉熵损失
由于 Softmax 回归的输出是概率分布,需用交叉熵损失衡量 “模型预测的概率分布” 与 “样本真实标签的概率分布” 之间的差异。
真实标签的概率分布通常用 “one-hot 编码” 表示:若样本属于第 i 类,则真实分布中第 i 类的概率为 1,其他所有类别的概率为 0(如 MNIST 中数字 “5” 的真实标签分布为 [0,0,0,0,0,1,0,0,0,0])。
交叉熵损失的计算逻辑为:对于每个样本,将真实标签分布中概率为 1 的类别对应的 “预测概率的对数” 取负,得到该样本的损失值;批量样本的总损失为所有样本损失值的平均。交叉熵损失值越小,说明模型预测的概率分布与真实分布越接近,模型分类效果越好。
四、核心总结
- 线性回归:针对连续值预测,模型本质是输入特征的线性组合,通过平方损失量化误差,用梯度下降(尤其是小批量梯度下降)优化权重和偏置,对应单层单输出的神经网络结构。
- 梯度下降关键:小批量随机梯度下降是深度学习默认优化算法,需重点调整学习率(避免过大或过小)和批量大小(平衡计算效率与梯度稳定性)两个超参数。
- Softmax 回归:针对多类分类,通过全连接层输出线性组合结果,经 Softmax 运算转为概率分布,用交叉熵损失衡量预测与真实标签的差异,对应单层多输出的全连接神经网络结构。
- 任务匹配原则:预测连续值(如房价、温度)用回归模型,损失函数优先选平方损失;预测离散类别(如数字、图像类别)用 Softmax 回归,损失函数用交叉熵损失。