0
$\begingroup$

What is the best way to do conditioning when working with deep neural nets?

For example, say we we want to condition a VAE on the class i.e. CVAE. There exists different ways of adding the class to the data. Consider the MNIST data-set (https://en.wikipedia.org/wiki/MNIST_database), you can one hot encode the class and then project it to 28x28 and add it is an additional channel. Another way is to add 10 new channels each 28x28, where the values of the channel of the class of interest are set to 1, and all other channels set to 0.

Is there a best practice on this ? maybe some theory ? I tried searching for this but couldn't really find much. All I know is from empirical results that some approaches work better than others.

Extra what if you wanted to condition on some categorical variables, say month, or week to somehow enforce seasonality ? is there a better way to do such conditioning ?

Please note Do not confuse this with the conditioning number in deep learning, e.g. Deep Learning: Condition Number and Poor Conditioning

$\endgroup$
0
$\begingroup$

It's primarily trial and error, and also about how large the conditioning factor is. For example, if it's just one of 10 categories, it's fine to add 10 channels and tile the condition all over (making the input 28x28x11). However if it's 1000 categories, you probably want to fuse the condition much later, perhaps at the bottleneck layer of the network.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.