李哥深度学习第三节 回归实战
先聊个有意思的事。我见过太多人学深度学习,前两节课还兴致勃勃,一到回归实战就开始“犯迷糊”。原因不复杂:大家在各种教程里看到的例子大多是图像分类,猫猫狗狗、手写数字,所以脑子里默认深度学习就是“把东西分个类”。但真到了工业界、到了业务项目里,你遇到的第一类刚需问题往往不是分类,而是“预测一个数”。库存备多少?产品良率大概是多少?设备的剩余寿命还能撑多久?传感器读数对应的物理量是多少?这些都是回归问题。
这一节,李哥带你把回归实战这条路彻底走通。从“回归在解决什么问题”这个底层认知讲起,到数据怎么准备、网络骨架怎么搭、损失函数和评估指标怎么选、训练怎么调参,再到踩坑记录和工具选型,一套流程走完,你就能独立把一个回归任务从零跑到出结果。听完这节课,你回头看那些只会跑分类demo的教程,会发现它们确实只教了半截功夫。
1. 回归不是“预测房价”这么简单——先建立正确的任务认知
1.1 回归问题最本质的定义:输出是连续值
回归问题的定义听起来特别简单:输入一组特征,输出一个连续数值。但请注意,这个连续数值背后涉及的数学假设,决定了你的模型设计思路。分类任务的输出是离散的标签,比如“猫、狗、猪”,没有大小关系;回归任务的输出是一个实数区间里取值,比如价格、温度、浓度、寿命,相邻两个值之间的差距具有实际意义。
“连续值”这三个字意味着什么?意味着Loss函数要考虑“预测错了多少”,而不只是“预测对了没有”。你预测房价差了5万和差了50万,完全是两个量级的错误,模型必须能感知这种差距。这直接决定了输出层的结构:回归模型最后一层通常是一个神经元、没有激活函数(linear activation),输出范围是整个实数域;分类模型最后一层是Softmax,输出范围是0到1的概率分布。
有些初学者会把逻辑回归(Logistic Regression)当成回归算法,这是特别常见的误解。逻辑回归名字里带“回归”,但它的输出经过Sigmoid映射到(0,1)区间,本质是二分类,不是回归。真正做回归任务时,线性回归、支持向量回归(SVR)、随机森林回归、XGBoost回归这些经典方法,和深度学习回归模型是两条路线,后面我会专门讲它们之间怎么选型。
1.2 回归任务的“真实地图”:从你身边的数据到专有领域
光说定义还是太虚。我们直接把回归任务按数据形态和业务场景拆开来看,你会发现它无处不在,深度学习回归的核心优势也就藏在这些场景里。
- 表格型数据回归:传感器标定、工艺参数预测、金融风控里的违约损失率估计、电商销量预测。这种任务的特征通常是几十到几百个离散字段,结构化程度高。
- 图像型数据回归:从缺陷图片预测缺陷长度(工业质检)、从生物医学影像测量器官尺寸、从卫星遥感影像估算地表参数。图像本身是像素矩阵,回归目标往往是物理量。
- 时序型数据回归:设备剩余寿命预测、能源负载预测、股票波动率估计。输入是连续采样的时间序列,输出可以直接是下一秒的数值,也可以是未来一段窗口的数值序列。
- 文本/多模态回归:从评论预测评分、从产品描述预测受众年龄段。这类任务样本稀少时难度极高,但大模型时代已经逐步成熟。
你在实战里遇到的回归任务,基本跑不出这张地图。深度学习回归和经典回归的边界也在这里拉开了:表格数据上数据量不大时,XGBoost往往是性价比之王;但图像、时序、多模态这种特征高度复杂的数据,深度学习模型就是更合理的选择。
1.3 回归模型的核心学习目标:逼近真实映射函数
我们再往深挖一层。输入特征x和输出数值y之间,客观存在一个我们不知道的真实关系,记为y=f(x)。机器学习模型的本质就是用一个参数化的函数g(x;θ)去逼近f。分类任务里,g的输出是一个离散分布;回归任务里,g的输出是一个连续值。
理解这一层,你才能看透后面所有的选择。比如,为什么要用MSE做损失函数?因为MSE本质上是假设误差服从高斯分布,模型去最大化似然估计的结果。为什么要做特征归一化?因为神经网络用梯度下降训练,不同特征尺度差异过大会导致损失函数等高线呈椭圆形,梯度更新路径震荡。这些都不是“别人说这么做所以我也这么做”,而是“回归任务的性质决定了该这么做”。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数据准备和预处理——回归实战最容易翻车的环节
2.1 数据清洗:离群值比缺失值更致命
很多实战教程会把数据清洗一笔带过,好像pandas里
