Βασικές αρχές της AI

Τι είναι η Οπισθοδιάδοση;

mm
Προσθέστε το Unite.AI στις προτιμώμενες πηγές σας στο Google

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

Η οπισθοδιάδοση υπολογίζει τις κλίσεις· δεν αποφασίζει από μόνη της την ενημέρωση. Ένας βελτιστοποιητής όπως η στοχαστική καθοδική κλίση (stochastic gradient descent) ή το AdamW χρησιμοποιεί αυτές τις κλίσεις για να αλλάξει τα βάρη, τις προκαταλήψεις και άλλες εκπαιδεύσιμες παραμέτρους.

Κύρια σημεία

  • Η προώθηση προς τα εμπρός δημιουργεί ενδιάμεσες τιμές και παράγει μια πρόβλεψη.
  • Η συνάρτηση απώλειας μετατρέπει την πρόβλεψη και τον στόχο σε έναν μοναδικό (scalar) στόχο εκπαίδευσης.
  • Η οπισθοδιάδοση χρησιμοποιεί τοπικές παραγώγους και τον κανόνα αλυσίδας για να υπολογίσει τις κλίσεις των παραμέτρων αποδοτικά.
  • Τα σύγχρονα πλαίσια υλοποιούν την αυτόματη διαφοροποίηση σε αντίστροφη λειτουργία (reverse-mode) πάνω σε ένα υπολογιστικό γράφημα.
Computational graph showing a forward pass from inputs and trainable weights to loss, followed by backward gradient arrows using the chain rule
Η οπισθοδιάδοση επαναχρησιμοποιεί τις τοπικές παραγώγους για να μεταφέρει πληροφορίες από την απώλεια πίσω σε κάθε συνεισφέρουσα παράμετρο.

Η προώθηση προς τα εμπρός

Ας εξετάσουμε μια απλή μονάδα:

z = wx + b
ŷ = activation(z)

Η είσοδος είναι x, ενώ τα w και b είναι εκπαιδεύσιμες παραμέτρους βάρους και προκατάληψης. Οι προκαταλήψεις συνήθως αλλάζουν κατά τη διάρκεια της εκπαίδευσης όπως και τα βάρη. Ένα δίκτυο συνδυάζει πολλές τέτοιες λειτουργίες, καθώς και κανονικοποίηση, προσοχή (attention), συνελίξεις, υπολειμματικές συνδέσεις ή άλλα διαφορίσιμα μπλοκ.

Η προώθηση προς τα εμπρός αξιολογεί αυτές τις λειτουργίες και παράγει μια πρόβλεψη. Μια απώλεια όπως η διασταυρούμενη εντροπία (cross-entropy) ή το μέσο τετραγωνικό σφάλμα (mean squared error) μετράει τον στόχο. Η κατάλληλη απώλεια εξαρτάται από το έργο και την ερμηνεία των εξόδων.

Ο κανόνας αλυσίδας

Αν η απώλεια L εξαρτάται από μια ενδιάμεση τιμή z, και το z εξαρτάται από την παράμετρο w, ο κανόνας αλυσίδας δίνει:

∂L/∂w = (∂L/∂z) × (∂z/∂w)

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

Ένα μικρό αριθμητικό παράδειγμα

Έστω ŷ = wx + b, με x = 2, w = 3 και b = 1. Η πρόβλεψη είναι 7. Αν ο στόχος είναι 5 και η απώλεια είναι L = ½(ŷ - y)², τότε:

  • ∂L/∂ŷ = ŷ - y = 2
  • ∂ŷ/∂w = x = 2
  • ∂L/∂w = 2 × 2 = 4
  • ∂L/∂b = 2 × 1 = 2

Ο βελτιστοποιητής μπορεί τότε να μετακινήσει το w και το b προς την κατεύθυνση του αρνητικού βαθμού. Αυτός ο τύπος είναι συγκεκριμένος για τη δοσμένη γραμμική μονάδα και την απώλεια τετραγωνικού σφάλματος· ένας καθολικός κανόνας οπισθοδιάδοσης είναι ο κανόνας αλυσίδας πάνω στο πραγματικό γράφημα, όχι μια σταθερή «εξίσωση σφάλματος».

