2017-07-12 3 views
-2

Après avoir corrigé mon code et préparé mes données pour l'entraînement, je me suis retrouvé en face de la question 2.Python Tflearn apprentissage machine Optimiseur, perte et paramètres

Contexte: J'ai données en date (une entrée par minute) pour la première colonne et la congestion (valeur, entre 0 et 200) pour le 2ème. Mon but est de le nourrir vers mon réseau de neurones et donc de pouvoir prédire pour la semaine prochaine la congestion à chaque minute (mon dataset fait plus de 10M d'entrée, je ne devrais pas avoir de problème de manque de données pour la formation).

Problème: J'ai maintenant deux questions. D'abord sur la perte, l'optimiseur et linéaire. Il semble qu'il y en ait un certain nombre et ils ont tous un domaine où ils sont meilleurs que l'autre, lequel recommanderiez-vous pour ce projet? (Actuellement sur mon test j'utilise Adam comme optimiseur et mean_square comme perte et linéaire pour l'activation).

Ma deuxième question est plus comme une erreur que j'ai (peut être liée à moi en utilisant la mauvaise perte/optimiseur). En utilisant mon code (10 000 données d'entraînement pour l'instant) j'ai une précision de 0, une perte faible (0.00X) et une mauvaise prédiction (pas même proche de la réalité). Avez-vous une idée d'où cela pourrait venir?

Répondre

1

Ce que vous essayez de faire est appelée prédiction de séries chronologiques (données au moment donné tn, T- (n + 1) ... t-1: prédire l'état à l'instant t ) et est généralement une tâche pour un réseau neuronal récurrent. Here est le grand article de blog par Andrej Karpathy sur le sujet que vous devriez jeter un oeil.

A propos de vos deux questions:

  1. Il est difficile de répondre car la question de ce que optimiseur à utiliser dépend fortement des données d'entrée. D'une manière générale, le réseau convergera quel que soit l'optimiseur utilisé. Le temps qu'il faut pour converger différera cependant. Les méthodes de taux d'apprentissage adaptatif, comme Adagrad, Adadelta et Adam ont tendance à atteindre une convergence légèrement plus rapide. Here est une bonne description des différents optimiseurs.

  2. Les réseaux de neurones de base (MLP) ne fonctionnent pas bien avec la prédiction de séries temporelles. Ce serait une explication pour la faible précision. Cependant, je ne sais pas pourquoi la perte serait de 0.

+0

Ce n'est pas vraiment 0 de perte, juste la précision (la perte est juste faible) voici un exemple de ce que j'ai. 'Étape de formation: 460 | perte totale: 0.00238 | heure: 0.332s | Adam | époque: 006 | perte: 0.00238 - binary_acc: 0.0000 - iter: 8320/9999' –

+0

Pourquoi utilisez-vous la précision binaire? La valeur prédite ne devrait-elle pas être comprise entre 0 et 200? – Flomp

+0

Je ne sais pas pourquoi il montre celui-ci, la valeur prédite devrait être entre 0 et 200 (et même si le résultat que j'ai en ce moment sont mauvais, ils sont au-dessus de 1). Voici le résultat à la fin 'Étape de formation: 7100 | perte totale: 0.00304 | heure: 1.385s | Adam | époque: 100 | perte: 0.00304 - binary_acc: 0.0000 | val_loss: 0.00260 - val_acc: 0.0000 - iter: 8999/8999' –