¿Cómo se entrenan las redes neuronales de factor latente?

Creo que podría estar confundiendo redes neuronales con modelos de factor latente / variable (o modelos probabilísticos con variables latentes). Creo que esto también podría ser el producto de la jerga que se mezcla entre varios subdominios de investigación.

En una red neuronal, podría ser mejor llamar a los nodos “internos” como lo que se ha llamado clásicamente: nodos / neuronas ocultos. Puede verlos (si entrecierra los ojos) como variables latentes, pero no son lo mismo que una variable latente en un modelo gráfico. En primer lugar, no asumimos (o sabemos de ninguna, al menos explícitamente) ninguna distribución sobre los nodos internos y, por lo tanto, realmente no podemos tomar muestras de ellos. Es por eso que en un autoencoder variacional (VAE), hay una distinción entre los nodos ocultos (como los que componen el perceptrón multicapa que actúa como una red de reconocimiento como parte de la inferencia variacional) y las variables latentes. En un VAE, asumimos una distribución sobre algún subconjunto de nodos (es decir, típicamente gaussiano, pero esto puede ser diferente, como mi colega Iulian y yo hemos demostrado) y luego aprendemos a inferir los parámetros de los modelos anterior y posterior (nuevamente , en VAE, solo parametrizamos los modelos de distribución y luego intentamos inferir y aprender los parámetros de estos). Pero si observa su perceptrón multicapa estándar (o red convolucional o red recurrente / temporal), los nodos internos (a menos que muestreados / estocásticos de alguna manera) sean realmente una neurona oculta determinista. Las ideas de las variables latentes en los modelos gráficos no se asignan de manera tan clara a estas, especialmente porque estas neuronas ocultas aprenden representaciones distribuidas (en lugar de que cada nodo en realidad signifique algo único / explícito, es decir, no hay un nodo “gato” en una CNN entrenados en imágenes, muchas neuronas en una capa oculta trabajan juntas para representar este concepto)

El modelo que describe suena como un autoencoder o una máquina Boltzmann. Centrémonos en el codificador automático (dado que una máquina Boltzmann con una capa oculta es estocástica, y los nodos en cierto sentido son variables latentes, pero comprender este modelo está más allá del alcance de esta respuesta). Un autoencoder está entrenado para reconstruir su entrada. Entonces, la “salida” es la entrada =] Usted entrena efectivamente el modelo para minimizar alguna pérdida que describe la falta de coincidencia entre la reconstrucción del modelo de la entrada y la entrada original. Suponiendo que restringe / regulariza correctamente el autoencoder (es decir, eliminación de ruido, una penalización en la capa oculta, escasez forzada, etc.) y evita que aprenda la identidad, el autoencoder está, en principio, aprendiendo algo sobre la distribución de entrada y su oculto La capa (no la capa variable “latente”) puede verse como un mapeo de los datos de entrada a una representación fija de los datos de valor real (posiblemente de menor dimensión). Esta representación puede hacer que cosas como encontrar límites de decisión sean más simples para un clasificador lineal, o puede ser útil si se apilan y aprenden más para crear una especie de representación jerárquica de los datos (pero no confunda esto con un Bayesiano adecuado) modelo jerárquico).

En resumen, dada la descripción del último párrafo, simplemente entrena un autoencoder de capa oculta (con 50 unidades de entrada y 20 unidades ocultas) para minimizar algo como el error cuadrático medio, midiendo qué tan bueno es el modelo en la reconstrucción real -valorizados patrones de vectores. Creo que la clave es evitar mezclar la frase “variable latente” con “nodo oculto” en redes neuronales (a menos que esté trabajando directamente con VAE).