损失函数 | 数学公式 | 用途 | 特性 |
---|---|---|---|
nn.MSELoss | ( \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 ) | 回归问题,如预测房价、股票价格等。 | 对异常值敏感,会放大预测值和真实值之间的差异。 |
nn.L1Loss | ( \text{L1} = \frac{1}{n} \sum_{i=1}^{n} \vert y_i - \hat{y}_i \vert ) | 回归问题,尤其是对异常值比较敏感的场景。 | 对异常值相对不敏感,相比于MSE更稳定。 |
nn.CrossEntropyLoss | ( \text{CE} = - \sum_{i=1}^{n} y_i \log(\hat{y}_i) ) | 多分类问题,如图片分类、文本分类等。 | 结合了nn.LogSoftmax 和nn.NLLLoss ,用于处理类别分布。通常和softmax激活函数一起使用。 |
nn.BCELoss | ( \text{BCE} = - \frac{1}{n} \sum_{i=1}^{n} [y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i)] ) | 二分类问题,如判断邮件是否为垃圾邮件、图片是否包含特定对象等。 | 适用于二分类任务,要求输入为经过sigmoid激活函数处理后的概率值。 |
nn.BCEWithLogitsLoss | 结合了sigmoid和nn.BCELoss 的操作。 | 二分类问题,相比于nn.BCELoss 更稳定,避免了数值不稳定问题。 | 内部集成了sigmoid函数,输入为原始的logits值,更适合直接使用模型的输出。 |
nn.NLLLoss | ( \text{NLL} = - \sum_{i=1}^{n} y_i \log(\hat{y}_i) ) | 多分类问题,通常和nn.LogSoftmax 一起使用。 | 要求输入为经过log_softmax处理后的对数概率值。 |
nn.SmoothL1Loss | ( \text{SmoothL1}(x) = \begin{cases} 0.5x^2, & \text{if } \vert x \vert < 1 \ \vert x \vert - 0.5, & \text{otherwise} \end{cases} ),其中 (x = y_i - \hat{y}_i) | 回归问题,常用于目标检测中的边界框回归。 | 结合了L1和MSE的优点,在误差较小时使用MSE,误差较大时使用L1,对异常值有较好的鲁棒性。 |
注意:本文归作者所有,未经作者允许,不得转载