Puede usar un autoencoder para aprender una representación variable latente de los datos similar a PCA. El contenido en el documento que mencionó ha vinculado conceptos desde el nacimiento de PCA y puede ser difícil de leer para muchas personas (aunque no es difícil). El siguiente contenido puede ayudarlo a comprender el vínculo entre codificadores y PCA.
PCA es una transformación lineal de los datos que encuentra la dirección a lo largo de la cual la varianza es máxima. Como su nombre lo indica, encuentra componentes principales. Estos componentes son la estructura en los datos a lo largo de la cual los datos están más dispersos. Matemáticamente, PCA está haciendo la siguiente operación:
[matemáticas] h = Wx [/ matemáticas]
- ¿Cuáles son los dominios en los que las técnicas de aprendizaje profundo podrían aplicarse además del procesamiento de la visión por computadora y el lenguaje / habla?
- ¿Debería considerarse un experto en aprendizaje automático después de completar la clase de ML del profesor Andrew en Coursera?
- ¿Cómo debo interpretar la probabilidad bayesiana?
- ¿Por qué la precisión del entrenamiento de la red CNN aumenta rápidamente cuando elijo un tamaño de lote relativamente más pequeño?
- ¿Cómo comenzaría con el cambio de funciones o el desarrollo de indicadores de funciones en mi empresa? Actualmente utilizamos ramificaciones.
Donde [math] x [/ math] son los datos con una dimensión más alta y [math] h [/ math] es la proyección de los datos usando [math] W [/ math] en un espacio dimensional inferior. Esta transformación asigna los datos a un espacio con características no correlacionadas (tome los primeros k componentes que muestran alta varianza). Las matemáticas detalladas están aquí. Véalo y pruébelo visualmente aquí.
La misma funcionalidad también se puede lograr utilizando una red neuronal. Por ejemplo, los codificadores automáticos se utilizan esencialmente solo para este propósito. Las redes neuronales realmente encuentran una transformación afín de los datos (si no se utiliza no linealidad para la activación). Si agregamos una función de activación lineal o de identidad, solo obtendremos una transformación lineal. Después de la transformación lineal, las redes neuronales minimizan el error de reconstrucción y, por lo tanto, este tipo de red será equivalente a PCA. Veamos con pocas ecuaciones:
La figura de arriba es un autoencoder. Aprende a reconstruir los datos de entrada (x). La red anterior aprende un mapeo de identidad de [math] x [/ math] a [math] r [/ math] y funciona de la siguiente manera:
[matemáticas] h = f (x) [/ matemáticas]; es la representación variable latente de la entrada
[matemáticas] r = g (h) = g (f (x)); [/ math] Es la reconstrucción de la entrada de la representación latente.
De la ecuación anterior, [math] h [/ math] es una representación variable latente de [math] x [/ math] en un espacio de baja dimensión. Tanto el codificador como el decodificador son operaciones lineales y siempre que utilicemos una función de activación lineal, la salida será una transformación afín de la entrada ([matemática] h = [/ matemática] [matemática] W ^ Tx + b [/mates]). Eso significa que tanto el codificador como el PCA son operaciones lineales.
Pero, ¿cómo podemos afirmar que tanto PCA como autoencoders son el mismo tipo de proyecciones? Si podemos demostrar que el autoencoder está minimizando la variación entre la distribución de datos latente y exacta, entonces hemos terminado. Vamos a verlo matemáticamente:
Sea la función de pérdida del autoencoder: [matemática] L (x, g (f (x))). [/mates]
donde la función de pérdida penaliza la red cuando la distribución [matemática] g (f (x)) [/ matemática] es diferente a la distribución de [matemática] x [/ matemática]. En el caso determinista, puede ser una pérdida al cuadrado; de lo contrario, puede ser una divergencia KL. Simplemente significa que la red es un estimador imparcial que está minimizando la varianza entre las dos distribuciones. Por lo tanto, PCA y autoencoder están haciendo el mismo trabajo.
Si consideramos la función de activación no lineal en las capas ocultas, el codificador automático asignará los datos a una curva no lineal y, en ese caso, podemos mostrar que esta transformación es similar a ICA (Análisis de componentes independientes) o aprendizaje múltiple.
No dude en comentar o sugerir modificaciones.
Fuente de la imagen: libro de aprendizaje profundo de Goodfellow et. Alabama.