Temporal Fusion Transformer: Time Series Forecasting with Deep Learning — Πλήρες σεμινάριο

Δημιουργήστε ακριβείς και ερμηνεύσιμες προβλέψεις

Δημιουργήθηκε με DALLE [1]

Σύμφωνα με το [2], Χρονικός μετασχηματιστής σύντηξης ξεπερνά όλα τα εξέχοντα μοντέλα Deep Learning για την πρόβλεψη χρονοσειρών.

Συμπεριλαμβανομένου ενός χαρακτηρισμένου Δέντρο ενίσχυσης κλίσης μοντέλο για δεδομένα πινάκων χρονοσειρών.

Αλλά τι είναι Χρονικός μετασχηματιστής σύντηξης (TFT)[3] και γιατί είναι τόσο ενδιαφέρον;

Σε αυτό το άρθρο, εξηγούμε εν συντομία τις καινοτομίες του Χρονικός μετασχηματιστής σύντηξης και να δημιουργήσετε ένα έργο από άκρο σε άκρο Πρόβλεψη Ζήτησης Ενέργειας. Συγκεκριμένα, θα καλύψουμε:

  • Πώς να προετοιμάσουμε τα δεδομένα μας για τη μορφή TFT.
  • Πώς να δημιουργήσετε, να εκπαιδεύσετε και να αξιολογήσετε το μοντέλο TFT.
  • Πώς να λάβετε προβλέψεις για δεδομένα επικύρωσης και προβλέψεις εκτός δείγματος.
  • Πώς να υπολογίσετε σημασίες χαρακτηριστικών, εποχιακά μοτίβα, και ευρωστία ακραίων συμβάντων χρησιμοποιώντας το ενσωματωμένο μοντέλο ερμηνεύσιμη προσοχή μηχανισμός.

Ας βουτήξουμε!

Για μια εις βάθος ανάλυση της αρχιτεκτονικής του Temporal Fusion Transformer, ελέγξτε το προηγούμενο άρθρο.

Tεμπορική Fχρήση Transformer (TFT) είναι ένα μοντέλο που βασίζεται σε μετασχηματιστή που αξιοποιεί την αυτοπροσοχή για να καταγράψει τη σύνθετη χρονική δυναμική πολλαπλών χρονικών ακολουθιών.

Το TFT υποστηρίζει:

  • Πολλαπλές χρονοσειρές: Μπορούμε να εκπαιδεύσουμε ένα μοντέλο TFT σε χιλιάδες μονομεταβλητές ή πολυμεταβλητές χρονοσειρές.
  • Πρόβλεψη πολλαπλών οριζόντων: Το μοντέλο εξάγει προβλέψεις πολλαπλών βημάτων για μία ή περισσότερες μεταβλητές στόχου — συμπεριλαμβανομένων των διαστημάτων πρόβλεψης.
  • Ετερογενή χαρακτηριστικά: Το TFT υποστηρίζει πολλούς τύπους χαρακτηριστικών, συμπεριλαμβανομένων των χρονικών μεταβλητών και των στατικών εξωγενών μεταβλητών.
  • Ερμηνεύσιμες προβλέψεις: Οι προβλέψεις μπορούν να ερμηνευθούν με όρους μεταβλητής σημασίας και εποχικότητας.

Ένα από αυτά τα χαρακτηριστικά είναι μοναδικό σε Χρονικός μετασχηματιστής σύντηξης. Θα το καλύψουμε αυτό στην επόμενη ενότητα.

Μεταξύ των αξιοσημείωτων μοντέλων χρονοσειρών DL (π.χ. Βαθεαρ[4]), το TFT ξεχωρίζει επειδή υποστηρίζει διάφορους τύπους λειτουργιών. Αυτά είναι:

  • Χρονικά μεταβαλλόμενη γνωστός
  • Χρονικά μεταβαλλόμενη άγνωστος
  • Χρονικά αμετάβλητο πραγματικός
  • Χρονικά αμετάβλητο κατηγορηματικός

Για παράδειγμα, φανταστείτε ότι έχουμε ένα περίπτωση πρόβλεψης πωλήσεων:

Ας πούμε ότι πρέπει να προβλέψουμε τις πωλήσεις 3 προϊόντων. ο num sales είναι η μεταβλητή στόχος. ο CPI index ή η number of visitors are χρονικά μεταβαλλόμενη άγνωστη χαρακτηριστικά επειδή είναι γνωστά μόνο μέχρι το χρόνο πρόβλεψης. Ωστόσο, holidaysκαι special days are χρονικά μεταβαλλόμενη γνωστή γεγονότα.

Η product id is μια χρονικά αμετάβλητη (στατική) κατηγορική χαρακτηριστικό. Άλλα χαρακτηριστικά που είναι αριθμητικά και δεν εξαρτώνται από το χρόνο, όπως yearly_revenue μπορούν να κατηγοριοποιηθούν ως χρονικά αμετάβλητο πραγματικό.

Προτού μεταβείτε στο έργο μας, θα δείξουμε πρώτα έναν μικρό οδηγό για το πώς να μετατρέψετε τα δεδομένα σας σε μορφή εκτεταμένης χρονοσειράς.

Σημείωση: Όλες οι εικόνες και οι εικόνες σε αυτό το άρθρο δημιουργούνται από τον συγγραφέα.

Για αυτό το σεμινάριο, χρησιμοποιούμε το TemporalFusionTransformer μοντέλο από το PyTorch Forecasting βιβλιοθήκη και PyTorch Lightning:

pip install torch pytorch-lightning pytorch_forecasting

Η όλη διαδικασία περιλαμβάνει 3 πράγματα:

  1. Δημιουργήστε ένα πλαίσιο δεδομένων pandas με τα δεδομένα χρονοσειρών μας.
  2. Τυλίξτε το πλαίσιο δεδομένων μας σε ένα TimeSeriesDataset παράδειγμα.
  3. Περάστε μας TimeSeriesDataset παράδειγμα προς TemporalFusionTransformer.

Η TimeSeriesDataset είναι πολύ χρήσιμο γιατί μας βοηθά να προσδιορίσουμε εάν οι λειτουργίες μεταβάλλονται χρονικά ή είναι στατικές. Επιπλέον, είναι η μόνη μορφή που TemporalFusionTransformer δέχεται.

Ας δημιουργήσουμε ένα ελάχιστο σύνολο δεδομένων εκπαίδευσης για να δείξουμε πώς TimeSeriesDataset έργα:

Θα πρέπει να μορφοποιήσουμε τα δεδομένα μας με τον ακόλουθο τρόπο: Κάθε έγχρωμο πλαίσιο αντιπροσωπεύει μια διαφορετική χρονοσειρά, που αντιπροσωπεύεται από τη δική της group αξία.

Φιγούρα 1: Το πλαίσιο δεδομένων sample_data pandas

Η πιο σημαντική στήλη του πλαισίου δεδομένων μας είναι η time_idx — καθορίζει τη σειρά των δειγμάτων. Εάν δεν λείπουν παρατηρήσεις, οι τιμές θα πρέπει να αυξηθούν κατά +1 για κάθε χρονοσειρά.

Στη συνέχεια, τυλίγουμε το πλαίσιο δεδομένων μας σε ένα TimeSeriesDataset παράδειγμα:

Όλα τα επιχειρήματα είναι αυτονόητα: Το max_encoder_length ορίζει την περίοδο αναδρομής και max_prediction_length καθορίζει πόσα σημεία δεδομένων θα προβλεφθούν. Στην περίπτωσή μας, κοιτάμε πίσω 3 χρονικά βήματα στο παρελθόν για να εξάγουμε 2 προβλέψεις.

Η TimeSeriesDataset Το παράδειγμα χρησιμεύει τώρα ως πρόγραμμα φόρτωσης δεδομένων. Ας εκτυπώσουμε μια παρτίδα και ας ελέγξουμε πώς θα περάσουν τα δεδομένα μας στο TFT:

Αυτή η παρτίδα περιέχει τις τιμές εκπαίδευσης [0,1] από την πρώτη χρονοσειρά (group 0) και τις τιμές δοκιμής[2,3,4]. Εάν εκτελέσετε ξανά αυτόν τον κωδικό, θα λάβετε διαφορετικές τιμές επειδή τα δεδομένα ανακατεύονται από προεπιλογή.

Το έργο μας θα χρησιμοποιήσει το Electricity Load Diagrams20112014 [5] σύνολο δεδομένων από την UCI. Μπορείτε να κατεβάσετε το σημειωματάριο για αυτό το παράδειγμα εδώ:

Αυτό το σύνολο δεδομένων περιέχει τη χρήση ενέργειας (σε KWs) 370 πελατών/καταναλωτών με συχνότητα 15 λεπτών. Τα δεδομένα εκτείνονται σε 4 χρόνια (2011–2014).

Ορισμένοι καταναλωτές δημιουργήθηκαν μετά το 2011, επομένως η κατανάλωση ενέργειας αρχικά είναι μηδενική.

Κάνουμε προεπεξεργασία δεδομένων σύμφωνα με [3]:

  • Συγκεντρώνουμε τη μεταβλητή-στόχο μας power_usage ανά ώρα.
  • Βρείτε την παλαιότερη ημερομηνία για κάθε χρονοσειρά όπου η ισχύς είναι μη μηδενική.
  • Δημιουργήστε νέες δυνατότητες: month, day, hour και day_of_week.
  • Επιλέξτε όλες τις ημέρες μεταξύ 2014–01–01 και 2014–09–07.

Ας αρχίσουμε:

Λήψη δεδομένων

wget https://archive.ics.uci.edu/ml/machine-learning-databases/00321/LD2011_2014.txt.zip
!ανοίγω φερμουάρ
LD2011_2014.txt.zip

Προεπεξεργασία δεδομένων

Κάθε στήλη αντιπροσωπεύει έναν καταναλωτή. Το πιο αρχικό power_usage οι τιμές είναι 0.

Στη συνέχεια, συγκεντρώνουμε σε ωριαία δεδομένα. Λόγω του μεγέθους και της πολυπλοκότητας του μοντέλου, εκπαιδεύουμε το μοντέλο μας σε 5 καταναλωτές μόνο (για αυτούς με μη μηδενικές τιμές).

Τώρα, προετοιμάζουμε το σύνολο δεδομένων μας για το TimeSeriesDataset μορφή. Παρατηρήστε ότι κάθε στήλη αντιπροσωπεύει μια διαφορετική χρονοσειρά. Ως εκ τούτου, «λιώνουμε» το πλαίσιο δεδομένων μας, έτσι ώστε όλες οι χρονοσειρές να στοιβάζονται κατακόρυφα αντί για οριζόντια. Στην πορεία, δημιουργούμε τα νέα μας χαρακτηριστικά.

Καλείται το τελικό προεπεξεργασμένο πλαίσιο δεδομένων time_df. Ας εκτυπώσουμε το περιεχόμενό του:

Η time_df είναι τώρα στην κατάλληλη μορφή για το TimeSeriesDataset. Όπως έχετε μαντέψει μέχρι τώρα, δεδομένου ότι η ευαισθησία είναι ωριαία, το hours_from_start μεταβλητή θα είναι η δείκτης χρόνου.

Διερευνητική Ανάλυση Δεδομένων

Η επιλογή 5 καταναλωτών/χρονοσειρά δεν είναι τυχαία. ο power usage κάθε χρονοσειράς έχει διαφορετικές ιδιότητες, όπως η μέση τιμή:

time_df[['consumer_id','power_usage']].groupby('consumer_id').mean()

Ας σχεδιάσουμε τον πρώτο μήνα κάθε χρονοσειράς:

Εικόνα 2: Ο πρώτος μήνας και των 5 χρονοσειρών/καταναλωτών.

Δεν υπάρχει αξιοσημείωτη τάση, αλλά κάθε χρονοσειρά έχει ελαφρώς διαφορετική εποχικότητα και εύρος. Μπορούμε να πειραματιστούμε περαιτέρω και να ελέγξουμε τη σταθερότητα, τις αποσυνθέσεις σημάτων και ούτω καθεξής, αλλά στην περίπτωσή μας, εστιάζουμε μόνο στην πτυχή της κατασκευής μοντέλων.

Επίσης, παρατηρήστε ότι άλλες μέθοδοι πρόβλεψης χρονοσειρών όπως ΑΡΙΜΑ πρέπει να ικανοποιεί μερικές απαιτήσεις (για παράδειγμα, η χρονοσειρά πρέπει πρώτα να γίνει σταθερή.) Με το TFT, μπορούμε να αφήσουμε τα δεδομένα μας ως έχουν.

Δημιουργήστε DataLoaders

Σε αυτό το βήμα, περνάμε το δικό μας time_df στο TimeSeriesDataSet μορφή που είναι εξαιρετικά χρήσιμη γιατί:

  • Μας γλιτώνει από το να γράψουμε το δικό μας Dataloader.
  • Μπορούμε να καθορίσουμε πώς το TFT θα χειρίζεται τις δυνατότητες του συνόλου δεδομένων.
  • Μπορούμε να κανονικοποιήσουμε το σύνολο δεδομένων μας με ευκολία. Στην περίπτωσή μας, η κανονικοποίηση είναι υποχρεωτική επειδή όλες οι χρονικές ακολουθίες διαφέρουν ως προς το μέγεθος. Έτσι, χρησιμοποιούμε το GroupNormalizer για την κανονικοποίηση κάθε χρονοσειράς ξεχωριστά.

Το μοντέλο μας χρησιμοποιεί ένα παράθυρο ανασκόπησης μιας εβδομάδας (7*24) για να προβλέψει τη χρήση ενέργειας των επόμενων 24 ωρών.

Επίσης, παρατηρήστε ότι το hours_from_start είναι τόσο ο δείκτης χρόνου όσο και ένα χαρακτηριστικό που μεταβάλλεται χρονικά. ο power_usage είναι η μεταβλητή στόχος μας. Για λόγους επίδειξης, το σετ επικύρωσης είναι η τελευταία ημέρα:

Μοντέλο βάσης

Στη συνέχεια, το βήμα που ξεχνάνε σχεδόν όλοι: Ένα βασικό μοντέλο. Ειδικά στην πρόβλεψη χρονοσειρών, θα εκπλαγείτε με το πόσο συχνά ένας αφελής προγνωστικός ξεπερνάει ακόμη και ένα πιο φανταχτερό μοντέλο!

Ως απλή γραμμή βάσης, προβλέπουμε την καμπύλη χρήσης ενέργειας της προηγούμενης ημέρας:

Εκπαίδευση του Μοντέλου Μετασχηματιστή Χρονικής Σύντηξης

Μπορούμε να εκπαιδεύσουμε το μοντέλο TFT χρησιμοποιώντας τα γνωστά Προπονητής διεπαφή από PyTorch Lightning.

Προσέξτε τα ακόλουθα πράγματα:

  • Χρησιμοποιούμε το Πρόωρη διακοπή επανάκληση για παρακολούθηση της απώλειας επικύρωσης.
  • Χρησιμοποιούμε Ταμπλό για να καταγράψετε τις μετρήσεις εκπαίδευσης και επικύρωσης.
  • Το μοντέλο μας χρησιμοποιεί Ποσοστιαία Απώλεια — ένας ειδικός τύπος απώλειας που μας βοηθά να εξάγουμε τα διαστήματα πρόβλεψης. Για περισσότερα σχετικά με τη συνάρτηση Quantile Loss, δείτε αυτό το άρθρο.
  • Χρησιμοποιούμε 4 κεφάλια προσοχής, όπως το πρωτότυπο χαρτί.

Τώρα είμαστε έτοιμοι να κατασκευάσουμε και να εκπαιδεύσουμε το μοντέλο μας:

Αυτό είναι! Μετά από 6 εποχές, το EarlyStopping ξεκινά και διακόπτει την προπόνηση.

Φορτώστε και αποθηκεύστε το καλύτερο μοντέλο

Μην ξεχάσετε να αποθηκεύσετε το μοντέλο σας. Αν και μπορούμε να το τουρσί, η πιο ασφαλής επιλογή είναι να σώσουμε απευθείας την καλύτερη εποχή:

