Softmax 回归
逻辑回归的多分类版——从"是不是"到"是哪个"
01 核心原理(大白话版)
逻辑回归解决的是二分类问题:输出一个概率,告诉你"是"的可能性。
Softmax 回归把它推广到多分类:同时输出 K 个概率,每个对应一个类别,所有概率加起来等于 1。
Sigmoid 怎么变成 Softmax?
逻辑回归(二分类)
一个线性分数 z,通过 Sigmoid 压到 (0,1),输出"是类别1"的概率。
Softmax 回归(多分类)
K 个线性分数(logits),通过 Softmax 归一化成 K 个概率,取最大的那个类别。
Softmax 公式:P(y=k) = ez_k / Σ ez_j。指数放大差距,归一化保证概率之和为 1。当 K=2 时,Softmax 等价于 Sigmoid——逻辑回归是 Softmax 的特例。
一步步构建 Softmax 回归
与逻辑回归相比,标签 y 从 0/1 扩展到 0/1/2,三类数据分布在不同区域。
输入 K 个原始分数,输出 K 个概率,和为 1。减去最大值是防止数值溢出的技巧。
多分类交叉熵只关心真实类别的预测概率:
p_y 是模型给真实类别 y 的概率。预测越准 p_y 越接近 1,-log(1)=0 损失最小;预测完全错误时 p_y 趋向 0,损失趋向无穷大。
每个类别有自己的权重向量,梯度形式与逻辑回归完全一致:err = pred - label,只是现在同时更新 K 组参数。
四段拼在一起,加上可视化,就是完整演示代码——看下面。
02 代码
03 学术性讲解
Softmax 回归(也称多项逻辑回归)是逻辑回归在多分类问题上的推广,适用于输出互斥的 K 个类别。
Softmax 函数
给定 K 个类别的线性分数(logits)z₁, z₂, ..., z_K:
其中 z_k = w_k · x + b_k 是第 k 类的线性组合。
损失函数:多分类交叉熵
只惩罚真实类别的预测概率:
其中 c 是样本的真实类别。等价于所有类别的完整交叉熵 −Σ y_k log p_k(one-hot 编码后非真实类别项为 0)。
梯度推导
Softmax + 交叉熵联合求导后,梯度形式极为简洁:
与逻辑回归的梯度形式完全一致——err = 预测概率 − 真实标签,只是 K 个类别各有一套参数。
决策边界
类别 i 和类别 j 的决策边界是两者概率相等的超平面:
K 个类别产生 K(K-1)/2 条两两决策边界,将特征空间划分为 K 个区域。
总结
多分类问题
Softmax
多分类交叉熵
K 个概率