What are the differences between autoencoders and t-SNE? As far as I know, both autoencoders and t-SNE are used for nonlinear dimensionality reduction. What are the differences between them and why should I use one versus another?
 A: 
[Autoencoders] primarily
  focus on maximizing the variance of the data in the latent space, as a
  result of which autoencoders are less successful in retaining the
  local structure of the data in the latent space than manifold
  learners...

From "Learning a Parametric Embedding by Preserving Local Structure", Laurens van der Maaten (https://lvdmaaten.github.io/publications/papers/AISTATS_2009.pdf)
A: Both of them try to find a lower dimensionality embedding of your data. However, there are different minimization problems. More specifically, an autoencoder tries to minimize the reconstruction error, while t-SNE tries to find a lower dimensional space and at the same time it tries to preserve the neighborhood distances. As a result of this attribute, t-SNE is usually preferred for plots and visualizations.
A: Autoencoder and t-SNE can be used together for better visualization in high dimensional data, as described in [1]: 

For 2D visualization specifically, t-SNE is probably the best
  algorithm around, but it typically requires relatively low-dimensional
  data. So a good strategy for visualizing similarity relationships in
  high-dimensional data is to start by using an autoencoder to compress
  your data into a low-dimensional space (e.g. 32 dimensional), then use
  t-SNE for mapping the compressed data to a 2D plane.


[1] https://blog.keras.io/building-autoencoders-in-keras.html
A: Autoencoder is designed to preserve previous data in a 2-norm sense, which can be thought as preserve the kinetic energy of the data, if data is velocity. 
While t-SNE, use KL divergence which is not symmetrical, it will lead to t-SNE focus more on local structure, while autoencoder tends to keep overall L2 error small, which is in a global sense.
