Autoencoders: qué son y cómo funcionan
En términos generales, un autocodificador, o autoencoder, consiste en una arquitectura de red neuronal que comprime o codifica los datos de entrada, con el objetivo de reducir sus características esenciales. Después, lleva a cabo el proceso de descodificación a partir de la versión comprimida de la entrada original, es decir, la decodifica.
De aquí se desprende que los autoencoders funciona mediante un aprendizaje automático no supervisado. Y es que se entrenan descubriendo variables latentes de los datos de entrada, que vienen a ser variables ocultas que contienen información fundamental sobre cómo se distribuyen los datos. En su conjunto, las variables latentes se consideran un espacio latente.
Así, lo que hacen los autoencoders es aprender qué variables latentes puede utilizar para reconstruir con mayor precisión los datos originales- ¿Y para qué se usan estos autocodificadores? PAra tareas como la compresión de datos, la eliminación de ruido en imágenes, la detección de anomalías y el reconocimiento facial. Ahora, nos toca profundizar en el concepto de autoencoders y descubrir todos sus secretos.
¿Estás preparado? ¡Comenzamos!
Diferencias entre los autoencoders y los codificadores-decodificadores
El concepto de autoencoders encierra en sí la presencia de un codificador y un decodificador, pero eso no quiere decir que no todos los modelos de codificador-decodificador son autocodificadores. Para entenderlo mejor, debes saber que estos modelos extraen las características clave de los datos de entrada y luego devuelven un resultado distinto al original. Esto ocurre porque se someten a un aprendizaje supervisado.
Si lo explicamos mejor, puedes imaginarte a la red codificadora extrayendo datos de características de una imagen para hacer una clasificación semántica de los distintos píxeles. Después, con esa clasificación semántica de los píxeles, la red decodificadora construye máscaras de segmentación para cada región de la imagen. Así, estos sistemas codificadores-decodificadores trabajan para etiquetas con éxito los píxeles según su clase semántica.
Por otro lado, debes entender que su entrenamiento se basa en un aprendizaje supervisado. Esto quiere decir que bebe de un conjunto de imágenes que previamente han sido etiquetadas por expertos humanos. Aquí se encuentra la principal diferencia con los autoencoders, ya que, estos últimos, se entrenan a través de un aprendizaje no supervisado con el objetivo de reconstruir sus propios datos de la entrada-
Los autocodificadores detectan y etiquetan datos en patrones ocultos, que no han sido demostrados en un entrenamiento previo. Sin embargo, estos autoencoders también cuentan con una verdad-terreno para medir su resultado: la entrada original. Por ello, sería más correcto decir que se basan en un aprendizaje autosupervisado.
¿Cómo funcionan los autocodificadores?
Para entender el funcionamiento de los autoencoders tenemos que tener en cuenta tres elementos: el codificador, el cuello de botella o código y el decodificador. El codificador extrae los datos importantes de la entrada original y deja pasar por el cuello de botella la información esencial. Después, el decodificador debe analizar todo y reconstruir con precisión la entrada original.
Así, vamos a profundizar en estos elementos clave de los autoencoders:
Codificador
Como venimos diciendo, esta parte se encarga de realizar una representación comprimida de los datos de entrada. Para ello, reduce la dimensionalidad, es decir, que se centra en las capas ocultas de las redes neuronales. ¿Por qué? Porque contienen un número progresivamente menor de nodos que la capa de entrada. Así, estruja todos los datos para que quepan en menos dimensiones.
Cuello de botella o código
Se erige como la capa de salida de la red codificadora y la capa de entrada de la red decodificadora.
Decodificador
Aquí se encuentran capas ocultas con un número progresivamente mayor de nodos que se encargar de descomprimir la versión de los datos de entrada que le aporta el codificador. ¿Cómo lo hace? Ya hemos visto que se compara con la verdad-terreno, es decir, la entrada original. Así, la diferencia entre la salida y la verdad-terreno se llama error de reconstrucción.
Para terminar de entender el funcionamiento de los autocodificadores, vamos a enumerar los hiperparámetros que pueden incluir:
- Tamaño del código: nos referimos al tamaño del cuello de botella. Y es que determina el nivel de codificación que se llevará a cabo.
- Número de capas: los codificadores y decodificadores se componen de capas. Así, a mayor profundidad, mayor complejidad. Si se decide por implementar una menor profundidad, se obtendrá una mayor velocidad de procesamiento.
- Número de nodos por capas: por norma general, tienes que saber que el número de nodos va disminuyendo en cada capa del codificador, llegando a su mínimo en el cuello de botella. Después, aumenta en cada capa del decodificador.
- Función perdida: este hiperparámetro se utiliza para optimizar los pesos del modelo, a través de un descenso de gradiente durante la retropropagación.
Autocodificadores incompletos
Los autocodificadores incompletos se caracterizan porque reduce la dimensionalidad, es decir, que sus capas ocultas contienen menos nodos que las capas de entrada y salida, además de que la capacidad del cuello de botella es fija.
Estos autocodificadores incompletos se consideran poco flexibles y con una capacidad limitada, puesto que no se ajusta en exceso a sus datos de entrenamiento. Aprenden la función de identidad entre la entrada y la salida, minimizando la pérdida de reconstrucción.
Autocodificadores regularizados
Estos autocodificadores consiguen solucionar las deficiencias de los autoencoders incompletos introduciendo la regularización: Este concepto en la introducción de técnicas que cambian la forma en que se calcula el error de reconstrucción. Además, la regularización hace que el autocodificador aprenda nuevas funciones útiles.
Autocodificadores dispersos
Estos autoencoders dispersos (SAE) trabajan bajo el principio de dispersión, que se trata de reducir el número de nodos en cada capa oculta, lo que nos devuelve un cuello de botella con un menor número de nodos que se activan al mismo tiempo.
Para entender bien la diferencia, tenemos que pensar que un autocodificador incompleto estándar usa todas sus redes neuronales en cada observación, mientras que los autoencoders con una función de dispersión se castigan por cada neurona que se haya activado por encima de un determinado umbral. Así, con estos autocodificadores no tenemos riesgo de sobreajuste.
Autocodificadores contractivos
Al igual que en el anterior caso, lo que buscan estos autocodificadores es reducir el sobreajuste y capturar con una mayor eficacia la información esencial. ¿Cómo lo hace? Penalizando a la red por cambiar la salida por unos cambios mínimos en la entrada
Autocodificadores de eliminación de ruido
Estos autocodificadores de eliminación de ruido tienen una peculiaridad: no tienen unos datos reales de entrada. Es decir, se introducen datos corruptos con el fin de que se restaure la entrada original eliminado la información inútil. En este caso, el error de reconstrucción se mide en base a la imagen original, no a la imagen con los datos corruptos.
Autocodificadores variacionales
Los autocodificadores variacionales cuentan con la singularidad de que utilizan datos de entrada parecidos a los originales. ¿Parecidos? Así es, puesto que utilizan una representación compacta y probabilística. Estos VAE modelan las entradas como distribuciones estadísticas, lo que les permite generar datos completamente nuevos que conservan las características principales del conjunto original.
Artículos relacionados
¿Qué es doxear y cómo protegerte de esta práctica?
Ya sabemos que en la red existen numerosos peligros y multitud de formas de ser atacado. La intención de los hackers o ciberdelincuentes puede variar.
La inteligencia artificial, influyendo en la ingeniería mecatrónica
La mecatrónica ha transformado el mundo moderno combinando disciplinas como la mecánica, la electrónica y la informática para crear soluciones innovadoras que impactan nuestra vida
Analítica prescriptiva: toma de decisiones basada en datos
La analítica prescriptiva está en pleno auge, ya que se trata de una de las herramientas o maneras más avanzadas para la toma de decisiones basadas en datos dentro de los campos de