损失函数
kendyChina
这个作者很懒,什么都没留下…
展开
-
pytorch的cross_entropy实现
据pytorch的官方文档,torch.nn.functional里的cross_entropy是基于log_softmax和nll_loss实现的。没关系,通过最简单的torch原函数复现,可以较深理解当中的原理。import torchdef my_cross_entropy(input, target, reduction="mean"): # input.shape: torch...原创 2020-04-03 21:39:23 · 4731 阅读 · 0 评论 -
Pytorch损失函数之BCELoss与BCEWithLogitsLoss
1.先说结论nn.BCEWithLogitsLoss等于nn.BCELoss+nn.Sigmoid。主要用于二分类问题,多标签分类问题。图为Pytorch Document对于BCEWithLogitsLoss的描述,这个损失函数结合了Sigmoid和BCELoss。2.公式分解BCEWithLogitsLoss假设有N个batch,每个batch预测n个标签,则Loss为:Loss={l1,...,lN}, ln=−[yn⋅log(σ(xn))+(1−yn)⋅log(1−原创 2020-05-24 10:05:37 · 7979 阅读 · 1 评论 -
Pytorch损失函数之nn.NLLLoss与nn.CrossEntropyLoss
1. 先说结论nn.CrossEntropyLoss(简称CEL)等于nn.NLLLoss(简称NLL)+torch.log+F.softmax主要用于多分类问题的损失计算。图为Pytorch对于CEL的描述,这个criterion(指标)结合了nn.LogSoftmax()和nn.NLLLoss()nn.LogSoftmax()其实也就是torch.log+F.softmax2.CrossEntropyLoss(CEL)公式分解CEL(x,class)=−log(exp(x[class])原创 2020-05-23 21:26:25 · 1946 阅读 · 0 评论 -
softmax+cross-entropy的前向计算、反向传播的公式推导
本文偏公式推导。1. Softmax前向计算把Softmax把Softmax把Softmax输出的概率定义为 pip_ipiSoftmax(ai)=pi=eai∑jNeajSoftmax(a_i) = p_i = \frac {e^{a_i}} {\sum_j^N e^{a_j}}Softmax(ai)=pi=∑jNeajeai模型输出[a1,a2,...,aN][a_1, a_2, ..., a_N][a1,a2,...,aN],共N个值。其中aia_iai代表第iii原创 2020-05-29 08:36:42 · 2113 阅读 · 1 评论 -
focal loss学习笔记
背景目标检测中,one-stage相比two-stage,要在更稠密的样本中进行筛选和学习(即Dense Predict),而且后者基于proposal的思想,已经初筛掉大部分easy background。因此前景背景(foreground-background)的不平衡(imbalance)是one-stage训练时的主要问题。one-stage在训练时都会面临class-imbalance的问题,会导致两个弊端:训练不高效,大多数位置都是easy negtive,贡献很少的有用学习信号(use原创 2020-06-20 17:30:14 · 428 阅读 · 0 评论