当我们使用AdaBoost进行目标检测时,我们需要为每个阶段(AdaBoost的迭代)设置TPR和FPR。
我们需要高TPR和低FPR。
根据我的理解,我们有:
total TPR = (stage1 TPR)(stage2 TPR)… (stageN TPR)
例如0.9*0.9*0.9~=0.729
total FPR = (stage1 FPR)(stage2 FPR)… (stageN玻璃钢)
FPR 0.5*0.5*0.5= 0.125所以你使用的阶段越多,你得到的FPR越低,但TPR也会降低。
那么为什么不每个阶段使用TPR = 0.9999(9)和FPR = 0.00001,并且阶段数量少呢?
各阶段TPR和FPR应如何选择?它是如何取决于阶段数的?
你在如何计算总fpr和tpr以及观察到随着阶段的增加,总fpr和tpr减少方面是正确的。我们不使用0.999999的tpr和0.000001的fpr的原因是,它会导致提升过程生成具有许多弱分类器的阶段来实现这些速率。你的目标是整个级联的高tpr和低tpr,但是如果你用这样的极值训练阶段,你只需要一个阶段,因为它已经是一个很好的分类器了。
因此,我们通常使用tpr = 0.99和fpr = 0.5这样的值的原因是为了保持阶段小而简单,并使用级联结构从错误的分类中恢复。本质上,tpr为0.99和fpr为0.5意味着任何阶段必须检测到99%的阳性样本,同时允许将50%的阴性样本分类为阳性。任何在第一阶段被分类为阳性的东西都将被传递到第二阶段,然后处理假阳性。其中,它最多接受50%进入第三阶段,依此类推。多阶段的优点是,如果第一阶段拒绝了一个样本,您不必评估任何其他阶段,这节省了您大量的时间。
假设fpr = 0.5, tpr = 0.99, 20个阶段,则最终的fpr为0.5^20 = 9.5*10e-7,最终的tpr为0.99^20 = 0.82。
根据算法的选择,你可以计算相应的fpr和tpr。例如,如果阶段数N和最终fpr已知,你可以取最终fpr的N次方根来得到阶段fpr。如果给出阶段和最终fpr,则使用log10并可以计算至少需要达到最终fpr的阶段数(N = log10(最终fpr)/log10(阶段fpr))。