损 失 函 数 篇 损失函数篇


什么是损失函数(Loss Function):损失函数是衡量模型输出与真实标签的差异,我更愿意说为距离
什么是代价函数(Cost Function):是对真个数据集的模型输出与真实标签的差异求和之后的均值
什么是目标函数(Objective Function):代价函数+正则项(惩罚项)

但在实际中,我们去说的时候,这三者都会被叫作loss函数
在实际训练代码中loss是这样运作的

for i,data in enumerate(dataloader):
     # forward:前向传播
     inputs,labels = data
     outputs = net(inputs)
     # backward:反向传播,更新模型参数
     optimizer.zero_grad()
     loss = loss_function(outputs,labels)
     loss.backward()
     # 更新模型参数
     optimizer.step()

inputs,labels,outputs都是一个batchsize的数据量,所以在真正训练时候,loss的计算是以batchsize个来计算的


组 合 L o s s 组合Loss Loss


CrossEntropyLoss(交叉熵损失函数)


二 L1Loss


三 NLLLoss


MSELoss


五 CTCLoss


六 PoissonNLLLoss


七 KLDivLoss


BCELoss


BCEWithLogitsLoss


SoftDiceLoss


十一 MarginRankingLoss


十二 HingeEmbeddingLoss


十三 MultiLabelMarginLoss


十四 SmoothL1Loss


十五 SoftMarginLoss


十六 MultiLabelSoftMarginLoss


十七 CosineEmbeddingLoss


十八 MultiMarginLoss


十九 TripletMarginLoss


二十 TripletMarginWithDistanceLoss


二十一 Focal Loss

1.RetinaNet-2017