珠海网站建设方案优化,微信小程序卖货怎么做,建设银行信用卡提额网站,安徽有哪些市损失函数总结#xff08;十六#xff09;#xff1a;MSLELoss、RMSLELoss 1 引言2 损失函数2.1 NRMSELoss2.2 RRMSELoss 3 总结 1 引言
在前面的文章中已经介绍了介绍了一系列损失函数 (L1Loss、MSELoss、BCELoss、CrossEntropyLoss、NLLLoss、CTCLoss、PoissonNLLLoss、Ga… 损失函数总结十六MSLELoss、RMSLELoss 1 引言2 损失函数2.1 NRMSELoss2.2 RRMSELoss 3 总结 1 引言
在前面的文章中已经介绍了介绍了一系列损失函数 (L1Loss、MSELoss、BCELoss、CrossEntropyLoss、NLLLoss、CTCLoss、PoissonNLLLoss、GaussianNLLLoss、KLDivLoss、BCEWithLogitsLoss、MarginRankingLoss、HingeEmbeddingLoss、MultiMarginLoss、MultiLabelMarginLoss、SoftMarginLoss、MultiLabelSoftMarginLoss、TripletMarginLoss、TripletMarginWithDistanceLoss、Huber Loss、SmoothL1Loss、MBELoss、RAELoss、RSELoss、MAPELoss、RMSELoss、LogCosh Loss、MSLELoss、RMSLELoss)。在这篇文章中会接着上文提到的众多损失函数继续进行介绍给大家带来更多不常见的损失函数的介绍。这里放一张损失函数的机理图
2 损失函数
2.1 NRMSELoss
Normalized Root Mean Squared Error (归一化均方根误差NRMSE) 将RMSE的值变成(0,1)之间 有助于不同尺度模型之间的比较。NRMSELoss 的数学表达式如下 L ( Y , Y ′ ) 1 n ∑ i 1 n ( y i − y i ′ ) 2 y ‾ L(Y, Y) \frac{\sqrt{\frac{1}{n}\sum_{i1}^{n}(y_i-y_i)^2}}{\overline y} L(Y,Y′)yn1∑i1n(yi−yi′)2
其中: y ‾ \overline y y 表示观测值的平均值或范围定义为最大值减去最小值。
代码实现Pytorch
import torch
import torch.nn as nn# 创建模型的预测值和真实观测值
predicted torch.tensor([2.0, 4.0, 6.0, 8.0, 10.0], dtypetorch.float32)
observed torch.tensor([1.5, 4.2, 5.8, 7.9, 9.8], dtypetorch.float32)# 自定义 NRMSE 损失函数
def nrmse_loss(predicted, observed):# 创建 MSLE 损失函数msle_loss nn.MSELoss()# 计算 MSLE Lossrmse torch.sqrt(msle_loss(predicted , observed ))observed_range torch.max(observed) - torch.min(observed)nrmse rmse / observed_rangereturn nrmse# 计算 NRMSE
loss nrmse_loss(predicted, observed)# 打印 NRMSE
print(Normalized Root Mean Squared Error (NRMSE):, loss.item())
NRMSELoss 与 RMSLE一致存在低估比高估受到更严重的惩罚的问题。因此仅在特殊情况使用。。。。
2.2 RRMSELoss
Relative Root Mean Squared Error (相对均方根误差RRMSE) 是没有维度的 RMSE 变体。RRMSE 是一种均方根误差度量它已根据实际值进行缩放然后由均方根值归一化。虽然原始测量的尺度限制了 RMSE但 RRMSE 可用于比较各种测量方法。RRMSELoss 的数学表达式如下 L ( Y , Y ′ ) 1 n ∑ i 1 n ( y i − y i ′ ) 2 ∑ i 1 n ( y i ′ ) 2 L(Y, Y) \sqrt\frac{{\frac{1}{n}\sum_{i1}^{n}(y_i-y_i)^2}}{\sum_{i1}^{n}(y_i)^2 } L(Y,Y′)∑i1n(yi′)2n1∑i1n(yi−yi′)2
代码实现Pytorch
import torch
import torch.nn as nn# 创建模型的预测值和真实观测值
predicted torch.tensor([2.0, 4.0, 6.0, 8.0, 10.0], dtypetorch.float32)
observed torch.tensor([1.5, 4.2, 5.8, 7.9, 9.8], dtypetorch.float32)# 自定义 RRMSE损失函数
def rrmse_loss(predicted, observed):# 创建 MSLE 损失函数msle_loss nn.MSELoss()# 计算 MSLE Lossmse msle_loss(predicted , observed )robs_sum torch.sum(torch.square(observed))rrmse mse / robs_sum return rrmse # 计算 RRMSE
loss rrmse_loss(predicted, observed)# 打印 RRMSE
print(Relative Root Mean Squared Error (RRMSE):, loss.item())
RRMSE更多的是作为一种评价指标来使用。损失函数的话更多的还是使用MSELoss。。。。
3 总结
到此使用 损失函数总结十六 已经介绍完毕了 如果有什么疑问欢迎在评论区提出对于共性问题可能会后续添加到文章介绍中。如果存在没有提及的损失函数也可以在评论区提出后续会对其进行添加
如果觉得这篇文章对你有用记得点赞、收藏并分享给你的小伙伴们哦。