Οπισθοδιάδοση έναντι καθοδικής κλίσης

Καθοδική κλίση είναι μια μέθοδος βελτιστοποίησης. Η οπισθοδιάδοση παρέχει τις κλίσεις που χρειάζεται. Ένα βήμα εκπαίδευσης συνήθως ακολουθεί:

  1. Καθαρίστε ή επαναφέρετε τις αποθηκευμένες κλίσεις.
  2. Εκτελέστε την προώθηση προς τα εμπρός.
  3. Υπολογίστε την απώλεια.
  4. Εκτελέστε την προώθηση προς τα πίσω.
  5. Εφαρμόστε την ενημέρωση του βελτιστοποιητή.

Ο διαχωρισμός αυτών των εννοιών διευκολύνει την κατανόηση του momentum, του AdamW, της συσσώρευσης κλίσεων και της εκπαίδευσης μικτής ακρίβειας.

Αυτόματη διαφοροποίηση

Πλαίσια όπως το PyTorch καταγράφουν τις λειτουργίες και δημιουργούν ένα γράφημα κατά τη διάρκεια της προώθησης προς τα εμπρός. Η αυτόματη διαφοροποίηση σε αντίστροφη λειτουργία (reverse-mode) υπολογίζει στη συνέχεια προϊόντα διανύσματος-Jacobian αποδοτικά από τις εξόδους προς τις παραμέτρους. Αυτό είναι πιο γενικό από το χειροκίνητο προγραμματισμό παραγώγων για ένα σταθερό δίκτυο και αποτελεί τη βάση των σύγχρονων deep learning πλαισίων.

Ορισμένες λειτουργίες είναι μη διαφορίσιμες ή έχουν ασταθείς παραγώγους. Τα πλαίσια ορίζουν υποπαραγώγους ή τεκμηριωμένες συμβάσεις σε ορισμένες περιπτώσεις, αλλά οι χρήστες πρέπει ακόμη να κατανοούν τα αποσπασμένα tensors, τις εντός-θέσης (in-place) λειτουργίες και την αριθμητική ακρίβεια.

Εξαφάνιση και εκρηκτικές κλίσεις

Η επαναλαμβανόμενη πολλαπλασιαστική διαδικασία μέσω πολλών στρωμάτων ή χρονικών βημάτων μπορεί να κάνει τις κλίσεις εξαιρετικά μικρές ή μεγάλες. Οι εξαφανιζόμενες κλίσεις επιβραδύνουν τη μάθηση στα αρχικά στρώματα· οι εκρηκτικές κλίσεις αποσταθεροποιούν τις ενημερώσεις. Οι ενεργοποιήσεις της οικογένειας ReLU, η προσεκτική αρχικοποίηση, οι υπολειμματικές συνδέσεις, η κανονικοποίηση, η πύλη επανάληψης (gated recurrence) και η περικοπή κλίσεων (gradient clipping) βοηθούν, αλλά καμία δεν αποτελεί καθολική λύση.

Έλεγχος κλίσεων

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

Ο κανόνας αλυσίδας μέσω ενός υπολογιστικού γράφματος

Η οπισθοδιάδοση υπολογίζει αποδοτικά τις κλίσεις μιας βαθμωτής απώλειας σε σχέση με κάθε διαφορίσιμο παράμετρο. Η προώθηση προς τα εμπρός καταγράφει ενδιάμεσες τιμές σε ένα υπολογιστικό γράφημα. Ξεκινώντας από την απώλεια, η αυτόματη διαφοροποίηση σε αντίστροφη λειτουργία εφαρμόζει τον κανόνα αλυσίδας, πολλαπλασιάζοντας τις τοπικές παραγώγους και συσσωρεύοντας συνεισφορές όπου συναντώνται οι διαδρομές. Για ένα στρώμα y=f(x,w), η ευαισθησία προς το y από πάνω συνδυάζεται με τις μερικές παραγώγους για να παραγάγει ευαισθησίες για το x και το w. Η οπισθοδιάδοση υπολογίζει τις κλίσεις· ο βελτιστοποιητής αποφασίζει πώς θα αλλάξουν οι παράμετροι.

