线性回归与逻辑回归:回归与分类的两块第一性基石
从拟合一条直线的线性回归出发,理解参数、损失与梯度下降;再看逻辑回归如何用 sigmoid 把线性输出压成概率,成为最基础也最常用的线性分类器
- 理解线性回归在做什么,以及最小二乘损失的含义
- 搞懂梯度下降为什么能一步步找到更优参数
- 理解 sigmoid 如何把任意实数变成概率,逻辑回归为何是分类
- 建立「线性模型 + 非线性变换」这一在神经网络中反复出现的结构直觉
一切从「拟合一条直线」开始
线性回归假设输出是输入的线性组合:给定特征 x,预测 ŷ = w·x + b,其中 w 是权重、b 是偏置。单特征时它就是一条直线,多特征时是一个超平面。学习的目标是找到一组 (w, b),让所有样本的预测值 ŷ 与真实值 y 的整体误差最小。
最常用的误差度量是最小二乘损失:把每个样本的误差(ŷ−y)平方后求和平均。平方有两个作用——正负误差不会互相抵消,且越大的误差惩罚越重。最小化这个损失,就得到最优拟合直线。
这里用的最小二乘损失,在 stage11〈最小二乘与线性回归的闭式解〉有从高中零基础开始的完整推导:从「误差平方和最小、对参数求导等于 0」出发,一步不跳地推出解析解,再连到神经网络里的损失下降。读到这儿想刨根——为什么是平方、为什么求导为 0 就最优——可以回去把那节打通。
梯度下降:所有深度学习优化的祖宗
现实中特征成千上万,不可能靠解方程求最优,通用办法是梯度下降:损失可以看作参数空间里的一片山地,梯度指向「上坡最陡」的方向,让参数沿着梯度的反方向走一小步,损失就下降一点;反复迭代直到走到谷底。每一步的步长叫学习率,太大容易在谷底两侧横跳甚至越走越高,太小则收敛极慢。
随机初始化参数 w,b
前向算预测与损失
反向算损失对参数的梯度
沿梯度反方向更新参数
w ← w − 学习率 × 梯度
重复直到损失不再明显下降
理解这张图,就理解了后面所有「训练」在干什么
线性回归/逻辑回归简单到可以完全看懂,却包含了机器学习的全部核心要素:假设函数、损失、梯度、优化、正则化。神经网络本质上就是「很多层线性变换叠加非线性」再用同一套梯度下降训练。
逻辑回归:套一个 sigmoid 就变成分类
想做二分类(是/否、违约/不违约、猫/非猫),直接用线性回归输出连续值不合适。逻辑回归的做法是:先照旧算出线性值 z = w·x + b,再用 sigmoid 函数把 z 压到 (0,1) 区间,解释成「属于正类的概率」;概率超过阈值(通常 0.5)就判为正类。
输入特征 x
线性打分 z = w·x + b
取值范围 (−∞, +∞)
sigmoid:σ(z) = 1/(1+e^(−z))
压缩到 (0,1),解释为概率
阈值 0.5 判定类别
≥0.5 正类,否则负类
sigmoid 是一条 S 形曲线:z 很大时趋近 1,z 很小时趋近 0,z=0 时恰为 0.5。因为输出是概率,逻辑回归的损失不再是最小二乘,而是交叉熵——它衡量「预测概率分布」与「真实类别分布」的差异,是之后所有分类问题和大模型预训练的标准损失。
回归 vs 分类,一眼分清
逻辑回归的决策边界是一个线性超平面,所以它只能分开「近似线性可分」的数据。当两类点在原始空间里缠在一起,可以通过特征变换(或直接堆神经网络层)把数据映射到更容易线性分开的高维空间——这正是从线性模型走向深度学习的桥梁。
资深工程师加餐
底层原理 · 大厂视角 · 工程经验,点卡片展开
先查数据:标签是否正确、有没有特征和标签泄漏、是否做了归一化;再查损失与学习率:学习率太大震荡、太小几乎不动;接着看批量大小和优化器,最后才怀疑模型结构。一个极好用的冒烟测试是:用极少量样本训练,看损失能不能被压到接近零——能,说明整条代码链路是通的;不能,问题一定在实现里,先别谈调参。