J'ai un ensemble de données contenant 34 colonnes d'entrée et 8 colonnes de sortie. Une façon de résoudre le problème consiste à prendre les 34 entrées et à créer un modèle de régression individuel pour chaque colonne de sortie. Je me demande si ce problème peut être résolu en utilisant un seul modèle, en particulier en utilisant Neural Network.
J'ai utilisé un perceptron multicouche, mais qui nécessite plusieurs modèles, tout comme la régression linéaire. L' apprentissage de séquence en séquence 1 peut-il être une option viable? J'ai essayé d'utiliser TensorFlow, il ne semble pas pouvoir gérer les valeurs flottantes.
Toute suggestion pour résoudre ce problème en utilisant un seul modèle unifié utilisant spécialement un réseau de neurones sera appréciée.
- Ilya Sutskever, Oriol Vinyals et Quoc V. Le (2014). Apprentissage de séquence en séquence avec les réseaux de neurones. Advances in Neural Information Processing Systems , 27. ( pdf )
Réponses:
Un réseau neuronal à résultats multiples prend la forme Si votre résultat a la dimension , alors aura la dimension .
Ce qui veut dire que vous supposeriez que chaque résultat partage TOUS les paramètres dans les couches cachées, et n'a que des paramètres différents pour prendre la variable dérivée la plus élevée et la relier au résultat.
Est-ce une hypothèse réaliste pour votre contexte?
la source
Au début, je pensais que le commentaire de generic_user était un spectacle, mais je viens de réaliser que ce n'est pas:
Si je forme d réseaux différents sur d sorties différentes, alors chacun sera adapté à cette dimension sans égard pour les autres.
Mais si je forme un réseau avec des sorties d et utilise toutes les sorties pour la rétropropagation, alors chaque poids dans chaque couche du réseau sera ajusté de sorte que toutes les sorties d soient plus précises.
C'est-à-dire: chaque paramètre de réseau sera ajusté par une somme de gradients (comment chaque sortie varie avec un " wiggle " dans ce paramètre) de sorte que l'ajuster dans le sens haut ou bas choisi donne une sortie plus précise dans l'ensemble - même si le réglage le poids de cette façon rend certaines dimensions de la sortie moins précises.
Donc, oui, la chose qui distingue finalement chaque sortie est juste une équation linéaire codée dans la dernière couche, mais en formant un réseau multi-sortie, chaque couche améliorera la présentation de cette dernière couche avec quelque chose qui lui permettra de mieux faire son travail . Il s'ensuit donc que les relations entre les sorties seront prises en compte par cette architecture.
Vous pourriez être en mesure de faire mieux qu'un réseau entièrement connecté en faisant en sorte que votre architecture reflète toutes les relations connues dans la sortie, tout comme les réseaux profonds font mieux que les réseaux peu profonds en exploitant les relations "compositionnelles" entre les entrées .
la source
Vous pouvez le faire avec un seul réseau neuronal. Mais votre réseau de neurones devrait ressembler à ceci:
Couche d'entrée: 34 nœuds (un par votre colonne d'entrée)
Couche de sortie: 8 nœuds (un par votre colonne de sortie)
Vous pouvez ajouter autant et aussi grandes que les couches cachées que vous souhaitez dans le réseau neuronal. Ainsi, Neural Network génère 8 valeurs prédites et chaque valeur sera une régression différente des entrées.
la source
Je me demandais la même chose; voici mes idées:
Je suppose que si les sorties partagent certains modèles cachés, alors la formation peut bénéficier de l'apprentissage simultané de la régression pour toutes les sorties.
Il serait intéressant d'essayer une architecture où vous construisez un réseau neuronal pour chaque sortie, mais tous les réseaux neuronaux partagent certaines couches (les premières demi-couches par exemple). Ensuite, vous pourriez former chaque réseau de neurones en même temps: à l'intérieur de la boucle d'apprentissage, chaque réseau de neurones est formé une étape (avec un lot) séquentiellement.
Ce serait similaire au transfert de connaissances, mais avec la différence que dans le transfert de connaissances, chaque réseau neuronal est entièrement formé avant de réutiliser une partie de celui-ci pour former un autre réseau neuronal.
Je parie que quelqu'un y a déjà pensé, mais je n'y ai aucune référence.
la source