¿Cuáles son las diferencias entre PCA y autoencoder?

Respuestas:

52

PCA está restringido a un mapa lineal, mientras que los codificadores automáticos pueden tener codificadores / decodificadores no lineales.

Un codificador automático de una sola capa con función de transferencia lineal es casi equivalente a PCA, donde casi significa que la encontrada por AE y PCA no será la misma, pero el subespacio abarcado por la correspondiente .WW

bayerj
fuente
¡Veo! Entonces necesito tener dos capas para la transformación no lineal. Entonces, ¿múltiples capas significan complejos no lineales?
RockTheStar
77
@RockTheStar: no es el número de capas lo que importa, sino la función de activación [función de transferencia]. Con la función de transferencia lineal, ningún número de capas conducirá a un autoencoder no lineal.
ameba dice Reinstate Monica
Entonces, con la transformación no lineal, incluso hay solo 1 capa de unidad oculta. La solución sigue siendo no lineal?
RockTheStar
Si. (También podría todavía ser lineal en algunos casos, por ejemplo cuando las unidades ocultas se activan en las regiones lineales cerca.)
bayerj
"cuando las unidades ocultas se activan en las regiones lineales cercanas", te refieres a la parte lineal en la función sigmoidea, ¿verdad?
RockTheStar
17

Como señala bayerj, PCA es un método que asume sistemas lineales donde los Autoencoders (AE) no lo hacen. Si no se utiliza una función no lineal en el AE y el número de neuronas en la capa oculta es de menor dimensión que el de la entrada, entonces PCA y AE pueden producir el mismo resultado. De lo contrario, el AE puede encontrar un subespacio diferente.

Una cosa a tener en cuenta es que la capa oculta en un AE puede ser de mayor dimensionalidad que la de la entrada. En tales casos, los AE pueden no estar haciendo reducción de dimensionalidad. En este caso, los percibimos como una transformación de un espacio de características a otro en el que los datos en el nuevo espacio de características desenredan factores de variación.

Con respecto a su pregunta sobre si varias capas significan una respuesta no lineal muy compleja en bayerj. Dependiendo de lo que quiera decir con "no lineal muy complejo", esto podría ser cierto. Sin embargo, la profundidad realmente ofrece una mejor generalización. Muchos métodos requieren un número igual de muestras igual al número de regiones. Sin embargo, resulta que "un gran número de regiones, por ejemplo, , se puede definir con ejemplos de " según Bengio et al . Esto es el resultado de la complejidad en la representación que surge de componer entidades inferiores a partir de capas inferiores en la red.O(2N)O(N)

DaemonMaker
fuente
2
Gracias por tu ans!
RockTheStar
6

Esto es más adecuado como comentario, pero como me falta la reputación de eso, se dará como respuesta.

Me confundí un poco con la noción de casi en la respuesta de bayerj. Lectura de redes neuronales y análisis de componentes principales: Aprendiendo de ejemplos sin mínimos locales donde se proporciona la prueba.

'' En el caso de auto-asociativa ... y por lo tanto el único local y globalmente mapa óptima W es la proyección ortogonal sobre el espacio abarcado por los primeros vectores propios de '' pΣXX

¿Entonces este no es exactamente el espacio correspondiente como lo abarca PCA?

johnblund
fuente
1
El papel que cita utiliza un autoencoder lineal, es decir, no tiene una función de activación no lineal. Es por eso que sus pesos abarcan el mismo subespacio abarcado por PCA exactamente.
elliotp
6

La respuesta actualmente aceptada por @bayerj afirma que los pesos de un autoencoder lineal abarcan el mismo subespacio que los componentes principales encontrados por PCA, pero no son los mismos vectores. En particular, no son una base ortogonal. Esto es cierto, sin embargo , podemos recuperar fácilmente los componentes principales que cargan los vectores de los pesos del autoencoder. Un poco de notación: dejemos que sea ​​un conjunto de vectores dimensionales, para los cuales deseamos calcular PCA, y sea la matriz cuyas columnas son . Luego, definamos un codificador automático lineal como la red neuronal de capa oculta definida por las siguientes ecuaciones:{xiRn}i=1NN nXx1,,xN

h1=W1x+b1x^=W2h1+b2

donde es la salida del codificador automático (lineal), denotado con un sombrero para enfatizar el hecho de que la salida de un codificador automático es una "reconstrucción" de la entrada. Tenga en cuenta que, como es más común con los codificadores automáticos, la capa oculta tiene menos unidades que la capa de entrada, es decir, y con .x^W1Rn×mW2Rm×nm<n

Ahora, después de entrenar su autoencoder lineal, calcule los primeros vectores singulares de . Es posible demostrar que estos vectores singulares son en realidad los primeros componentes principales de , y la prueba está en Plaut, E., De subespacios principales a componentes principales con codificadores automáticos lineales , Arxiv.org:1804.10253.mW2mX

Desde SVD es en realidad el algoritmo utilizado para calcular PCA, podría parecer de sentido para primer tren un autoencoder lineal y luego aplicar SVD a el fin de recuperar luego la primera vectores de carga, en lugar de aplicar directamente SVD a . El punto es que es una matriz , mientras que es . Ahora, la complejidad temporal de SVD para es , mientras que para es conW2mXXn×NW2m×nW2O(m2n)XO(n2N)m<n, por lo tanto, podría lograrse algún ahorro (incluso si no es tan grande como lo afirma el autor del artículo que enlace). Por supuesto, hay otros enfoques más útiles para calcular la PCA de Big Data (viene a la mente PCA en línea aleatorizada), pero el punto principal de esta equivalencia entre los codificadores automáticos lineales y PCA no es encontrar una forma práctica de calcular PCA para grandes datos conjuntos: se trata más de darnos una intuición sobre las conexiones entre los codificadores automáticos y otros enfoques estadísticos para la reducción de dimensiones.

DeltaIV
fuente