[交叉熵 cross_entropy](交叉熵%20cross_entropy.md)
**损失函数(loss function)**用于衡量模型预测结果与真实目标值之间的差异,是模型训练过程中指导参数调整的依据。不同任务会使用不同的损失函数:回归问题常用均方误差 (Mean Squared Error, **MSE**),分类问题常用交叉熵损失 (Cross-Entropy loss) 等。
# 常见损失函数汇总表
## 回归任务损失函数
| 损失函数 | 公式 | 特点 | 适用场景 | 优缺点 |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ----------- | ----------------------------- |
| **均方误差**<br>(MSE) | $L = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2$ | 对异常值敏感 | 一般回归问题 | ✅ 处处可导<br>❌ 对异常值敏感 |
| **平均绝对误差**<br>(MAE) | $L = \frac{1}{n}\sum_{i=1}^{n}\|y_i - \hat{y}_i\|$ | 对异常值鲁棒 | 存在异常值的回归 | ✅ 对异常值鲁棒<br>❌ 在0点不可导 |
| **Huber损失** | $L = \begin{cases} \frac{1}{2}(y - \hat{y})^2 & \text{if } \|y - \hat{y}\| \leq \delta \ \delta\|y - \hat{y}\| - \frac{1}{2}\delta^2 & \text{otherwise} \end{cases}$ | 结合MSE和MAE优点 | 需要平衡准确性和鲁棒性 | ✅ 平滑可导<br>✅ 对异常值鲁棒<br>❌ 需要调参δ |
| **Log-Cosh损失** | $L = \sum_{i=1}^{n}\log(\cosh(\hat{y}_i - y_i))$ | 近似Huber但处处二阶可导 | 需要二阶优化的场景 | ✅ 处处二阶可导<br>✅ 对异常值较鲁棒 |
## 分类任务损失函数
|损失函数|公式|特点|适用场景|优缺点|
|---|---|---|---|---|
|**二元交叉熵**<br>(Binary Cross-Entropy)|$L = -\frac{1}{n}\sum_{i=1}^{n}[y_i\log(\hat{y}_i) + (1-y_i)\log(1-\hat{y}_i)]$|二分类标准损失|二分类问题|✅ 凸函数<br>✅ 概率解释清晰|
|**多类交叉熵**<br>(Categorical Cross-Entropy)|$L = -\sum_{i=1}^{n}\sum_{j=1}^{c}y_{ij}\log(\hat{y}_{ij})$|多分类标准损失|多分类问题(one-hot)|✅ 支持多类别<br>❌ 需要one-hot编码|
|**稀疏交叉熵**<br>(Sparse Categorical CE)|$L = -\sum_{i=1}^{n}\log(\hat{y}_{i,c_i})$|不需要one-hot|多分类(类别索引)|✅ 内存效率高<br>✅ 计算效率高|
|**Focal Loss**|$L = -\alpha_t(1-p_t)^\gamma\log(p_t)$|解决类别不平衡|目标检测、不平衡数据|✅ 自动降低易分样本权重<br>❌ 需要调参α和γ|
|**Hinge Loss**|$L = \sum_{i=1}^{n}\max(0, 1 - y_i\hat{y}_i)$|SVM使用|支持向量机|✅ 稀疏性<br>❌ 不提供概率输出|
## 特殊任务损失函数
|损失函数|公式|特点|适用场景|优缺点|
|---|---|---|---|---|
|**KL散度**<br>(Kullback-Leibler)|$L = \sum_{i}P(i)\log\frac{P(i)}{Q(i)}$|衡量分布差异|知识蒸馏、VAE|✅ 信息论基础<br>❌ 非对称|
|**Wasserstein距离**|$L = \inf_{\gamma \in \Pi(p,q)} \mathbb{E}_{(x,y) \sim \gamma}[\|x-y\|]$|衡量分布距离|WGAN、最优传输|✅ 连续性好<br>❌ 计算复杂|
|**Triplet Loss**|$L = \max(0, d(a,p) - d(a,n) + m)$|学习嵌入空间|人脸识别、度量学习|✅ 直接优化相似度<br>❌ 样本选择困难|
|**Contrastive Loss**|$L = (1-y)\frac{1}{2}d^2 + y\frac{1}{2}\max(0, m-d)^2$|学习相似度|孪生网络、自监督学习|✅ 简单有效<br>❌ 需要配对数据|
## 组合损失函数
|损失函数|公式|特点|适用场景|优缺点|
|---|---|---|---|---|
|**Dice Loss**|$L = 1 - \frac{2\|X \cap Y\|}{\|X\| + \|Y\|}$|处理不平衡分割|医学图像分割|✅ 对类别不平衡鲁棒<br>❌ 梯度不稳定|
|**IoU Loss**|$L = 1 - \frac{\|X \cap Y\|}{\|X \cup Y\|}$|直接优化IoU|目标检测、分割|✅ 与评价指标一致<br>❌ 非凸优化|
|**Tversky Loss**|$L = 1 - \frac{TP}{TP + \alpha FP + \beta FN}$|可调节的Dice Loss|不平衡医学分割|✅ 灵活控制FP/FN<br>❌ 需要调参|
## 使用建议
### 选择损失函数的原则
1. **任务类型**:回归用MSE/MAE,分类用交叉熵
2. **数据特性**:有异常值用MAE/Huber,类别不平衡用Focal/Dice
3. **优化难度**:需要稳定梯度选择平滑的损失函数
4. **评价指标**:尽量选择与评价指标一致的损失函数
### 常见组合
- 图像分割:Dice Loss + Cross-Entropy
- 目标检测:Focal Loss + IoU Loss
- 生成模型:重建损失 + KL散度
## 注释说明
- $y_i$:真实标签
- $\hat{y}_i$:预测值
- $n$:样本数量
- $c$:类别数量
- $\delta$, $\alpha$, $\gamma$, $m$:超参数
- $d(\cdot,\cdot)$:距离函数
- $a$, $p$, $n$:anchor, positive, negative样本