fcdl94 / MiB

Official code for Modeling the Background for Incremental Learning in Semantic Segmentation https://arxiv.org/abs/2002.00718

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Question about init_balanced: why "-log(N+1)" operation is need in bias initialization?

EricKani opened this issue · comments

same as title~

Thanks!

HI @EricKani.
The goal is to distribute the "old" background probability to the "new" background and to novel classes.
To do so, what we need to do is (1) set the weights for novel classes as the background, and (2) transform the bias of both novel classes and background to make sure that new_probability = old_bkg_proability / (| new_classes | +1), where +1 represent the bkg class.

You can see the equations 8 and 9 in the paper. In Eq. 9, we use -log(|C^t| ) since |C^t| equals to (| new_classes | +1).

Hi @EricKani.
Is it clear why I used that equation? Can I close the issue?

Sorry for late response... I understand how the implementation works to a large extent. Thanks a lot~
But I still don't understand "log" 's role here... Could you explain that in more detail? Thank you very much!

Hi @EricKani,
Sorry for the too-late response.
The role of the log is to split the background probability on background old and new classes. That has been derived from some math equations, imposing that the probability of old bkg class was equally divided on novel classes.