tensorflow Autoencoder

Posted by neverset on April 18, 2020

Autoencoder(AE) is an unsupervised learning method. it can be used to compress the original input information, so that learning is eased with reduced data size. At the same time the new encoded input can have some unique features that the original input doesnot have Autoencoder was invented before BN to train deeper neurale networks, but after BN and ResNet were implemented, this is not necessary any more. Main usage right now are Data denoising, visual dimensionality reduction and data augmentation

process

the original input will be encoded into a new vector,this vector will be decoded back to output vector. if the output and input are kept the same, then the encoded vector is the compressed representation of original input

problem

  • small MSE loss does not really mean good representation, beause MSE considers every pixel equally but human emphasis boundary and foreground features
  • MSE loss is very sensitive to noise points, expecially with more complex data than MNIST
  • training cost is high

Variational Autoencoder

core idea is to assume k standard distributions for k samples in variational autoencoder the original input is not encoded to one vector rather two vectors-mean and standard variation, so that with these two parameter new hidden vector can be created to be decoded into augmented data

evaluation of compression quality

the quality can be evaluated with random forest algorithm by comparing the prediction accuracy between original data and compressed data