When I look at GANs that generate facial images, it sure seems like they’re meeting both a Safety requirement (not generating non-faces) and a Generalization requirement (generating new faces that weren’t in the training dataset). What am I missing?
Disclaimer: not 100% sure that this point holds for all models.
This works great when you run them in a generative mode, creating new images. However, at the paragliding event, presumably they needed a discriminative mode, distinguishing between those who are or are not pilots.
There are various ways that one can run generative models in a discriminative mode. For instance, a generative model implicitly has a probability distribution, so one could look at the size of P(image|model) and see whether that is high; if it is, one might interpret the image as being in-distribution. Alternatively, many generative models including GANs have some latent variables, so one could invert the model and then take a simple classifier over those latent variables.
The issue is then that while the generative mode is highly consistent in safety and generalization, this doesn’t imply that the discriminative mode necessarily will be; in fact, AFAIK usually it is not. For instance, if you are doing P(image|model), then most of the probability loss comes in at having to account for noise, so you can trick the model with all sorts of extremely non-face images as long as they have low amounts of noise. And if you invert it and take a classifier over the latent variables, you could probably jump to some exponentially small subspace with the properties you want.
Disclaimer: not 100% sure that this point holds for all models.
This works great when you run them in a generative mode, creating new images. However, at the paragliding event, presumably they needed a discriminative mode, distinguishing between those who are or are not pilots.
There are various ways that one can run generative models in a discriminative mode. For instance, a generative model implicitly has a probability distribution, so one could look at the size of P(image|model) and see whether that is high; if it is, one might interpret the image as being in-distribution. Alternatively, many generative models including GANs have some latent variables, so one could invert the model and then take a simple classifier over those latent variables.
The issue is then that while the generative mode is highly consistent in safety and generalization, this doesn’t imply that the discriminative mode necessarily will be; in fact, AFAIK usually it is not. For instance, if you are doing P(image|model), then most of the probability loss comes in at having to account for noise, so you can trick the model with all sorts of extremely non-face images as long as they have low amounts of noise. And if you invert it and take a classifier over the latent variables, you could probably jump to some exponentially small subspace with the properties you want.