我不太喜欢ICCV 2021的文章,只是想记录一下不确定性的损失~
主要思想及创新点
在弱监督语义分割中,一种监督方法是提供粗略的标注框标注和少量的点标注。 就这一点而言,我认为这篇文章相当不错,因为虽然文章说标注了18%,但是这些点完全可以将标注放在检测框不准确的边缘...所以对我来说似乎没什么用。 看看损失函数就知道了~
我们首先看一下L2相关的损失。 这种形式很常见:
其实就是认为分布有一定的方差,写成高斯形式
模型应满足上式的最大化,即学习到的分布应尽可能与带有方差的标记分布保持一致。 为了解决问题,可以取对数和负值:
它变得最小化
这个公式可以直观地解释。 当方差较大时,模型允许与标记值有较大的差异,但方差不能太大,否则会受到惩罚。 您可以查看不同均值和方差下的损失大小:
一般来说,方差也会由模型独立估计。 我们组之前一篇关于视频计数的文章也是基于这个数学推导:
然后是模型仅使用注释框学习的可视化图:
从上图可以看出,当只有标记框时,模型仍然无法学习细微的物体边缘。 最终的预测分割图仍然与标记框相似,但方差在边缘处变大。 因此,作者提出,在这种情况下,我们仍然需要一些边缘处背景的标注像素来帮助模型学习分割物体边缘。 因此,损失函数将由两部分组成:
PP是一些背景点的标注,BBox是检测框的标注。
这个公式确实写得不太好。 毕竟有些位置y是没有标注点的……总之,对于准确的背景点标注,模型不需要讨论标注误差,但是对于粗糙的标注框,就增加了方差损失。 将标签背景点设置为0,前景标签框设置为1后,损失可以写为:
因此模型可以更好地学习:
因为在前景分割任务中,只有两个类别,使用交叉熵损失会明显优于L2损失,所以作者将这种不确定性损失形式扩展为交叉熵损失(这是我主要想标记的点,我懒得去读最早提出并证明这一点的文章)...
首先,交叉熵损失可以写为:
l 是预测值
p 是标记的真值
与L2类似,也假设每个预测值具有一定的方差分布,为了简单起见,采用高斯形式:
P 是高斯形式假设
感觉有些不对劲。 这不应该是我此时的立场吗?
因此,最终模型的预测可以写成预期的形式,但积分计算量相当大。 之前的一篇文章(的)提出了一个近似形式:
然后将损失的单值形式转换为错误期望:
事实上,文章指出,由于背景标注点只占一小部分,模型有时无法处理它认为是背景但标注框标注是前景的背景部分,只会尝试增加相应位置方差的值。 但是此时无法很好地学习预测值,因此作者提出了一种方法,即当方差大于一定水平时,可以考虑将标签从前景转换到背景进行损失,当然,标签的原始含义必须保留。 因此,取加权平均值:
最终的总损失由作者所说的引导损失和之前提出的误差期望损失进行加权。 您可以查看损失如何随参数变化:
(a) 是误差期望损失。 可以看到,当误差较大时,模型会努力学习方差; (b)为指导损失,很好地解决了标签错误时模型无法很好学习的问题; (c) 最后总损失是两者中较长的一个
事实上,在交叉熵中,误差期望损失帮助模型学习预测方差,而自举损失帮助模型学习正确的预测值。
从左到右分别是原始图像/标记框/预测方差图/最终预测图。 可以看到效果还是相当不错的。
对于多分类问题,作者也给出了解决方案。 首先,将损失写成:
同样,由于期望很难计算,所以(What do we need in deep for?)提出的蒙特卡罗积分近似为:
上式的方差好像是指所有类别预测的综合方差?
对于 loss,作者提出了一种转换标签的候选方式,实际上是预测中排名最大的一种:
当方差大于阈值时,模型将使用自身预测的概率最高的标签进行学习。
您可以查看多分类问题的可视化:
从左到右:原始图像/标记框/预测车辆方差/预测行人方差/最终预测图实验结果
使用不确定性 L2 损失对汽车进行前景预测结果
使用不确定性交叉熵损失对汽车进行前景预测结果
多类别分割任务的实验结果论文信息
- 按标签
///ILDAV//-.pdf