Utilisation de l'apprentissage en profondeur pour la prédiction de séries chronologiques

54

Je suis nouveau dans le domaine de l'apprentissage en profondeur et pour moi, la première étape a été de lire des articles intéressants sur le site deeeplearning.net. Dans des articles sur l'apprentissage en profondeur, Hinton et d'autres discutent principalement de l'appliquer à des problèmes d'image. Quelqu'un peut-il essayer de me répondre? Peut-il être appliqué au problème de la prévision des valeurs de séries chronologiques (données financières, trafic Internet, ...) et quelles sont les choses importantes sur lesquelles je devrais me concentrer si cela est possible?

Vedran
la source
Avez-vous un exemple de code matlab pour utiliser l'apprentissage en profondeur pour les prévisions?
user3209559
Non, j'utilise l'exemple de code de la bibliothèque deeplearning.net et pylearn2 que j'ai modifié. Essayez de trouver des exemples de code matlab sur cette page et essayez d’apporter les modifications nécessaires à la prévision.
Vedran

Réponses:

28

Des travaux ont été menés sur l’adaptation de méthodes d’apprentissage approfondi aux données séquentielles. Une grande partie de ce travail a été consacrée au développement de "modules" pouvant être empilés de manière analogue à l’empilement de machines Boltzmann restreintes (RBM) ou d’auto-encodeurs pour former un réseau neuronal profond. Je vais en souligner quelques-uns ci-dessous:

  • RBM conditionnels : Probablement l’une des applications les plus réussies d’apprentissage en profondeur pour les séries chronologiques. Taylor développe un modèle de type RBM qui ajoute des interactions temporelles entre les unités visibles et l'applique à la modélisation des données de capture de mouvement. Vous vous retrouvez essentiellement avec un système dynamique linéaire avec une certaine non-linéarité ajoutée par les unités cachées.
  • RBM temporels : Dans sa thèse (section 3), Ilya Sutskever développe plusieurs modèles de type RBM avec des interactions temporelles entre unités. Il présente également quelques résultats intéressants montrant que la formation de réseaux de neurones récurrents avec SGD peut être aussi performante, voire meilleure, que des méthodes plus complexes, telles que l'algorithme sans hessian de Martens, utilisant une bonne initialisation et une équation légèrement modifiée pour l'élan.
  • Autoencodeurs récursifs : Enfin, je mentionnerai le travail de Richard Socher sur l’utilisation des autoencodeurs récursifs pour l’analyse. Bien que ce ne soit pas une série chronologique, c'est certainement lié.
alto
la source
1
Il existe également une notion flottant dans la communauté d’apprentissage en profondeur / fonction qui permet de considérer un réseau récurrent (souvent appliqué à des données séquentielles) comme un réseau profond "de son côté", où toutes les couches partagent la même matrice de pondération.
lmjohns3
Qu'en est-il de l'exigence sur la puissance de calcul pour utiliser l'apprentissage en profondeur? Python ou Matlab convient-il à la résolution d’un problème d’apprentissage en profondeur fort du secteur?
user3269
Pylearn2 utilise la bibliothèque théoano qui permet l'exécution sur des GPU avec le support CUDA.
Vedran
16

Oui, l'apprentissage en profondeur peut être appliqué aux prévisions de séries chronologiques. En fait, cela a déjà été fait à plusieurs reprises, par exemple:

Ce n’est pas vraiment un "cas spécial", l’apprentissage en profondeur concerne principalement la méthode de prétraitement (basée sur un modèle génératif), vous devez donc vous concentrer sur les mêmes choses que celles sur lesquelles vous vous concentrez lorsque vous effectuez un apprentissage en profondeur au sens traditionnel du terme. main, et les mêmes choses que vous vous concentrez tout en effectuant des prévisions de série chronologique sans apprentissage en profondeur.

lejlot
la source
4

Les réseaux de neurones récurrents sont considérés comme un type d'apprentissage en profondeur (DL). Je pense que ce sont les outils DL les plus populaires pour l’apprentissage (1d) séquence à séquence. Elles sont actuellement à la base des approches de neural machine translation (NMT) (une première en 2014 chez LISA (UdeM), Google et probablement quelques autres dont je ne me souviens pas).

Capybaralet
la source
3

Les séquences générées par Alex Graves avec des réseaux de neurones récurrents utilisent des réseaux récurrents et des cellules à mémoire à court terme pour prédire le texte et synthétiser l’écriture manuscrite.

Andrej Karpathy a écrit un blog sur la génération de séquences au niveau des personnages. Il utilise RNN dans son tutoriel.

Pour plus d'exemples, vous devriez regarder - Hochreiter, S., & Schmidhuber, J. (1997). Longue mémoire à court terme. Calcul neural, 9 (8), 1735-1780.

Azrael
la source
3

Cela aidera peut-être:

Si vous avez une définition précise de votre fenêtre temporelle sur les données telles que des phrases dans cet article ou dans des paragraphes, vous pourrez utiliser LSTM, mais je ne suis pas sûr de savoir comment trouver la fenêtre temporelle qui n’est pas évidente et qui est plus sensible au contexte. Un exemple de cela peut être le nombre de données de journal que vous voyez sont liées et ce n'est pas une évidence.

M.Rez
la source
1
Pourriez-vous peut-être dire ce qui dans le document est utile? Ceci est intéressant
shadowtalker
1
Je pense que vous pouvez trouver d'autres articles ici: cs.stanford.edu/people/ang/?page_id=414
M.Rez
5
merci mais ce n'est pas ce que je voulais dire. Ici, nous demandons généralement aux gens d’expliquer comment les articles auxquels ils sont liés sont pertinents pour la réponse. C'est utile pour tout le monde, qui n'a peut-être pas le temps de chercher et de lire le journal, et en particulier pour les personnes ne possédant pas d'abonnement à une base de données de bibliothèque et ne pouvant pas se passer de paywalls
shadowtalker