深度学习(2)线性回归与Softmax 回归
·
一、线性回归
- 应用场景:核心用于连续值估计,典型案例为 “房价预测”—— 通过历史房价(如 A、B 的过往成交价)、房屋特征(卧室数量、车库数量、学区信息等)估计房屋价格,辅助出价决策。
- 核心公式:
- 向量形式:y=wTx+b(w为权重向量,x为输入特征向量,b为偏置)
- 矩阵形式:y=Xw+b(X为样本特征矩阵,适用于批量样本计算)
- 模型本质:单层神经网络的基础形式,输入层特征通过权重线性组合输出连续值。
二、基础优化算法
- 核心原理:通过沿损失函数递减方向更新参数(权重w、偏置b),寻找损失函数最小值对应的最优参数。
- 关键算法细节:
算法类型 核心逻辑 关键注意事项 梯度法 梯度指向 “函数值减小最多的方向”,沿梯度反方向迭代更新参数 无法保证指向全局最小值,仅能最大限度减小当前函数值 随机梯度下降 单样本迭代,不断沿损失函数递减方向更新参数 收敛过程可能震荡,需合理控制学习率 小批量随机梯度下降 深度学习默认算法,每次用 “小批量样本” 计算梯度并更新参数 批量值需平衡:
- 不可过小(难以利用计算资源,效率低)
- 不可过大(浪费计算资源,灵活性差) - 核心超参数:
- 学习率:控制参数更新步长,需避免 “过大(参数震荡不收敛)” 或 “过小(收敛过慢)”。
- 批量大小:平衡计算效率与梯度准确性,无固定标准,需结合硬件资源调试。
三、回归与分类的区别
| 对比维度 | 回归任务 | 分类任务 |
|---|---|---|
| 输出类型 | 连续值(如房价、温度) | 离散类别(如数字 0-9、图像类别) |
| 核心目标 | 最小化预测值与真实值的误差 | 最大化类别预测的准确率 |
| 典型任务案例 | 房价估计、销量预测 | MNIST 手写数字分类(10 类)、ImageNet 自然对象分类(1000 类)、Kaggle 蛋白质图像分类(28 类)、恶语评论分类(7 类) |
| 损失函数关联 | 常用 L2 损失、L1 损失、Huber 损失 | 常用交叉熵损失 |
四、Softmax 回归
- 模型定位:专门用于多类分类的单层神经网络模型,输出层为全连接层(每个输出依赖所有输入特征)。
- 核心运算 ——Softmax:
- 功能:将模型输出的原始分数(o1,o2,...,ok)转换为 “非负、和为 1” 的概率分布,代表每个类别的预测置信度。
- 公式:yi=∑k=1Kexp(ok)exp(oi)(K为类别数,yi为第i类的预测概率)
- 示例:原始分数 [1, -1, 2] 经 Softmax 运算后,概率分布为 [0.26, 0.04, 0.7]。
- 输出层设定:输出层神经元数量等于分类任务的类别数,如:
- MNIST 手写数字分类(10 类)→ 10 个神经元
- ImageNet 自然对象分类(1000 类)→ 1000 个神经元
五、损失函数
| 损失函数类型 | 数学特点 / 计算方式 | 关键特点 | 适用场景 |
|---|---|---|---|
| L2 损失(平方损失) | 计算预测值与真实值 “差值的平方” 均值 | 光滑可微,梯度随误差增大而增大,对异常值敏感 | 数据干净、无异常值的回归任务 |
| L1 损失(绝对损失) | 计算预测值与真实值 “绝对差值” 均值 | 非光滑(误差为 0 处不可微),对异常值鲁棒,梯度恒定 | 存在异常值的回归任务 |
| Huber 损失 | 误差≤阈值用 L2,误差 > 阈值用 L1 | 结合 L1 鲁棒性与 L2 光滑性,全定义域可微 | 少量异常值的回归 / 分类任务 |
| 交叉熵损失 | 计算真实分布p与预测分布q的差异(H(p,q)=−∑pilog(qi)) | 擅长衡量概率分布差异,梯度更新高效,对分类错误的惩罚更明显 | 多类分类任务(如 Softmax 回归) |
4. 关键点
1.线性回归与 Softmax 回归的核心差异体现在 “输出目标” 与 “模型功能” 上:线性回归输出单一连续值,通过线性组合输入特征逼近真实值;Softmax 回归输出多个类别概率值(和为 1),通过 Softmax 运算将原始分数转换为类别置信度,实现多类别预测。
2.梯度法的工作原理是:梯度是 “所有变量偏导数汇总的向量”,其方向指向 “函数值减小最多的方向”。梯度法通过 “当前位置沿梯度反方向更新参数→新位置重新计算梯度→重复迭代” 的流程,逐步减小损失函数值,寻找最优参数。
3.无法保证全局最小值的原因:梯度仅指示 “当前点函数值减小最快的方向”,而非 “全局最小值的方向”。若损失函数存在多个局部最小值或鞍点(梯度为 0 但非最小值),梯度法可能陷入局部最小值,无法抵达全局最小值。
4.小批量随机梯度下降中,批量大小的选择依据是平衡 “计算效率” 与 “梯度准确性”:
- 过小:无法充分利用硬件(如 GPU)的并行计算资源,梯度估计方差大,参数更新震荡频繁,收敛效率低;
- 过大:浪费计算资源(单次迭代处理过多样本,超出硬件承载能力),梯度估计过于平滑,可能错过最优参数,且内存占用过高。
而学习率选择依据是控制 “参数更新步长”:
- 过小:参数更新缓慢,收敛周期极长,易陷入局部最小值;
- 过大:参数更新步长过大,可能在损失函数最小值附近震荡,甚至导致损失函数值上升,无法收敛。
- 实际应用中需通过交叉验证调试,选择能兼顾收敛速度与稳定性的批量大小。
更多推荐


所有评论(0)