上图:
图中的pt
横轴的取值范围是0-1,接近1时有两种可能情况,(1)y是1,logit接近1(2)y是0,logit接近0.
因为pt是随着y变的。所以以上两种情况来说都是预测的比较好的情况,在目标检测中,大部分都是背景,因此大部分都预测的很好,因此要减少预测的好的在loss中的权重。
交叉熵解释
交叉熵是一种代价函数,其可以计算出两个概率分布的差异程度。
在二分类时很简单,因为分布是多输入单输出的概率分布。
在多分类时比较复杂,因为此时的概率分布是多输入多输出概率分布。如输入是一张图片,而输出是多维输出。
此时
而多个二分类时是,注意,这不是回归问题,回归的话,只有一个输出,而这里是两个输出。这里是理想化了,就是标签只有0和1,而假如一个真实的分布,可能青蛙是0.8,蛇是0.2。因此这里算的就会出问题,tensorflow里就是理想化的算子,假如你的标签不是0和1,而是小数的化,那么调他的接口就会出错。
因此在多个二分类时,focal loss是单独作用于每一个输出维度。多个也一样计算pt
l连续情况下的计算
连续情况下公式转化为乘上一个|a-c|^r。a和c分别是logit和label,label可以是连续的情况