I have trained multiple one-class vanilla variational autoencoders that each learn the distribution of one class and have the same architecture. The classes are mostly discrete, but there are several cases where two or more classes are "pretty similar", which I'd like to quantify.
What is the best way to compare the different VAEs?
Would it be better to create ONE Conditional VAE, conditioning on each class? I haven't done this yet because it very expensive to train on all examples at once.
My initial idea was to create 1 model per class and then run examples from one class through a different class's VAE in order to compare the ELBO scores. From there I would be able to:
Create a hierarchical clustering of all of the input examples using the ELBO against all model as the features.
Create a fully connected bipartite-network with input examples on one side, VAE models on the other, and ELBO score edge weights, where I could use a mixed-membership weighted stochastic block model (or other GNN) to find class relationships.
I've only seen one paper use ELBO scores as similarity metric (https://doi.org/10.1101/235655). I have also seen a symmetric KL divergence to compare two VAEs (https://doi.org/10.1016/j.ins.2020.06.065). Another intriguing idea is to use one-class attention-VAEs (https://arxiv.org/abs/1911.07389v7).
What is that standard approach for this kind of problem?
If you have any suggestions or other ways to interpret this problem, I would really appreciate it!