JindongJiang/SCALOR

Asymmetric KL computation in discovery and propagation

Opened this issue · 2 comments

Hi,

First of all, thanks for having made this amazing work available to the community.

I had a minor question regarding the way you compute KL in the propagation and in the discovery:

  • in propagation.py, you first sample z_pres using relaxed Bernouilli, you then perfom a deterministic turn-off for objects that had repeatedly a low z_pres score over previous timestamps (ligne 269) and finally you weight the KL for what, where and depth with z_pres while ignoring the contribution of objects discarded by the determistic step
  • in discovery.py, you first sample z_pres still using relaxed Bernouilli, you then perform a deterministic rejection step using the IOU. However you don't ignore the contribution of rejected objects in the computation of KL for what, where and depth and consider two different priors for z_pres depending if they have been accepted or not.

Is there any particular reason why you compute KL differently in discovery and propagation. In particular, why not weighting KL of what, where and depth in discovery with z_pres (instead of z_pres_origin). Or is it more something you noticed to yield better results ?

Thanks in advance for your answer and again congratulation for your work.

Sebastien

Hi, good point! These two computations are serving two different purposes.

In propagation, the use of thresholding is part of the relaxation of z_pres. It implements the behavior of objects deletion, i.e. the case of z_pres = 0 in actual Bernoulli case. So when an object is deleted, the corresponding KL terms are removed.

In discovery, on the other hand, the thresholding is not part of the relaxation of z_pres but the implementation of rejection mechanism. And it does not affect the KL term in the proposal phase. Therefore, we need to use the proposed z_pres to compute the remaining KL terms.

Hi Jiang,

Thanks for your fast answer. I think I get the rationale. I would have probably made the mistake without your code.

Thanks !