0
votes

La précision de LSTM inchangée pendant la diminution de la perte

Nous mettons un capteur pour détecter des anomalies dans l'accéléromètre.

Il n'y a qu'un seul capteur, de sorte que mes données sont une matrice 1-D. P>

J'ai essayé d'utiliser l'auto-effilement LSTM pour la détection d'anomalie. P >

Mais mon modèle n'a pas fonctionné que les pertes des ensembles de formation et de validation diminuaient mais la précision inchangée inchangée. p>

Voici mon code et mon journal de formation: P>

Train on 4320 samples, validate on 4320 samples
Epoch 1/2000
 - 3s - loss: 0.3855 - acc: 7.2338e-06 - val_loss: 0.3760 - val_acc: 7.2338e-06
Epoch 2/2000
 - 2s - loss: 0.3666 - acc: 7.2338e-06 - val_loss: 0.3567 - val_acc: 7.2338e-06
Epoch 3/2000
 - 2s - loss: 0.3470 - acc: 7.2338e-06 - val_loss: 0.3367 - val_acc: 7.2338e-06
...
Epoch 746/2000
 - 2s - loss: 0.0021 - acc: 1.4468e-05 - val_loss: 0.0021 - val_acc: 1.4468e-05
Epoch 747/2000
 - 2s - loss: 0.0021 - acc: 1.4468e-05 - val_loss: 0.0021 - val_acc: 1.4468e-05
Epoch 748/2000
 - 2s - loss: 0.0021 - acc: 1.4468e-05 - val_loss: 0.0021 - val_acc: 1.4468e-05
Restoring model weights from the end of the best epoch
Epoch 00748: early stopping


2 commentaires

Vous faites de la régression, la précision est une métrique qui n'est valable que pour la classification.


Merci!! Cette information est très utile !!


3 Réponses :


2
votes

Quelques choses

  • Comme Matias dans le champ de commentaire souligné, vous faites une régression, pas une classification. La précision ne donnera pas aux valeurs attendues de la régression. Cela dit, vous pouvez voir que la précision est-elle s'améliore (de 0,0000072 au 0.0000145). Vérifiez la sortie directe de votre modèle pour vérifier à quel point il se rapproche de la série chronologique d'origine.
  • Vous pouvez omettre en toute sécurité les données de validation lorsque vos données de validation sont identiques sur les données de formation
  • avec autoencodeurs, vous souhaitez généralement compresser les données de manière à pouvoir représenter les mêmes données dans une dimension inférieure qui est plus facile à analyser (pour les anomalies ou autrement. Dans votre cas, vous développez la dimensionnalité à la place. de la réduire, ce qui signifie que la stratégie optimale de votre auto-effileur serait de passer par les mêmes valeurs que cela obtient (la valeur de vos horaires est envoyée à 50 unités LSTM, qui envoient leur résultat à une unité dense). Vous pourriez être capable de combattre ceci si vous définissez le retour sur false (c'est-à-dire que seul le résultat du dernier TIMESTEP est renvoyé), de préférence dans plus d'une unité, et essayez ensuite de reconstruire les horaires de ceci à la place. Cela pourrait échouer, mais il est toujours susceptible de conduire à Un meilleur modèle

0 commentaires

2
votes

Comme @matiasvaldenegro a dit que vous ne devriez pas utiliser de précision lorsque vous souhaitez faire de la régression. Vous pouvez voir que votre modèle pourrait aller bien, car votre perte diminue sur les époques et est très faible lorsque vous arrêtez tôt. Dans les problèmes de régression normale, ces mesures sont utilisées:

  • Erreur carrée moyenne: moyenne_squared_error, MSE ou MSE

  • Erreur absolue moyenne: moyenne_absolute_error, mae, mae

  • Erreur de pourcentage absolu moyenne: moyenne_absolute_percentercenter_error, Mape, Mape

  • Cosine Proximité: cosine_proximité, cosinus

    ressource < p> Pour geht les bonnes métriques, vous devriez modifier ceci (par exemple pour "Erreur carrée moyenne"): xxx

    Comme déjà dit que votre modèle semble être bien, vous êtes juste à la recherche de Aux mauvaises métriques.

    J'espère que cela aide et n'hésitez pas à demander.


0 commentaires

0
votes

L'arrêt précoce n'est pas la meilleure technique de régularisation pendant laquelle vous êtes confronté à ce problème. Au moins, alors que vous avez toujours du mal à résoudre ce problème, je préférerais le sortir ou le remplacer par une autre méthode de régularisation. Pour déterminer ce qui se passe.

Aussi une autre suggestion. Pouvez-vous modifier un peu le jeu de validation et voir quel est le comportement? Comment avez-vous créé le jeu de validation?

Avez-vous normalisé / standardiser les données? Veuillez noter que la normalisation est encore plus importante pour les LSTMS

La métrique est définitivement un problème. Les suggestions ci-dessus sont bonnes.


1 commentaires

Si vous savez exactement la gamme de valeurs possibles, MINMAXSCALER devrait être correct.