Zhicaiwww / Bi-VAEGAN

Official implementation of CVPR2023 paper "Bi-directional distribution alignment for transductive zero-shot learning""
33 stars 6 forks source link

Hi, can you guys explain some of the parameter names from scripts in detail? #5

Closed JamesRuuu closed 7 months ago

JamesRuuu commented 8 months ago

Hello author! As I was reading through your code, I had some confusion. Maybe you can help me to understand that. Can you explain the exact meaning of this 'unknown_classDistribution'. I didn't get why inductive training is performed when it is true. Does it mean to take into account the probability distribution of the unseen class? Also I had a little doubt about 'unknown_prior' and 'unseen_prior' in train.py, which concerns about the difference between the two.

Zhicaiwww commented 8 months ago

Hello, here is the explanations based on your queries:

  1. The term "unknown_classDistribution" means that $p^u(y)$ is unknown, indicating that we lack prior knowledge about the class distribution of unseen classes. For transductive training, we need to estimate $p^u(y)$, but we do not want to use a uniform distribution as the prior. Therefore, our approach is to perform inductive training to initialize our conditional GAN, which allows us to assign pseudo-labels to our unseen samples and obtain an estimated $\hat{p}^u(y)$. After that, we proceed with transductive training.

  2. "unknown_prior" is a boolean variable, and "unseen_prior" is an array that refers to the estimated $\hat{p}^u(y)$ mentioned above.

I hope this helps!

JamesRuuu commented 8 months ago

Understood. Thx for your help.