¿Por qué los codificadores automáticos para reducción de dimensiones son simétricos?

13

No soy un experto en autoencoders o redes neuronales de ninguna manera, así que perdóname si esta es una pregunta tonta.

Con el fin de reducir la dimensión o visualizar grupos en datos de alta dimensión, podemos usar un autoencoder para crear una representación bidimensional (con pérdida) al inspeccionar la salida de la capa de red con 2 nodos. Por ejemplo, con la siguiente arquitectura, inspeccionaríamos la salida de la tercera capa

[X]N1=100N2=25(N3=2)N4=25N5=100[X]

donde son los datos de entrada y N l es el número de nodos en la capa l .XNll

Ahora, mi pregunta es, ¿por qué queremos una arquitectura simétrica? ¿Un espejo de la fase de 'compresión' profunda significa que podríamos tener una fase de 'descompresión' igualmente compleja que resulta en una salida de 2 nodos que no está obligada a ser muy intuitiva? En otras palabras, ¿no tendría una fase de decodificación más simple que la salida de la capa con 2 nodos sea necesariamente también más simple?

Mi pensamiento aquí es que cuanto menos compleja es la fase de descompresión, más simple (¿más lineal?) Tiene que ser la representación 2D. Una fase de descompresión más compleja permitiría una representación 2D más compleja.

dcl
fuente

Respuestas:

12

No existe una restricción específica sobre la simetría de un autoencoder.

Al principio, las personas tendían a imponer tal simetría al máximo: no solo las capas eran simétricas, sino también los pesos de las capas en el codificador y decodificador donde se compartían . Esto no es un requisito, pero permite utilizar ciertas funciones de pérdida (es decir, coincidencia de puntaje RBM) y puede actuar como regularización , ya que efectivamente reduce a la mitad el número de parámetros para optimizar. Hoy en día, sin embargo, creo que nadie impone compartir el peso del codificador-decodificador.

Sobre la simetría arquitectónica, es común encontrar el mismo número de capas, el mismo tipo de capas y los mismos tamaños de capa en el codificador y decodificador, pero no hay necesidad de eso.

Por ejemplo, en los autoencoders convolucionales, en el pasado era muy común encontrar capas convolucionales en el codificador y capas deconvolucionales en el decodificador, pero ahora normalmente se ven capas de muestreo ascendente en el decodificador porque tienen menos problemas de artefactos.

ncasas
fuente
7

Su pregunta definitivamente está en su lugar, sin embargo, encontré que cualquier pregunta en el formato de "¿debería hacer X o Y en el aprendizaje profundo?" solo tiene una respuesta

Pruébalos ambos

El aprendizaje profundo es un campo muy empírico, y si un codificador automático no simétrico funciona para su dominio, úselo (y publique un artículo)

Ankit Suri
fuente
2

Hice un experimento extenso para responder a la pregunta formulada. Mis experimentos indicaron que la ruta de codificación (pata izquierda del NN) debería tener capas menos pero más anchas. Por lo general, tomo la mitad de las capas, pero doblé el número de nodos para la ruta de codificación. No tengo ninguna explicación para esto, solo que esta configuración a menudo condujo a una convergencia más rápida.

JamesLi
fuente