Ένα απλό γραμμικό (affine) στρώμα παράγει y=Wx+b. Η κλίση για το W είναι το εξωτερικό γινόμενο της κλίσης από πάνω και της εισόδου, η κλίση για το b αθροίζει τις τιμές από πάνω, και η κλίση της εισόδου πολλαπλασιάζεται με το μετασχηματισμένο (transposed) βάρος. Οι ενεργοποιήσεις προσθέτουν παραγώγους στοιχειωδώς. Η συνέλιξη (convolution), η κανονικοποίηση, η προσοχή και η επαναχρησιμοποίηση σε επαναλαμβανόμενα δίκτυα ακολουθούν την ίδια αρχή του γραφήματος, αλλά απαιτούν σωστές μορφές tensors, broadcasting, masking και κοινή χρήση παραμέτρων. Τα πλαίσια ελευθερώνουν τις αποθηκευμένες ενεργοποιήσεις μετά το backward, εκτός αν διατηρηθούν, έτσι η μνήμη συχνά αυξάνεται με το μέγεθος παρτίδας, το βάθος και το μήκος της ακολουθίας.

Αποτυχίες κλίσεων, επαλήθευση και πρακτική μηχανικής

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

Επαληθεύστε προσαρμοσμένες λειτουργίες με ελέγχους κλίσεων πεπερασμένων διαφορών σε μικρές εισόδους διπλής ακρίβειας, αποφεύγοντας μη διαφορίσιμα σημεία. Εξετάστε τις νόρμες των κλίσεων, τα NaN, τις ανενεργές παραμέτρους και αν οι κλίσεις φθάνουν στα αναμενόμενα modules. Καθαρίστε σκόπιμα τις συσσωρευμένες κλίσεις και διακρίνετε τη συμπεριφορά εκπαίδευσης από την αξιολόγηση για dropout και κανονικοποίηση. Η δημιουργία σημείων ελέγχου (checkpointing) επανυπολογίζει τις ενεργοποιήσεις για εξοικονόμηση μνήμης· η κατανεμημένη εκπαίδευση πρέπει να συγκεντρώνει τις κλίσεις με συνέπεια. Μια μειούμενη απώλεια εκπαίδευσης δείχνει ότι υπάρχει διαδρομή βελτιστοποίησης, όχι ότι οι κλίσεις είναι εννοιολογικά σωστές, τα δεδομένα είναι χωρίς διαρροή ή το μοντέλο γενικεύει.

Παραδειγματική εφαρμογή: επαλήθευση προσαρμοσμένου νευρωνικού στρώματος

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

Κατά τη διάρκεια της εκπαίδευσης, τα ταμπλό παρακολουθούν τις νόρμες κλίσεων και ενεργοποιήσεων, τα NaN, τις ανενεργές παραμέτρους και την κλιμάκωση της απώλειας. Μια σκόπιμα κατεστραμμένη παρτίδα επιβεβαιώνει ότι η επικύρωση εντοπίζει μη πεπερασμένη έξοδο πριν από την ενημέρωση του βελτιστοποιητή. Η μικτή ακρίβεια και οι εξαγόμενες υλοποιήσεις συγκρίνονται με το πρότυπο. Τα τεστ συνέχισης σημείου ελέγχου (checkpoint resume) περιλαμβάνουν την κατάσταση του βελτιστοποιητή και τυχαία σειρά. Το στρώμα δεν γίνεται αποδεκτό μόνο επειδή η συνολική απώλεια μειώνεται· οι κλίσεις μονάδας, η αριθμητική σταθερότητα και η γενίκευση στο επόμενο επίπεδο πρέπει όλα να παρέχουν συνεπείς αποδείξεις.

Απόδειξη υλοποίησης και ετοιμότητα λειτουργίας

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

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

Συχνές ερωτήσεις

Η οπισθοδιάδοση ενημερώνει τα βάρη;

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

Η οπισθοδιάδοση είναι βιολογικά ρεαλιστική;

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

Κύριες αναφορές

Blogger και προγραμματιστής με ειδικότητες στα Machine Learning και Deep Learning θέματα. Ο Daniel ελπίζει να βοηθήσει τους άλλους να χρησιμοποιήσουν τη δύναμη του AI για κοινωνικό καλό.