
谢邀 ^^
这里的二分类,应该理解为“用多个二分类代替多分类“。首先用 softmax 是肯定可以用的,但 sigmoid-based 要更好,我认为有两个可能的原因。
其一,更好的数值稳定性,原论文中 3.2 节:
其二是初始化策略。来看原论文里对于 Initialization 的阐述:
大意是 RetinaNet 对于 subnet 的最后一层分类对于偏置采用了一种特殊的初始化方法,使得训练刚开始输出可以接近于 ,更加接近 overwhelming backgrounds 的真实情况。作者在这里和后面的实验中论证了这样的初始化策略十分重要。而这样的初始化策略是基于 multiple sigmoid classifier 的。试想如果采用 softmax,不可能使得对于一个 anchor,所有类别的输出均为 。
多说一句,我认为 RetinaNet 将 classification subnet 和 bbox regression subnet 分离,有很大一部分也是为了对分类器采用这种初始化方法。因为如果不进行分离,对于 bbox regression subnet 的初始值将不再 ~0.,极易爆炸。
2. Anchor-free 方法为什么也是采用二分类?
几乎所有 anchor-free 方法都采用了 FocalLoss 或者其变体来进行训练。结合 1. 来看,这样的设计可能更为合理。
