Table of Contents
Η αντιστροφή είναι ένας θεμελιώδης αλγόριθμος που χρησιμοποιείται για την εκπαίδευση των βαθέων νευρωνικών δικτύων. Επιτρέπει στο δίκτυο να μαθαίνει προσαρμόζοντας τα βάρη με βάση το σφάλμα μεταξύ των προβλεπόμενων και των πραγματικών αποτελεσμάτων. Η κατανόηση της θεωρίας και της εφαρμογής του είναι απαραίτητη για την ανάπτυξη αποτελεσματικών μοντέλων μάθησης μηχανών.
Θεωρία της αντιπαραγώγησης
Η αντιπαραγωγή περιλαμβάνει τον υπολογισμό της κλίσης της λειτουργίας απώλειας σε σχέση με κάθε βάρος στο δίκτυο. Αυτή η διαδικασία χρησιμοποιεί τον κανόνα της αλυσίδας του λογισμού για να πολλαπλασιάσει τα λάθη προς τα πίσω από το στρώμα εξόδου στο στρώμα εισόδου. Οι κλίσεις χρησιμοποιούνται στη συνέχεια για την ενημέρωση των βαρών για την ελαχιστοποίηση της απώλειας.
Βήματα στην αντιπαραγωγή
- Forward pass: Υπολογίστε την έξοδο του δικτύου για μια δεδομένη είσοδο.
- Αθροιστική ζημία: Μετρήστε τη διαφορά μεταξύ των προβλεπόμενων και των πραγματικών τιμών.
- Πίσω πέρασμα: Προωθήστε το σφάλμα προς τα πίσω για να υπολογίσετε τις κλίσεις.
- Ενημέρωση βαρών: Ρυθμίστε τα βάρη χρησιμοποιώντας τις κλίσεις και ένα ποσοστό μάθησης.
Εφαρμογή της αντιπαραγωγής σε κωδικό
Η εφαρμογή της αντιδιαδικασίας απαιτεί τον καθορισμό των λειτουργιών για την προωθημένη διάδοση, τον υπολογισμό απώλειας, και τον υπολογισμό βαθμίδων. Τυπικά, πλαίσια όπως TensorFlow ή PyTorch αυτοματοποιούν μεγάλο μέρος αυτής της διαδικασίας, αλλά η κατανόηση του υποκείμενου κώδικα βοηθά στην προσαρμογή των ⁇ τίνες κατάρτισης.
Κωδικός δείγματος
Παρακάτω είναι ένα απλοποιημένο παράδειγμα της backpropagation σε Python για ένα νευρικό δίκτυο ενός στρώματος:
Σημείωση: Το παράδειγμα αυτό αφορά εκπαιδευτικούς σκοπούς και παραλείπει πολλές πρακτικές εκτιμήσεις.
[LFT:1] [[LFT:2] # Αρχικό βάρος και δεδομένα[[LFT:3]] w = np.random.randn(2, 1)[LFT:4] X = np.array([0.5, -0.0], [0.0]] = 1 / 1 / (1.α) = np.array[[1], [0]] # Forward pass
z = np.dot(X, w]
] = 1 / (1.[α] = [LFT:1] # Forward pass[[FT:10]