泰语网站怎么建设,门户站点是什么,户外广告牌报价明细表,老域名网站不收录二分类和多分类的损失函数
二分类 损失函数 L ( y , y ^ ) − ( y l o g ( y ^ ) ) ( 1 − y ) l o g ( 1 − y ^ ) L(y,\hat{y}) -(ylog(\hat{y})) (1-y)log(1-\hat{y}) L(y,y^)−(ylog(y^))(1−y)log(1−y^) 其中真实标签表示为y#xff08;取值为 0 或 1#…二分类和多分类的损失函数
二分类 损失函数 L ( y , y ^ ) − ( y l o g ( y ^ ) ) ( 1 − y ) l o g ( 1 − y ^ ) L(y,\hat{y}) -(ylog(\hat{y})) (1-y)log(1-\hat{y}) L(y,y^)−(ylog(y^))(1−y)log(1−y^) 其中真实标签表示为y取值为 0 或 1预测概率表示为 y ^ \hat{y} y^取值在 0 到 1 之间 代码
import torch
import torch.nn as nncriterion nn.BCELoss() # 或者使用 nn.BCEWithLogitsLoss() BCEWithLogitsLoss可以直接接收logit输出
# 假设模型的输出 logits
logits torch.tensor([0.2, 0.8, 0.5, 0.1]) #shape: (4, 1)
predicted_probabilities torch.sigmoid(logits) #shape: (4, 1)
# 真实标签
labels torch.tensor([0.0, 1.0, 1.0, 0.0]) #shape: (4, 1)
# 计算损失
loss criterion(predicted_probabilities, labels)
print(Loss:, loss.item())可视化损失值 对于输出的loss值我们往往不能理解这个loss是好还是坏我们重看损失函数发现对于单个正样本来说 l o s s − l o g ( y ^ ) loss -log(\hat{y}) loss−log(y^) 对于单个负样本来说 l o s s − l o g ( 1 − y ^ ) loss -log(1-\hat{y}) loss−log(1−y^) 从这个公式我们可以反推模型对正样本预测的概率为 h i t p o s e − l o s s hit_{pos} e^{-loss} hitpose−loss 对负样本预测的概率为 h i t n e g 1 − e − l o s s hit_{neg} 1-e^{-loss} hitneg1−e−loss 这个hit就比较形象了$hit_{pos}$越接近1说明正样本的预测效果效果越好$hit_{neg}$越接近0说明负样本的预测效果效果越好
多分类
损失函数 L ( y , y ^ ) − ∑ c 1 C y l o g ( y ^ ) L(y,\hat{y}) -\sum_{c1}^Cylog(\hat{y}) L(y,y^)−c1∑Cylog(y^) 其中真实标签表示为y取值为 0 或 1表示是否属于第c类预测概率表示为$\hat{y}$ 取值在 0 到 1 之间代码
import torch
import torch.nn as nncriterion nn.CrossEntropyLoss()# 假设模型的输出 logits未经过 sigmoid
logits torch.tensor([[1.0, 2.0], # 类别 0 和 1 的 logits[0.0, 1.0],[0.5, 0.5],[0.0, 0.0]]) # shape42# 真实标签格式为类别索引
# 0 表示第一个类别1 表示第二个类别
labels torch.tensor([1, 1, 0, 0]) # shape14# 计算损失
loss criterion(logits, labels)print(Loss:, loss.item())可视化损失值 对于输出的loss值我们往往不能理解这个loss是好还是坏我们重看损失函数发现对于单个样本来说 l o s s − l o g ( y ^ ) loss -log(\hat{y}) loss−log(y^) 从这个公式我们可以反推模型对当前样本的正确类别预测的概率为 h i t e − l o s s hit e^{-loss} hite−loss 这个hit就比较形象了hit越接近1说明效果越好
二分类和多分类区别
从损失函数的物理含义上来看二分类的损失函数不仅希望正样本输出概率接近1并且希望负样本的输出概率接近0而多分类的损失函数仅仅希望正样本输出概率接近1对于负样本其实没有约束对于二分类问题如果你希望模型不仅能找出正样本而且筛掉副样本就用二分类损失。如果你仅仅希望找出正样本而不管负样本多分类的损失也能用。
多分类问题中评价问题
TPTrue Positive真实标签为正类模型预测为正类的样本数量。 TNTrue Negative真实标签为负类模型预测为负类的样本数量。 FPFalse Positive真实标签为负类但模型预测为正类的样本数量。 FNFalse Negative真实标签为正类但模型预测为负类的样本数量。 准确率acc 关心模型预测的能力 a c c T P T N T P F P F N T N acc \frac{TPTN}{TPFPFNTN} accTPFPFNTNTPTN 精准率pre 关心模型预测负样本能力 p r e T P T P F P pre \frac{TP}{TPFP} preTPFPTP 召回率Recall 关心模型预测正样本的能力 r e c a l l T P T P F N recall \frac{TP}{TPFN} recallTPFNTP