Tengo un conjunto de datos que contiene 34 columnas de entrada y 8 columnas de salida. Una forma de resolver el problema es tomar las 34 entradas y construir un modelo de regresión individual para cada columna de salida. Me pregunto si este problema puede resolverse usando solo un modelo, particularmente usando Neural Network.
He usado un perceptrón multicapa, pero eso necesita múltiples modelos al igual que la regresión lineal. ¿Puede el aprendizaje secuencia a secuencia 1 ser una opción viable? Intenté usar TensorFlow, no parece ser capaz de manejar valores flotantes.
Cualquier sugerencia para abordar este problema mediante el uso de un solo modelo unificado, especialmente utilizando la red neuronal será apreciada.
- Ilya Sutskever, Oriol Vinyals y Quoc V. Le (2014). Secuencia a secuencia de aprendizaje con redes neuronales. Avances en los sistemas de procesamiento de información neuronal , 27. ( pdf )
Respuestas:
Una red neuronal con múltiples resultados toma la forma Si su resultado tiene la dimensión , entonces tendrá la dimensión .
Es decir, estaría asumiendo que cada resultado comparte TODOS los parámetros en las capas ocultas, y solo tiene parámetros diferentes para tomar la variable derivada más alta y relacionarla con el resultado.
¿Es esta una suposición realista para su contexto?
fuente
Al principio pensé que el comentario de generic_user era un show-stopper, pero me di cuenta de que no lo es:
Si entreno d redes diferentes en d salidas diferentes, entonces cada una se ajustará a esa dimensión sin tener en cuenta a las demás.
Pero si entreno una red con salidas d y uso todas las salidas para la propagación hacia atrás, entonces cada peso en cada capa de la red se ajustará para que todas las salidas d sean más precisas.
Es decir: cada parámetro de red se ajustará mediante una suma de gradientes (cómo varía cada salida con un " meneo " en este parámetro) de modo que ajustarlo en la dirección elegida hacia arriba o hacia abajo provoca una salida más precisa en general, incluso si se ajusta El peso de esa manera hace que algunas dimensiones de la salida sean menos precisas.
Entonces, sí, lo que finalmente distingue a cada salida es solo una ecuación lineal codificada en la última capa, pero al entrenar una red de múltiples salidas, cada capa mejorará al presentar esa última capa con algo que le permita hacer su trabajo mejor . Y, por lo tanto, se deduce que las relaciones entre salidas serán explicadas por esta arquitectura.
Es posible que pueda hacerlo mejor que una red totalmente conectada al hacer que su arquitectura refleje las relaciones conocidas en la salida, al igual que las redes profundas funcionan mejor que las superficiales al explotar las relaciones "compositivas" entre las entradas .
fuente
Puede hacerlo con una sola red neuronal. Pero su red neuronal debería verse así:
Capa de entrada: 34 nodos (uno por su columna de entrada)
Capa de salida: 8 nodos (uno por su columna de salida)
Puede agregar tantas capas ocultas como desee en la Red neuronal. Entonces, la red neuronal genera 8 valores pronosticados y cada valor será una regresión diferente de las entradas.
fuente
Me estaba preguntando lo mismo; Aquí están mis ideas:
Supongo que si las salidas comparten algunos patrones ocultos, la capacitación puede beneficiarse al aprender simultáneamente la regresión para todas las salidas.
Sería interesante probar una arquitectura en la que construya una red neuronal para cada salida, pero todas las redes neuronales comparten algunas capas (las primeras medias capas, por ejemplo). Entonces podría entrenar cada red neuronal al mismo tiempo: dentro del ciclo de aprendizaje, cada red neuronal se entrena un paso (con un lote) secuencialmente.
Esto sería similar a la transferencia de conocimiento, pero con la diferencia de que en la transferencia de conocimiento cada red neuronal está completamente entrenada antes de reutilizar alguna parte de ella para entrenar a otra red neuronal.
Apuesto a que alguien ha pensado en esto antes, pero no tengo ninguna referencia al respecto.
fuente