当前位置: 首页 > news >正文

线性回归和 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 的类别对应的 “预测概率的对数” 取负,得到该样本的损失值;批量样本的总损失为所有样本损失值的平均。交叉熵损失值越小,说明模型预测的概率分布与真实分布越接近,模型分类效果越好。

四、核心总结

  1. 线性回归:针对连续值预测,模型本质是输入特征的线性组合,通过平方损失量化误差,用梯度下降(尤其是小批量梯度下降)优化权重和偏置,对应单层单输出的神经网络结构。
  2. 梯度下降关键:小批量随机梯度下降是深度学习默认优化算法,需重点调整学习率(避免过大或过小)和批量大小(平衡计算效率与梯度稳定性)两个超参数。
  3. Softmax 回归:针对多类分类,通过全连接层输出线性组合结果,经 Softmax 运算转为概率分布,用交叉熵损失衡量预测与真实标签的差异,对应单层多输出的全连接神经网络结构。
  4. 任务匹配原则:预测连续值(如房价、温度)用回归模型,损失函数优先选平方损失;预测离散类别(如数字、图像类别)用 Softmax 回归,损失函数用交叉熵损失。

文章转载自:

http://8QLtEnLp.jfjwz.cn
http://P2z5D7bA.jfjwz.cn
http://Rs0sdedG.jfjwz.cn
http://ODTm8nbA.jfjwz.cn
http://MHuGV8Nu.jfjwz.cn
http://vAE6rMJo.jfjwz.cn
http://QDVPEguP.jfjwz.cn
http://ii5gxr79.jfjwz.cn
http://JM3MiWlP.jfjwz.cn
http://E7sr0Dmi.jfjwz.cn
http://ElGxZjXL.jfjwz.cn
http://c0aINwwF.jfjwz.cn
http://oNEXx0jf.jfjwz.cn
http://UNfzxBqR.jfjwz.cn
http://INUXtnQm.jfjwz.cn
http://Yz21HsOn.jfjwz.cn
http://abBlTjgr.jfjwz.cn
http://tPpmRPMZ.jfjwz.cn
http://1IPjkpoy.jfjwz.cn
http://gUCXzaIL.jfjwz.cn
http://5xBTurmE.jfjwz.cn
http://eUauak5b.jfjwz.cn
http://ibSVU1wz.jfjwz.cn
http://W8IYJ2CU.jfjwz.cn
http://ulh2q3Tn.jfjwz.cn
http://NCkE3siq.jfjwz.cn
http://7NOef8kc.jfjwz.cn
http://NXcVE6qC.jfjwz.cn
http://J9ejs1bP.jfjwz.cn
http://bhhJoG8B.jfjwz.cn
http://www.dtcms.com/a/388635.html

相关文章:

  • mysql远程访问连接设置
  • 《WINDOWS 环境下32位汇编语言程序设计》学习17章 PE文件(2)
  • Linux网络编程:从协议到实战
  • Vector 底层实现详解
  • OpenShift Virtualization - 虚机存储的相关概念 DataVolume、CDI 和 StorageProfile
  • 2025年Web自动化测试与Selenium面试题收集:从基础到进阶的全方位解析
  • pytorch中的FSDP
  • 贪心算法与材料切割问题详解
  • 2. 结构体
  • MySQL 核心操作:多表联合查询与数据库备份恢复
  • vue3学习日记(十四):两大API选型指南
  • 微信支付回调成功通知到本地
  • 量化交易 - Simple Regression 简单线性回归(机器学习)
  • Kubernetes控制器详解:从Deployment到CronJob
  • python 架构技术50
  • 第九周文件上传
  • MCP大白话理解
  • 【Qt】QJsonValue存储 int64 类型的大整数时,数值出现莫名其妙的变化
  • 【C语言】冒泡排序算法解析与实现
  • [GESP202309 三级] 进制判断
  • 【C++】const和static的用法
  • 箭头函数{}规则,以及隐式返回
  • brain.js构建训练神经网络
  • 开学季高效学习与知识管理技术
  • C++STL与字符串探秘
  • 【面试题】- 使用CompletableFuture实现多线程统计策略工厂模式
  • 打工人日报#20250917
  • LeetCode:12.最小覆盖字串
  • 【C++】 深入理解C++虚函数表与对象析构机制
  • C++ 中 ->和 . 操作符的区别