Introducción a los autoencoders

Es el caso de la malla neural artificial utilizada para descubrir la codificación efectiva de datos de manera desatendida. El objetivo del Autoencoder se utiliza para aprender la presentación de un grupo de datos, especialmente para reducir la dimensionalidad. Los codificadores automáticos tienen una característica única en la que su entrada es igual a su salida al formar redes de envío de alimentación. Autoencoder convierte la entrada en datos comprimidos para formar un código de baja dimensión y luego vuelve a rastrear la entrada para formar la salida deseada. El código de entrada comprimido también se llama representación de espacio latente. En simple, el objetivo principal es reducir la distorsión entre los circuitos.

Hay tres componentes principales en Autoencoder. Son codificador, decodificador y código. El codificador y el decodificador están completamente conectados para formar una malla de reenvío de alimentación. El código actúa como una sola capa que actúa según su propia dimensión. Para desarrollar un Autoencoder, debe establecer un hiperparámetro que debe establecer el número de nodos en la capa central. De una manera más detallada, la red de salida del decodificador es una imagen especular del codificador de entrada. El decodificador produce la salida deseada solo con la ayuda de la capa de código.

Asegúrese de que el codificador y el decodificador tengan los mismos valores dimensionales. El parámetro importante para establecer el codificador automático es el tamaño del código, el número de capas y el número de nodos en cada capa.

El tamaño del código se define por la cantidad total de nodos presentes en la capa intermedia. Para obtener una compresión efectiva, se recomienda el tamaño pequeño de una capa intermedia. El número de capas en el codificador automático puede ser profundo o poco profundo como lo desee. El número de nodos en el codificador automático debe ser el mismo tanto en el codificador como en el decodificador. La capa de decodificador y codificador debe ser simétrica.

En el codificador automático apilado, tiene una capa invisible tanto en el codificador como en el decodificador. Consiste en imágenes escritas a mano con un tamaño de 28 * 28. Ahora puede desarrollar autoencoder con 128 nodos en la capa invisible con 32 como tamaño de código. Para agregar muchos números de capas, use esta función

model.add(Dense(16, activation='relu'))
model.add(Dense(8, activation='relu'))

para la conversión,

layer_1 = Dense(16, activation='relu')(input)
layer_2 = Dense(8, activation='relu')(layer_1)

Ahora la salida de esta capa se agrega como entrada a la siguiente capa. Esta es la capa invocable en este método denso. El decodificador realiza esta función. Utiliza el método sigmoide para obtener resultados entre 0 y 1. Dado que la entrada se encuentra entre 0 y 1 rango

La reconstrucción de la entrada por un Autoencoder en este método se realiza por predicción. La prueba de imagen individual se lleva a cabo y la salida no es exactamente como entrada sino similar como entrada. Para superar estas dificultades, puede hacer que el codificador automático sea más eficiente agregando muchas capas y agregando múltiples nodos a las capas. Pero haciéndolo más poderoso resulta en una copia de datos similar a la entrada. Pero este no es el resultado esperado.

Arquitectura de Autoencoder

En esta arquitectura apilada, la capa de código tiene un valor dimensional pequeño que la información de entrada, en la que se dice que está bajo el codificador automático completo.

1. Autoencoders denoising

En este método, no puede copiar la señal de entrada a la señal de salida para obtener el resultado perfecto. Porque aquí la señal de entrada contiene ruido que debe sustraerse antes de obtener el resultado que son los datos subyacentes necesarios. Este proceso se llama autoencoder de eliminación de ruido. La primera fila contiene imágenes originales. Para hacer que la señal de entrada sea ruidosa, se agregan algunos datos ruidosos. Ahora puede diseñar el codificador automático para obtener una salida libre de ruido de la siguiente manera

autoencoder.fit(x_train, x_train)

Un Autoencoder modificado es el siguiente,

autoencoder.fit(x_train_noisy, x_train)

Por lo tanto, puede obtener una salida sin ruido fácilmente.

El autoencoder de convolución se usa para manejar señales complejas y también obtener un mejor resultado que el proceso normal

2. Autoencoders dispersos

Para usar autoencoders de manera efectiva, puede seguir dos pasos.

Establezca un tamaño de código pequeño y el otro es autoencoder denoising.

Entonces otro método efectivo es la regularización. Para aplicar esta regularización, debe regularizar las restricciones de dispersión. Para activar algunas partes de los nodos en la capa, agregue algunos términos adicionales a la función de pérdida que empuja al autoencodificador a hacer cada entrada como nodos combinados más pequeños y hace que el codificador encuentre algunas estructuras únicas en los datos dados. También es aplicable para una gran cantidad de datos porque solo se activa una parte de los nodos.

El valor de restricción de dispersión está más cerca de cero

Para generar una capa de código,

code = Dense(code_size, activation='relu')(input_img)

Para agregar valor de regularización,

code = Dense(code_size, activation='relu', activity_regularizer=l1(10e-6))(input_img)

En este modelo, solo 0.01 es la pérdida final que también debido al término de regularización.

En este modelo disperso, un grupo de valores de código es fiel al resultado esperado. Pero tiene valores de varianza bastante bajos.

Los autoencoders regularizados tienen propiedades únicas como la robustez de las entradas faltantes, la representación dispersa y el valor más cercano a los derivados en las presentaciones. Para usar de manera efectiva, mantenga un tamaño de código mínimo y un codificador y decodificador poco profundos. Descubren una gran capacidad de entradas y no necesitan ningún término de regularización adicional para que la codificación sea efectiva. Están entrenados para dar un efecto maximizado en lugar de copiar y pegar.

3. Autoencoder Variacional

Se utiliza en casos complejos y encuentra las posibilidades de distribución diseñando los datos de entrada. Este autoencoder variacional utiliza un método de muestreo para obtener su salida efectiva. Sigue la misma arquitectura que los autoencoders regularizados

Conclusión

Por lo tanto, los codificadores automáticos se utilizan para aprender datos e imágenes del mundo real, involucrados en clasificaciones binarias y multiclase. Su proceso simple para la reducción de dimensionalidad. Se aplica en una máquina de Boltzmann restringida y desempeña un papel vital en ella. También se usa en la industria bioquímica para descubrir la parte no revelada del aprendizaje y se usa para identificar el patrón de comportamiento inteligente. Cada componente del aprendizaje automático tiene un carácter autoorganizado, Autoencoder es uno de los que tiene éxito en el aprendizaje de la inteligencia artificial.

Artículos recomendados

Esta es una guía de codificadores automáticos. Aquí discutimos los componentes principales en Autoencoder que son un codificador, decodificador y código y la arquitectura de Autoencoder. También puede echar un vistazo a los siguientes artículos para obtener más información:

  1. Arquitectura de Big Data
  2. Codificación vs Decodificación
  3. Arquitectura de aprendizaje automático
  4. Tecnologías de Big Data

Categoría: