Un autoencoder es un tipo de red neuronal artificial que se utiliza en aprendizaje automático no supervisado. Su objetivo es aprender una representación latente o "codificación" de un conjunto de datos de entrada, que se utiliza para generar una versión reconstruida de los mismos. El proceso consiste en pasar los datos de entrada a través de una red neuronal que reduce la información y la comprime en un espacio de menor dimensión. Luego, se utiliza otro conjunto de neuronas para expandir o descomprimir los datos y reconstruir la imagen original, manteniendo la mayor cantidad posible de la información original. Los autoencoders son muy útiles cuando los datos son complejos o tienen un alto nivel de ruido.
Además, proporcionan una forma de aprendizaje no supervisado, ya que no requieren una etiqueta para los datos de entrada. En lugar de ello, se utilizan técnicas de optimización para ajustar los pesos de las neuronas y minimizar la pérdida de información en la reconstrucción. El campo de aplicación de los autoencoders es muy amplio, desde la reducción de dimensionalidad y la eliminación de ruido en imágenes o señales, hasta la detección de anomalías o el modelado generativo de datos. Además, se utilizan de manera frecuente en diferentes áreas de la inteligencia artificial como en el procesamiento del lenguaje natural y la robótica.