IIWAB `nn` 多种损失函数对比 - IIWAB

`nn` 多种损失函数对比

IIWAB 2天前 ⋅ 22 阅读
损失函数数学公式用途特性
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.LogSoftmaxnn.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,对异常值有较好的鲁棒性。

全部评论: 0

    我有话说: