Ένα RNN, ή αναδρομικό νευρωνικό δίκτυο, είναι ένα νευρωνικό δίκτυο φτιαγμένο για ακολουθίες όπως κείμενο, ομιλία ή χρονοσειρές. Σε κάθε βήμα, συνδυάζει την τρέχουσα είσοδο με μια κρυφή κατάσταση από το προηγούμενο βήμα, ώστε η έξοδος να μπορεί να εξαρτάται από ό,τι προηγήθηκε.
Αυτή είναι η βασική ιδέα: ένα RNN έχει μια μνήμη που ενημερώνεται συνεχώς. Ένα LSTM είναι ένα είδος RNN με πύλες, που διαχειρίζεται αυτή τη μνήμη πιο προσεκτικά όταν σημαντικές πληροφορίες πρέπει να διατηρηθούν για πολλά βήματα.
Τι κάνει ένα RNN σε κάθε χρονικό βήμα
Στο χρονικό βήμα , ένα απλό RNN ενημερώνει την κρυφή του κατάσταση με έναν κανόνα όπως
Εδώ το είναι η τρέχουσα είσοδος, το είναι η προηγούμενη κρυφή κατάσταση και το είναι η νέα κρυφή κατάσταση. Οι πίνακες και και η μεροληψία μαθαίνονται κατά την εκπαίδευση.
Αν το μοντέλο παράγει επίσης μια έξοδο σε κάθε βήμα, μια συνηθισμένη μορφή είναι
Ο ακριβής κανόνας εξόδου εξαρτάται από την εργασία. Μερικά προβλήματα χρειάζονται μία έξοδο ανά βήμα, ενώ άλλα χρησιμοποιούν μόνο την τελική κρυφή κατάσταση.
Γιατί έχει σημασία η κρυφή κατάσταση
Ένα feedforward δίκτυο βλέπει μία είσοδο και προχωρά παρακάτω. Ένα RNN επαναχρησιμοποιεί μέρος του προηγούμενου υπολογισμού του. Αυτή η επαναχρησιμοποίηση είναι που το κάνει χρήσιμο για κείμενο, ομιλία, χρονοσειρές και άλλα διατεταγμένα δεδομένα.
Μπορείς να σκεφτείς την κρυφή κατάσταση σαν ένα σύντομο σημείωμα που γράφει το μοντέλο στον εαυτό του μετά από κάθε βήμα. Το επόμενο βήμα διαβάζει αυτό το σημείωμα, το ενημερώνει και περνά την αναθεωρημένη εκδοχή του προς τα εμπρός.
Αν αλλάξεις τη σειρά των ίδιων εισόδων, οι κρυφές καταστάσεις συνήθως αλλάζουν επίσης. Η σειρά της ακολουθίας έχει σημασία.
Παράδειγμα RNN λυμένο βήμα προς βήμα
Τα πραγματικά RNN συνήθως χρησιμοποιούν διανύσματα και μη γραμμικές ενεργοποιήσεις. Για να μείνουν οι πράξεις ευανάγνωστες, χρησιμοποίησε μια απλή κατάσταση με έναν μόνο αριθμό:
Τώρα επεξεργάσου την ακολουθία , , .
Πρώτο βήμα:
Δεύτερο βήμα:
Τρίτο βήμα:
Αυτό που έχει σημασία εδώ δεν είναι ο ακριβής τύπος. Είναι η εξάρτηση από την προηγούμενη κατάσταση. Στο βήμα 2, η ενημέρωση δεν χρησιμοποιεί μόνο το · χρησιμοποιεί επίσης ό,τι μεταφέρθηκε από το βήμα 1. Αυτή είναι η κεντρική ιδέα των RNN.
Αν αλλάξεις τη σειρά και χρησιμοποιήσεις , , , τότε
Η τελική κατάσταση είναι διαφορετική, παρόλο που εμφανίστηκαν οι ίδιοι αριθμοί. Αυτός είναι ακριβώς ο λόγος που τα RNN είναι μοντέλα ακολουθιών και όχι μοντέλα που βλέπουν απλώς ένα σύνολο εισόδων χωρίς σειρά.
Γιατί τα βασικά RNN δυσκολεύονται σε μεγάλες ακολουθίες
Σε ένα βασικό RNN, η παλιά πληροφορία πρέπει να επιβιώσει μέσα από πολλές επαναλαμβανόμενες ενημερώσεις. Αν η ακολουθία είναι μεγάλη, αυτό μπορεί να είναι δύσκολο. Χρήσιμα σήματα μπορεί να εξασθενήσουν, και κατά την εκπαίδευση οι κλίσεις μπορεί επίσης να μικρύνουν υπερβολικά ή να εκραγούν σε πολλά βήματα.
Γι’ αυτό τα απλά RNN συχνά δυσκολεύονται όταν η εργασία εξαρτάται από πληροφορία που βρίσκεται πολύ πίσω στην ακολουθία. Το πρόβλημα δεν είναι ότι η αναδρομή είναι λάθος. Το πρόβλημα είναι ότι η μνήμη μεγάλης εμβέλειας είναι δύσκολο να διατηρηθεί με μια απλή ενημέρωση κρυφής κατάστασης.
Πώς το LSTM βελτιώνει τη μνήμη των RNN
Ένα LSTM, από το long short-term memory, είναι ένα RNN με πύλες. Εισάγει μια πιο δομημένη διαδρομή μνήμης, που συνήθως λέγεται κατάσταση κυψέλης, μαζί με πύλες που ελέγχουν ποια πληροφορία ξεχνιέται, ποια νέα πληροφορία γράφεται και ποιο μέρος εκτίθεται ως έξοδος.
Δεν χρειάζεσαι τις πλήρεις εξισώσεις των πυλών για να καταλάβεις την ουσία. Ο σχεδιασμός δίνει στο μοντέλο περισσότερο έλεγχο πάνω στη μνήμη. Αν μια λεπτομέρεια πρέπει να επιβιώσει για πολλά βήματα, ένα LSTM είναι καλύτερα εξοπλισμένο να τη διατηρήσει από ένα απλό RNN.
Αυτό δεν σημαίνει ότι ένα LSTM θυμάται τα πάντα για πάντα. Σημαίνει ότι η αρχιτεκτονική του είναι καλύτερη στο να μαθαίνει πότε να διατηρεί πληροφορία και πότε να την απορρίπτει.
RNN vs. LSTM με απλά λόγια
Ένα βασικό RNN έχει μία κατάσταση που ενημερώνεται συνεχώς και την ανανεώνει επανειλημμένα. Ένα LSTM προσθέτει έναν ισχυρότερο μηχανισμό μνήμης γύρω από αυτή την ιδέα.
Αν η ακολουθία είναι μικρή και η εξάρτηση είναι τοπική, ένα απλό RNN μπορεί να αρκεί. Αν η εργασία εξαρτάται από πληροφορία από πολύ νωρίτερα στην ακολουθία, ένα LSTM είναι συχνά η πιο ασφαλής επιλογή.
Συνηθισμένα λάθη για τα RNN και τα LSTM
Να νομίζεις ότι ένα RNN βλέπει όλη την ακολουθία ταυτόχρονα
Συνήθως όχι. Η τυπική εικόνα είναι επεξεργασία βήμα προς βήμα, με την κατάσταση να μεταφέρεται προς τα εμπρός.
Να υποθέτεις ότι το LSTM λύνει τέλεια το πρόβλημα της μνήμης
Βοηθά στις εξαρτήσεις μεγάλης εμβέλειας, αλλά παραμένει ένα εκπαιδευόμενο μοντέλο με πεπερασμένη χωρητικότητα και πρακτικά όρια.
Να αγνοείς τη σειρά της ακολουθίας
Τα RNN είναι φτιαγμένα για διατεταγμένα δεδομένα. Αν ανακατέψεις τα στοιχεία της ακολουθίας, αλλάζει ο υπολογισμός.
Να αντιμετωπίζεις την κρυφή κατάσταση σαν μνήμη αναγνώσιμη από άνθρωπο
Η κρυφή κατάσταση είναι μια μαθημένη αριθμητική αναπαράσταση, όχι μια καθαρή περίληψη σαν πρόταση.
Πότε χρησιμοποιούνται τα RNN και τα LSTM
Χρησιμοποιούνται σε προβλήματα ακολουθιών όπως γλωσσική μοντελοποίηση, ομιλία, χειρόγραφο κείμενο, ροές αισθητήρων και πρόβλεψη χρονοσειρών. Σήμερα, πολλές γλωσσικές εργασίες χρησιμοποιούν αντί γι’ αυτά transformers, αλλά τα RNN και τα LSTM παραμένουν σημαντικά επειδή διδάσκουν καθαρά την έννοια της μνήμης σε ακολουθίες και μπορούν ακόμη να είναι χρήσιμα σε μικρότερα ή εξειδικευμένα περιβάλλοντα.
Δοκίμασε τη δική σου εκδοχή
Γράψε μια δική σου ακολουθία τεσσάρων βημάτων και εφάρμοσε τον απλό κανόνα . Έπειτα άλλαξε τη σειρά δύο εισόδων και σύγκρινε την τελική κατάσταση. Αυτό το μικρό πείραμα κάνει τον ρόλο της αναδρομής πολύ πιο ξεκάθαρο από το ίδιο το ακρωνύμιο.
Αν θέλεις να εξερευνήσεις άλλη μία περίπτωση, σύγκρινε αυτή τη σελίδα με μια εξήγηση για transformer ή αλυσίδα Markov και πρόσεξε τι κάνει κάθε μοντέλο με την πληροφορία του παρελθόντος.
Χρειάζεσαι βοήθεια με μια άσκηση;
Ανέβασε την ερώτησή σου και πάρε επαληθευμένη λύση βήμα-βήμα σε δευτερόλεπτα.
Άνοιξε το GPAI Solver →