How I wrote a script to generate faces by inverting Haar cascades with Python
matthewearl.github.io
matthewearl.github.io
Learning a general density that is useful is quite difficult - you could be missing entire modes from the data distribution and never know it. You don't know what you don't know, after all. And there is still no clear (in my opinion) evidence that learning a density really helps generalize to a new task, especially when the end task is still a supervised one.
Explicit density modeling seems to help the most in semi-supervised / limited data settings, but any time you can bring some enormous but related labeled data to bear on your supervised problem it seems to win over any kind of density estimation tricks - compare trained from scratch nets for the tasks I mentioned, to ones exploiting pretrained VGG models.
http://www.foldl.me/2015/conditional-gans-face-generation/
and the corresponding paper:
http://www.foldl.me/uploads/2015/conditional-gans-face-gener...
This blog deserves credit for thinking differently about a problem and getting something useful out of it.
I think the goal of this inversion was to inspect what the cascade is "looking at" in some sense - and for that this does a great job! Inverting a lossy classification feature is nearly always going to be worse than something designed from the ground up to be a generative model.
[1] http://arxiv.org/abs/1512.09300
[2] http://torch.ch/blog/2015/11/13/gan.html