Implementation of variational autoencdoer(VAE) source from http://nbviewer.jupyter.org/github/dreamgonfly/VAE/blob/master/variational_autoencoder.ipynb