!zip -r model.zip lightning_logs/lightning_logs/version_1/*

Για να φορτώσετε ξανά το μοντέλο, αποσυμπιέστε μοντέλο.zip και εκτελέστε τα ακόλουθα — απλώς θυμηθείτε την καλύτερη διαδρομή μοντέλου:

Ελέγξτε το Tensorboard

Ρίξτε μια πιο προσεκτική ματιά στις καμπύλες εκπαίδευσης και επικύρωσης με το Tensorboard:

Αξιολόγηση μοντέλου

Λάβετε προβλέψεις για το σύνολο επικύρωσης και υπολογίστε τον μέσο όρο P50 (μέσος όρος της ποσότητας) off:

Οι τελευταίες 2 χρονοσειρές έχουν λίγο μεγαλύτερες απώλειες επειδή το σχετικό τους μέγεθος είναι επίσης υψηλό.

Προβλέψεις γραφικής παράστασης για δεδομένα επικύρωσης

Αν περάσουμε το mode=raw σχετικά με την προλέγω() μέθοδο, λαμβάνουμε περισσότερες πληροφορίες, συμπεριλαμβανομένων προβλέψεων και για τα επτά ποσοστά. Έχουμε επίσης πρόσβαση στις τιμές προσοχής (περισσότερα για αυτό αργότερα).

Ρίξτε μια πιο προσεκτική ματιά στο raw_predictions μεταβλητή:

Χρησιμοποιούμε το plot_prediction() να δημιουργήσουμε τα οικόπεδά μας. Φυσικά, θα μπορούσατε να φτιάξετε τη δική σας προσαρμοσμένη πλοκή — το plot_prediction() έχει το επιπλέον πλεονέκτημα της προσθήκης των τιμών προσοχής.

Σημείωση: Το μοντέλο μας προβλέπει τα επόμενα 24 σημεία δεδομένων με μία κίνηση. Αυτό δεν είναι ένα κυλιόμενο σενάριο πρόβλεψης όπου ένα μοντέλο προβλέπει α ενιαίας εκτιμήστε κάθε φορά και «συρράψτε» όλες τις προβλέψεις μαζί.

Δημιουργούμε ένα οικόπεδο για κάθε καταναλωτή (5 συνολικά).

Εικόνα 3: Προβλέψεις για δεδομένα επικύρωσης για MT_002
Εικόνα 4: Προβλέψεις για δεδομένα επικύρωσης για MT_004
Εικόνα 5: Προβλέψεις για δεδομένα επικύρωσης για MT_005
Εικόνα 6: Προβλέψεις για δεδομένα επικύρωσης για MT_006
Εικόνα 7: Προβλέψεις για δεδομένα επικύρωσης για MT_008

Τα αποτελέσματα είναι αρκετά εντυπωσιακά.

Τα Χρονικός μετασχηματιστής σύντηξης μοντέλο μπόρεσε να αποτυπώσει τη συμπεριφορά και των 5 χρονοσειρών, τόσο σε εποχικότητα όσο και σε μέγεθος!

Σημειώστε επίσης ότι:

  • Δεν πραγματοποιήσαμε κανένα συντονισμό υπερπαραμέτρων.
  • Δεν εφαρμόσαμε καμία φανταχτερή τεχνική μηχανικής χαρακτηριστικών.

Σε μια επόμενη ενότητα, δείχνουμε πώς να βελτιώσουμε το μοντέλο μας με βελτιστοποίηση υπερπαραμέτρων.

Προβλέψεις πλοκής για μια συγκεκριμένη χρονική σειρά

Προηγουμένως, σχεδιάζαμε προβλέψεις για τα δεδομένα επικύρωσης χρησιμοποιώντας το idx όρισμα, το οποίο επαναλαμβάνεται σε όλες τις χρονικές σειρές στο σύνολο δεδομένων μας. Μπορούμε να είμαστε πιο συγκεκριμένοι και να βγάζουμε προβλέψεις σε μια συγκεκριμένη χρονοσειρά:

Εικόνα 7: Πρόβλεψη για την επόμενη μέρα για MT_004 στο σετ προπόνησης

In Σχήμα 7, σχεδιάζουμε την επόμενη μέρα MT_004 καταναλωτή για δείκτη χρόνου=26512.

Θυμηθείτε, τη στήλη χρονικής ευρετηρίασης hours_from_start ξεκινάει από το 26304 και μπορούμε να πάρουμε προβλέψεις από το 26388 και μετά (γιατί ρυθμίσαμε νωρίτερα min_encoder_length=max_encoder_length // 2 που ισούται 26304 + 168//2=26388

Προβλέψεις εκτός δείγματος

Ας δημιουργήσουμε προβλέψεις εκτός δείγματος, πέρα ​​από το τελικό σημείο δεδομένων των δεδομένων επικύρωσης — που είναι 2014–09–07 23:00:00

Το μόνο που έχουμε να κάνουμε είναι να δημιουργήσουμε ένα νέο πλαίσιο δεδομένων που περιέχει:

  • Ο αριθμός των N=max_encoder_length προηγούμενες ημερομηνίες, που λειτουργούν ως το παράθυρο αναδρομής — το δεδομένα κωδικοποιητή στην ορολογία TFT.
  • Οι μελλοντικές ημερομηνίες μεγέθους max_prediction_length για το οποίο θέλουμε να υπολογίσουμε τις προβλέψεις μας — το δεδομένα αποκωδικοποιητή.

Μπορούμε να δημιουργήσουμε προβλέψεις και για τις 5 χρονοσειρές μας ή μόνο για μία. Εικόνα 7 δείχνει τις προβλέψεις εκτός δείγματος για τους καταναλωτές MT_002:

Εικόνα 7: Πρόβλεψη για την επόμενη ημέρα για MT_002

Η ακριβής πρόβλεψη είναι ένα πράγμα, αλλά η επεξήγηση έχει επίσης μεγάλη σημασία στις μέρες μας.

Και είναι ακόμα χειρότερο για τα μοντέλα Deep Learning, τα οποία θεωρούνται μαύρα κουτιά. Μέθοδοι όπως ΑΣΒΕΣΤΟΣ και ΣΧΗΜΑ μπορεί να παρέχει επεξήγηση (σε κάποιο βαθμό), αλλά δεν λειτουργεί καλά για χρονοσειρές. Επιπλέον, είναι εξωτερικές post-hoc μέθοδοι και δεν συνδέονται με ένα συγκεκριμένο μοντέλο.

Χρονικός μετασχηματιστής σύντηξης παρέχει τρεις τύπους ερμηνείας:

  • Εποχιακά: Το TFT αξιοποιεί το μυθιστόρημά του Ερμηνεύσιμη Multi-Head Attention μηχανισμός για τον υπολογισμό της σημασίας των βημάτων του παρελθόντος χρόνου.
  • Από πλευράς χαρακτηριστικών: Το TFT το αξιοποιεί Δίκτυο επιλογής μεταβλητής μονάδα για τον υπολογισμό της σημασίας κάθε χαρακτηριστικού.
  • Ακραία ευρωστία συμβάντων: Μπορούμε να διερευνήσουμε πώς συμπεριφέρονται οι χρονοσειρές κατά τη διάρκεια σπάνιων γεγονότων

Εάν θέλετε να μάθετε σε βάθος για την εσωτερική λειτουργία του Ερμηνεύσιμη Multi-Head Attention και Δίκτυο επιλογής μεταβλητής, ελέγξτε το προηγούμενο άρθρο μου.

Ερμηνευτικότητα από άποψη εποχικότητας

Το TFT διερευνά τα βάρη προσοχής για να κατανοήσει τα χρονικά μοτίβα στα προηγούμενα χρονικά βήματα.

Οι γκρίζες γραμμές σε όλα τα προηγούμενα οικόπεδα αντιπροσωπεύουν τις βαθμολογίες προσοχής. Κοιτάξτε ξανά αυτές τις πλοκές — παρατηρείτε τίποτα; Εικόνα 8 δείχνει τα ευρήματα του Εικόνα 7 και επίσης λαμβάνει υπόψη τις βαθμολογίες προσοχής:

Εικόνα 8: Πρόβλεψη για την επόμενη ημέρα για MT_001 με εμφάνιση εποχικότητας

Οι βαθμολογίες προσοχής αποκαλύπτουν πόσο επηρεάζουν αυτά τα χρονικά βήματα όταν το μοντέλο εξάγει την πρόβλεψή του. Οι μικρές κορυφές αντικατοπτρίζουν την ημερήσια εποχικότητα, ενώ η υψηλότερη κορυφή προς το τέλος πιθανώς υποδηλώνει την εβδομαδιαία εποχικότητα.

Εάν βάλουμε τον μέσο όρο των καμπυλών προσοχής σε όλα τα χρονικά βήματα και τις χρονοσειρές (όχι μόνο τις 5 που χρησιμοποιήσαμε σε αυτό το σεμινάριο), θα λάβουμε το σχήμα που μοιάζει με συμμετρικό Εικόνα 9 από το χαρτί TFT:

Εικόνα 9: Δεδομένα χρονικών μοτίβων για ηλεκτρική ενέργεια (Πηγή)

Ερώτηση: Τι καλό είναι αυτό; Δεν μπορούμε απλά να υπολογίσουμε τα μοτίβα εποχικότητας με μεθόδους όπως διαγράμματα ACF, αποσύνθεση σήματος χρόνου κ.λπ.;

Απάντηση: Αληθής. Ωστόσο, η μελέτη των βαρών προσοχής του TFT έχει επιπλέον πλεονεκτήματα:

  1. Μπορούμε να επιβεβαιώσουμε ότι το μοντέλο μας αποτυπώνει τη φαινομενική εποχιακή δυναμική των ακολουθιών μας.
  2. Το μοντέλο μας μπορεί επίσης να αποκαλύψει κρυφά μοτίβα επειδή τα βάρη προσοχής των τρεχόντων παραθύρων εισόδου λαμβάνουν υπόψη όλες τις προηγούμενες εισόδους.
  3. Η γραφική παράσταση βαρών προσοχής δεν είναι η ίδια με μια γραφική παράσταση αυτοσυσχέτισης: Η γραφική παράσταση αυτοσυσχέτισης αναφέρεται σε μια συγκεκριμένη ακολουθία, ενώ τα βάρη προσοχής εδώ εστιάζουν στον αντίκτυπο κάθε χρονικού βήματος εξετάζοντας όλες τις συμμεταβλητές και τις χρονικές σειρές.

Ερμηνευσιμότητα από άποψη χαρακτηριστικών

Η Δίκτυο επιλογής μεταβλητής συστατικό του TFT μπορεί εύκολα να εκτιμήσει το σημασία χαρακτηριστικών:

Εικόνα 10: Χαρακτηρίζει τη σημασία των δεδομένων επικύρωσης

In Εικόνα 10, παρατηρούμε τα εξής:

  • Η hour και day_of_week έχουν ισχυρές βαθμολογίες, τόσο ως προηγούμενες παρατηρήσεις όσο και ως μελλοντικές συμμεταβλητές. Το σημείο αναφοράς στο αρχικό έγγραφο συμμερίζεται το ίδιο συμπέρασμα.
  • Η power_usage είναι προφανώς η πιο επιδραστική παρατηρούμενη συμμεταβλητή.
  • Η consumer_id δεν είναι πολύ σημαντικό εδώ επειδή χρησιμοποιούμε μόνο 5 καταναλωτές. Στο έγγραφο TFT, όπου οι συγγραφείς χρησιμοποιούν και τους 370 καταναλωτές, αυτή η μεταβλητή είναι πιο σημαντική.

Σημείωση: Εάν η στατική μεταβλητή ομαδοποίησης δεν είναι σημαντική, είναι πολύ πιθανό το σύνολο δεδομένων σας να μπορεί επίσης να μοντελοποιηθεί εξίσου καλά από ένα μοντέλο διανομής (όπως το ARIMA).

Ανίχνευση ακραίων συμβάντων

Οι χρονοσειρές είναι διαβόητες επειδή είναι ευαίσθητες σε ξαφνικές αλλαγές στις ιδιότητές τους κατά τη διάρκεια σπάνιων γεγονότων (αναφέρονται επίσης ως σοκ).

Ακόμη χειρότερα, αυτά τα γεγονότα είναι πολύ άπιαστα. Φανταστείτε εάν η μεταβλητή-στόχος σας γίνεται ασταθής για μια σύντομη περίοδο επειδή μια συμμεταβλητή αλλάζει σιωπηλά τη συμπεριφορά:

Είναι κάποιος τυχαίος θόρυβος ή ένα κρυφό επίμονο μοτίβο που ξεφεύγει από το μοντέλο μας;

Με το TFT, μπορούμε να αναλύσουμε την ευρωστία κάθε μεμονωμένου χαρακτηριστικού σε όλο το εύρος τιμών του. Δυστυχώς, το τρέχον σύνολο δεδομένων δεν παρουσιάζει αστάθεια ή σπάνια συμβάντα — αυτά είναι πιο πιθανό να βρεθούν σε οικονομικά στοιχεία, δεδομένα πωλήσεων και ούτω καθεξής. Ωστόσο, θα δείξουμε πώς να τα υπολογίσουμε:

Ορισμένα χαρακτηριστικά δεν έχουν όλες τις τιμές τους στο σύνολο δεδομένων επικύρωσης, επομένως δείχνουμε μόνο το hour και consumer_id:

Εικόνα 11: Προβλέψεις έναντι πραγματικών (κανονικοποιημένα μέσα) σε ώρα
Εικόνα 12: Προβλέψεις έναντι πραγματικών (κανονικοποιημένων μέσων) στο customer_id

Και στα δύο σχήματα, τα αποτελέσματα είναι ενθαρρυντικά. Σε Εικόνα 12, παρατηρούμε ότι ο καταναλωτής MT_004 έχει ελαφρώς χαμηλότερη απόδοση σε σύγκριση με άλλους καταναλωτές. Θα μπορούσαμε να το επαληθεύσουμε εάν κανονικοποιήσουμε την απώλεια P50 κάθε καταναλωτή με τη μέση κατανάλωση ενέργειας που υπολογίσαμε προηγουμένως.

Οι γκρι γραμμές υποδηλώνουν την κατανομή κάθε μεταβλητής. Ένα πράγμα που κάνω πάντα είναι να βρίσκω ποιες τιμές έχουν χαμηλή συχνότητα. Στη συνέχεια, ελέγχω την απόδοση του μοντέλου σε αυτές τις περιοχές. Ως εκ τούτου, μπορείτε εύκολα να εντοπίσετε εάν το μοντέλο σας καταγράφει τη συμπεριφορά σπάνιων γεγονότων.

Γενικά, μπορείτε να χρησιμοποιήσετε αυτήν τη δυνατότητα TFT για να ελέγξετε το μοντέλο σας για αδυναμίες και να προχωρήσετε σε περαιτέρω διερεύνηση.

Μπορούμε να χρησιμοποιήσουμε απρόσκοπτα Χρονικός μετασχηματιστής σύντηξης με Οπτούνα για να εκτελέσετε συντονισμό υπερπαραμέτρων:

Το πρόβλημα είναι ότι εφόσον το TFT είναι ένα μοντέλο που βασίζεται σε Transformer, θα χρειαστείτε σημαντικούς πόρους υλικού!

Χρονικός μετασχηματιστής σύντηξης είναι αναμφίβολα ένα ορόσημο για την κοινότητα Time-Series.

Όχι μόνο το μοντέλο επιτυγχάνει αποτελέσματα SOTA, αλλά παρέχει επίσης ένα πλαίσιο για την ερμηνευσιμότητα των προβλέψεων. Το μοντέλο είναι επίσης διαθέσιμο στο Βέλη βιβλιοθήκη python, η οποία βασίζεται στη βιβλιοθήκη PyTorch Forecasting.

Τέλος, αν είστε περίεργοι να μάθετε για την αρχιτεκτονική του Χρονικός μετασχηματιστής σύντηξης αναλυτικά, ελέγξτε το συνοδευτικό άρθρο στο πρωτότυπο χαρτί.

Temporal Fusion Transformer: Time Series Forecasting with Deep Learning — Πλήρης Εκμάθηση Αναδημοσίευση από την πηγή https://towardsdatascience.com/temporal-fusion-transformer-time-series-forecasting-with-deep-learning-complete-tutorial-d32c1e51cd91? rss—-7f60cf5620c9—4 μέσω https://towardsdatascience.com/feed

Si al principi no tens èxit, aleshores el paracaigudisme no és per a tu.

->

Σφραγίδα ώρας:

Περισσότερα από Σύμβουλοι Blockchain