Στοχαστική κλίση κάθοδος. Επιλογές υλοποίησης. Η στοχαστική κλίση κάθοδος εξομαλύνεται πολύ ομαλά

SVM

Υποστήριξη διανυσματική μηχανή(eng. SVM, support vector machine) -- ένα σύνολο παρόμοιων εποπτευόμενων αλγορίθμων εκμάθησης που χρησιμοποιούνται για προβλήματα ταξινόμησης και ανάλυση παλινδρόμησης. Ανήκει στην οικογένεια των γραμμικών ταξινομητών, μπορεί επίσης να θεωρηθεί ως ειδική περίπτωση τακτοποίησης Tikhonov. Η ειδική ιδιότητα της μηχανής του διανύσματος υποστήριξης είναι η συνεχής μείωση του εμπειρικού σφάλματος ταξινόμησης και η αύξηση του κενού, επομένως η μέθοδος είναι επίσης γνωστή ως μέθοδος ταξινομητή μέγιστου χάσματος.

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

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

Επίσημα, το πρόβλημα μπορεί να περιγραφεί ως εξής.

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

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

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

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

Αυτό μπορεί επίσης να γραφτεί ως:

Στην περίπτωση της γραμμικής διαχωρισιμότητας των κλάσεων, το πρόβλημα της κατασκευής ενός βέλτιστου διαχωριστικού υπερεπίπεδου περιορίζεται στην ελαχιστοποίηση υπό την προϋπόθεση (1). Αυτό είναι ένα πρόβλημα τετραγωνικής βελτιστοποίησης που μοιάζει με:

Με το θεώρημα Kuhn-Tucker, αυτό το πρόβλημα είναι ισοδύναμο με διπλό πρόβλημαΑναζήτηση σημείο σέλαςΛειτουργίες Lagrange.


Πού είναι το διάνυσμα των διπλών μεταβλητών

Μειώνουμε αυτό το πρόβλημα σε ένα ισοδύναμο πρόβλημα τετραγωνικού προγραμματισμού που περιέχει μόνο διπλές μεταβλητές:


Ας πούμε ότι αποφασίζουμε αυτή η εργασία, τότε μπορεί να βρεθεί με τους τύπους:

Ως αποτέλεσμα, ο αλγόριθμος ταξινόμησης μπορεί να γραφτεί ως εξής:

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

Στην περίπτωση του γραμμικού αδιαχώριστου κλάσεων, για να λειτουργήσει ο αλγόριθμος, ας του επιτρέψουμε να κάνει λάθη στο σετ εκπαίδευσης. Ας εισαγάγουμε ένα σύνολο πρόσθετων μεταβλητών που χαρακτηρίζουν το μέγεθος του σφάλματος στα αντικείμενα. Λαμβάνουμε το (2) ως σημείο εκκίνησης, αμβλύνουμε τους περιορισμούς ανισότητας και εισάγουμε επίσης μια ποινή για το συνολικό σφάλμα στην ελαχιστοποιημένη συνάρτηση:

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

Ομοίως, σύμφωνα με το θεώρημα Kuhn-Tucker, μειώνουμε το πρόβλημα στην εύρεση του σημείου σέλας της συνάρτησης Lagrange:


Κατ' αναλογία, μειώνουμε αυτό το πρόβλημα σε ένα ισοδύναμο:


Στην πράξη, για την κατασκευή μιας μηχανής διανυσμάτων υποστήριξης, είναι αυτό το πρόβλημα που λύνεται και όχι το (3), αφού γενικά δεν είναι δυνατό να εξασφαλιστεί η γραμμική δυνατότητα διαχωρισμού των σημείων σε δύο κατηγορίες. Αυτή η παραλλαγή του αλγορίθμου ονομάζεται αλγόριθμος SVM soft-margin, ενώ στη γραμμικά διαχωρίσιμη περίπτωση μιλάμε για σκληρό περιθώριο (hard-margin SVM).

Για τον αλγόριθμο ταξινόμησης, ο τύπος (4) διατηρείται, με τη μόνη διαφορά ότι πλέον όχι μόνο τα αντικείμενα αναφοράς, αλλά και τα αντικείμενα που παραβιάζουν έχουν μη μηδενικές τιμές. Κατά μία έννοια, αυτό είναι ένα μειονέκτημα, καθώς οι αιχμές θορύβου είναι συχνά οι παραβάτες και ο κανόνας απόφασης που βασίζεται σε αυτές, στην πραγματικότητα, βασίζεται στον θόρυβο.

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

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

Ένας αλγόριθμος για την κατασκευή ενός βέλτιστου διαχωριστικού υπερεπίπεδου, που προτάθηκε το 1963 από τους Vladimir Vapnik και Alexei Chervonenkis, είναι ένας αλγόριθμος γραμμικής ταξινόμησης. Ωστόσο, το 1992, οι Bernhard Boser, Isabelle Guyon και Vapnik πρότειναν μια μέθοδο για τη δημιουργία ενός μη γραμμικού ταξινομητή που βασίζεται στη μετάβαση από βαθμωτά προϊόντα σε αυθαίρετους πυρήνες, το λεγόμενο kernel trick (προτάθηκε για πρώτη φορά από τους MA Aizerman, EM Bravermann και L. V. Rozonoer για τη μέθοδο των συναρτήσεων δυναμικού), η οποία επιτρέπει την κατασκευή μη γραμμικών διαχωριστών. Ο αλγόριθμος που προκύπτει είναι πολύ παρόμοιος με τον αλγόριθμο γραμμικής ταξινόμησης, με τη μόνη διαφορά ότι κάθε κλιμακωτό γινόμενο στους παραπάνω τύπους αντικαθίσταται από μια μη γραμμική συνάρτηση πυρήνα (βαθμωτό γινόμενο σε χώρο υψηλότερης διάστασης). Ένα βέλτιστο διαχωριστικό υπερεπίπεδο μπορεί ήδη να υπάρχει σε αυτόν τον χώρο. Δεδομένου ότι η διάσταση του προκύπτοντος χώρου μπορεί να είναι μεγαλύτερη από τη διάσταση του αρχικού, ο μετασχηματισμός που ταιριάζει με τα βαθμωτά γινόμενα θα είναι μη γραμμικός, πράγμα που σημαίνει ότι η συνάρτηση που αντιστοιχεί στο βέλτιστο διαχωριστικό υπερεπίπεδο στον αρχικό χώρο θα είναι επίσης μη γραμμικός.

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

Οι πιο συνηθισμένοι πυρήνες:

1. Γραμμικός πυρήνας:

2. Πολυώνυμο (ομογενές):

3. Λειτουργία RBF:

4. Σιγμοειδές:

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

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

Στοχαστική Κάθοδος Κλίσης

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

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

όπου παίζει το ρόλο της συνάρτησης ενεργοποίησης (στην απλούστερη περίπτωση, μπορεί να ρυθμιστεί).

Σύμφωνα με την αρχή της εμπειρικής ελαχιστοποίησης του κινδύνου, αρκεί να λυθεί το πρόβλημα βελτιστοποίησης:

Πού είναι η δεδομένη συνάρτηση απώλειας.

Για ελαχιστοποίηση, χρησιμοποιούμε τη μέθοδο gradient descent. Αυτός είναι ένας αλγόριθμος βήμα προς βήμα, σε κάθε επανάληψη του οποίου το διάνυσμα αλλάζει προς την κατεύθυνση της μεγαλύτερης μείωσης στη συνάρτηση (δηλαδή, προς την κατεύθυνση της αντιδιαβάθμισης):

Πού είναι μια θετική παράμετρος που ονομάζεται ρυθμός εκμάθησης.

Υπάρχουν 2 κύριες προσεγγίσεις για την εφαρμογή gradient descent:

1. Παρτίδα (παρτίδα), όταν σε κάθε επανάληψη το δείγμα εκπαίδευσης προβάλλεται ολόκληρο και μόνο μετά αλλάζει. Αυτό απαιτεί μεγάλο υπολογιστικό κόστος.

2. Στοχαστική (στοχαστική / διαδικτυακή), όταν σε κάθε επανάληψη του αλγορίθμου επιλέγεται μόνο ένα αντικείμενο από το δείγμα εκπαίδευσης με κάποιο (τυχαίο) τρόπο. Έτσι, το διάνυσμα προσαρμόζεται σε κάθε νέο επιλεγμένο αντικείμενο.

Μπορούμε να αναπαραστήσουμε τον αλγόριθμο καθόδου στοχαστικής κλίσης σε ψευδοκώδικα ως εξής:

- δείγμα εκπαίδευσης

- ρυθμός μάθησης

- παράμετρος λειτουργικής εξομάλυνσης

1. Διάνυσμα βάρους

1) Αρχικοποιήστε τα βάρη

2) Αρχικοποιήστε την τρέχουσα αξιολόγηση των λειτουργικών:

3) Επαναλάβετε:

1. Επιλέξτε ένα αντικείμενο τυχαία

2. Υπολογίστε την τιμή εξόδου του αλγορίθμου και το σφάλμα:

3. Κάντε ένα βήμα κατάβασης με κλίση

4. Υπολογίστε την τιμή της συνάρτησης:

4) Μέχρι να σταθεροποιηθεί η τιμή ή/και τα βάρη να σταματήσουν να αλλάζουν.

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

συμπεράσματα

Ως μέρος του προβλήματος που επιλύεται, θα χρειαστεί να χρησιμοποιήσουμε τον αλγόριθμο μετασχηματισμού δεδομένων πηγής TF-IDF, ο οποίος θα μας επιτρέψει να αυξήσουμε το βάρος των σπάνιων συμβάντων και να μειώσουμε το βάρος των συχνών συμβάντων. Θα μεταβιβάσουμε τα δεδομένα που λήφθηκαν μετά τον μετασχηματισμό σε ταξινομητές που είναι κατάλληλοι για την επίλυση του προβλήματος που αντιμετωπίζουμε, δηλαδή: Ταξινομητής Naive Bayes ή Υποστήριξη Διανυσματική Μηχανή με Γραμμικό Πυρήνα, εκπαιδευμένο με τη μέθοδο στοχαστικής κλίσης κατάβασης. Θα ελέγξουμε επίσης την αποτελεσματικότητα του Υποστήριξης Διανυσματικού Μηχανήματος με μη γραμμικούς πυρήνες που έχουν εκπαιδευτεί χρησιμοποιώντας τη μέθοδο batch gradient descent. Αλλά, δεδομένου τύπουο ταξινομητής δεν φαίνεται κατάλληλος για την εργασία λόγω του υπερβολικά πολύπλοκου πυρήνα και της τάσης για υπερπροσαρμογή, στον οποίο ο ταξινομητής δεν αντιμετωπίζει καλά δεδομένα που δεν χρησιμοποιήθηκαν για την εκπαίδευση του ταξινομητή.

δίνεται προεπεξεργασία μηχανής λογισμικού

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

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

  1. Batch Gradient Descent (γενική gradient descent)
  2. Στοχαστική κλίση κάθοδος (στοχαστική κλίση)
  3. Κανονικές εξισώσεις (κανονικές εξισώσεις)
  4. Μέθοδος του Νεύτωνα (μέθοδος του Νεύτωνα)

Σήμερα θα μιλήσουμε για δύο είδη κλίσης κατάβασης.

Κλίση κατάβασης

Τι είναι τελικά η gradient descent;

Φανταστείτε κάποια σύνθετη συνάρτηση μιας μεταβλητής. Έχει κάποια ψηλά και χαμηλά. Σε κάθε σημείο αυτής της συνάρτησης, μπορούμε να πάρουμε την παράγωγο:

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

Επιλέξτε οποιοδήποτε σημείο στη λειτουργία. Θέλετε να «κατεβείτε» στο πλησιέστερο χαμηλό σε εκείνο το σημείο. Εάν η παράγωγος στο σημείο σας είναι θετική (πράσινη γραμμή), αυτό σημαίνει ότι το ελάχιστο είναι "πίσω" σας και για να κατεβείτε σε αυτό, πρέπει να αφαιρέσετε από τη συντεταγμένη του σημείου σας Χτην αξία του παραγώγου σας.

Εάν στο σημείο σας η παράγωγος είναι αρνητική (κόκκινη γραμμή), αυτό σημαίνει ότι το ελάχιστο είναι «μπροστά σας» και για να φτάσετε σε αυτό, πρέπει, πάλι, να αφαιρέσετε από τη συντεταγμένη Χτην αξία του παραγώγου σας. Η τιμή του είναι αρνητική, και επομένως, αφαιρώντας μια αρνητική τιμή, θα αυξήσετε τη συντεταγμένη Χ.

Λοιπόν, έτσι ώστε η κάθοδος να μην είναι επώδυνα μεγάλη ή εσφαλμένα γρήγορη, πολλαπλασιάστε την τιμή της παραγώγου σας στο επιλεγμένο σημείο με κάποιον παράγοντα.

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

Μπορείτε να σκεφτείτε αυτή τη λειτουργία ως "κύπελλο" στον τρισδιάστατο χώρο:

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

Η συνάρτηση κόστους μας είναι:

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

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

Μετά από αυτό, ενημερώνουμε κάθε τιμή με τον τύπο:

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

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

Πριν από το πρώτο βήμα, προσδιορίζουμε τις παραμέτρους τυχαία και πώς ακριβώς τις προσδιορίζουμε εξαρτάται από το ελάχιστο που θα πέσουμε:


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

Όσο πιο κοντά πλησιάζετε στο ελάχιστο της συνάρτησης κόστους (όσο μικρότερη είναι η διαφορά μεταξύ της προβλεπόμενης τιμής και της πραγματικής), τόσο καλύτερα η ευθεία γραμμή σας περιγράφει τα ιστορικά δεδομένα σας:

Όταν δεν υπάρχουν πολλά ιστορικά παραδείγματα, όλα είναι καλά, αλλά όταν υπάρχουν εκατομμύρια, για κάθε μικρό βήμα προς το ελάχιστο, πρέπει να κάνουμε εκατομμύρια υπολογισμούς, και αυτό μπορεί να πάρει πολύ χρόνο.

Μια εναλλακτική λύση σε αυτό μπορεί να είναι η στοχαστική κλίση, μια μέθοδος στην οποία παίρνουμε ένα παράδειγμα και ενημερώνουμε τις τιμές, εστιάζοντας μόνο σε αυτό. Στη συνέχεια παίρνουμε το παρακάτω παράδειγμα και ενημερώνουμε τις παραμέτρους, εστιάζοντας ήδη σε αυτό. Και τα λοιπά. Αυτό οδηγεί στο γεγονός ότι δεν «κατεβαίνουμε» πάντα το λόφο, μερικές φορές κάνουμε ένα βήμα προς τα πάνω ή στο πλάι, αλλά αργά ή γρήγορα φτάνουμε σε αυτό το ελάχιστο και αρχίζουμε να κάνουμε κύκλους γύρω του. Όταν οι τιμές αρχίσουν να μας ταιριάζουν (φτάσουν την ακρίβεια που χρειαζόμαστε), σταματάμε την κάθοδο.

Στον ψευδοκώδικα, η στοχαστική κλίση κάθοδος μοιάζει με αυτό:

Έως ότου η αλλαγή της συνάρτησης κόστους είναι μικρή: (

Για j:= 1 έως m (

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

Η στοχαστική κλίση υπολογίζεται από τον τύπο:

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

Αν πάρουμε τα μοναδιαία διανύσματα ως τιμή, δηλαδή, αυτή η εκτίμηση για , όπως είναι εύκολο να φανεί από την (3.3.22), δίνει την ακριβή τιμή της διαβάθμισης.

Και οι δύο περιγραφείσες εκτιμήσεις κλίσης μπορούν να εφαρμοστούν αποτελεσματικά για οποιεσδήποτε τιμές, συμπεριλαμβανομένων και για τις οποίες τις διαφέρει σημαντικά από την ντετερμινιστική μέθοδο εκτίμησης (3.3.22), για την οποία αυστηρά Η ίδια περίσταση επιβεβαιώνει ότι οι ντετερμινιστικές μέθοδοι γενικεύονται με τυχαίες (βλ. τέλος του υποενότητα 3.3.1 ). Ας δώσουμε ένα άλλο παράδειγμα τέτοιας γενίκευσης.

Η αναζήτηση κλίσης (3.3.21) είναι μια ειδική περίπτωση τουλάχιστον δύο αλγορίθμων τυχαίας αναζήτησης. Πρώτος αλγόριθμος:

όπου εξακολουθεί να υπάρχει ένα ενιαίο τυχαίο διάνυσμα διαστάσεων. Αυτός είναι ο διάσημος αλγόριθμος τυχαίας αναζήτησης gradient. Ο δεύτερος αλγόριθμος έχει τη μορφή (3.3.23), αλλά η εκτίμηση της κλίσης υπολογίζεται από τον τύπο

Όπως είναι εύκολο να διαπιστωθεί, και οι δύο αλγόριθμοι εκφυλίζονται στον αλγόριθμο αναζήτησης κλίσης (3.3.21).

Έτσι, η τυχαία αναζήτηση είναι μια φυσική επέκταση, συνέχιση και γενίκευση γνωστών τακτικών μεθόδων αναζήτησης.

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

Έτσι, ο αλγόριθμος τυχαίας αναζήτησης με γραμμική τακτική (3.3.12) είναι ένα στοχαστικό μοντέλο του αλγόριθμου με την πιο απότομη κάθοδο:

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

ο τελεστής τυχαίου βήματος αντικαθιστά τον δυσκίνητο τελεστή εκτίμησης κλίσης, για παράδειγμα, σύμφωνα με τον τύπο (3.3.22).

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

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

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

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

Σε αυτήν την ανάρτηση, θα βρείτε μια εξήγηση της κλίσης κατάβασης με λίγο μαθηματικά. Περίληψη:

  • Η έννοια του GS είναι η εξήγηση ολόκληρου του αλγορίθμου.
  • Διάφορες παραλλαγές του αλγορίθμου.
  • Υλοποίηση κώδικα: σύνταξη κώδικα στη γλώσσα Phyton.

Τι είναι το Gradient Descent

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

Επομένως, απαιτείται κλίση κατάβασης για να ελαχιστοποιηθεί η συνάρτηση απώλειας.

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


Εύρεση του ελάχιστου συνάρτησης

Στο μέλλον, για να βρείτε το χαμηλότερο σφάλμα (βαθύτερη κοιλάδα) στη συνάρτηση απώλειας (σε σχέση με ένα βάρος), πρέπει να προσαρμόσετε τις παραμέτρους του μοντέλου. Πώς τα στήνουμε; Η μαθηματική ανάλυση θα βοηθήσει σε αυτό. Μέσω της ανάλυσης, γνωρίζουμε ότι η κλίση ενός γραφήματος συνάρτησης είναι η παράγωγος της συνάρτησης σε σχέση με τη μεταβλητή. Αυτή η κλίση δείχνει πάντα την πλησιέστερη κατάθλιψη!

Στο σχήμα, βλέπουμε μια γραφική παράσταση της συνάρτησης απώλειας (με το όνομα "Σφάλμα" με το σύμβολο "J") με ένα βάρος. Τώρα, αν υπολογίσουμε την κλίση (ας την ονομάσουμε dJ/dw) της συνάρτησης απώλειας ως προς ένα βάρος, παίρνουμε την κατεύθυνση προς την οποία πρέπει να κινηθούμε για να φτάσουμε στα τοπικά ελάχιστα. Ας προσποιηθούμε προς το παρόν ότι το μοντέλο μας έχει μόνο ένα βάρος.

Λειτουργία απώλειας

Σπουδαίος:Καθώς παρακολουθούμε όλα τα δεδομένα προπόνησης, συνεχίζουμε να προσθέτουμε τιμές dJ/dw για κάθε βάρος. Δεδομένου ότι η απώλεια εξαρτάται από το παράδειγμα εκπαίδευσης, το dJ/dw αλλάζει επίσης. Στη συνέχεια διαιρούμε τις συλλεγόμενες τιμές με τον αριθμό των παραδειγμάτων εκπαίδευσης για να λάβουμε έναν μέσο όρο. Στη συνέχεια χρησιμοποιούμε αυτόν τον μέσο όρο (κάθε βάρους) για να προσαρμόσουμε κάθε βάρος.

Σημειώστε επίσης:Η συνάρτηση απώλειας έχει σχεδιαστεί για να παρακολουθεί το σφάλμα με κάθε παράδειγμα προπόνησης, ενώ η παράγωγος της συνάρτησης σχετικού μεμονωμένου βάρους είναι το σημείο που πρέπει να μετατοπιστεί το βάρος για να ελαχιστοποιηθεί για αυτό το παράδειγμα προπόνησης. Μπορείτε να δημιουργήσετε μοντέλα ακόμη και χωρίς να εφαρμόσετε τη συνάρτηση απώλειας. Αλλά θα πρέπει να χρησιμοποιήσετε την παράγωγο σε σχέση με κάθε βάρος (dJ/dw).

Τώρα που έχουμε καθορίσει την κατεύθυνση προς την οποία θα ωθήσουμε το βάρος, πρέπει να καταλάβουμε πώς να το κάνουμε. Εδώ χρησιμοποιούμε τον συντελεστή ρυθμού εκμάθησης, που ονομάζεται υπερπαράμετρος. Μια υπερπαράμετρος είναι μια τιμή που απαιτείται από το μοντέλο σας για την οποία έχουμε πραγματικά μια πολύ ασαφή ιδέα. Συνήθως αυτές οι τιμές μπορούν να μαθευτούν με δοκιμή και σφάλμα. Όχι τόσο εδώ: το ένα ταιριάζει σε όλες τις υπερ-παραμέτρους. Ο παράγοντας ρυθμού μάθησης μπορεί να θεωρηθεί ως ένα «βήμα προς τη σωστή κατεύθυνση», όπου η κατεύθυνση προέρχεται από dJ/dw.

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

Περισσότερα για τις κλίσεις

Εκτός από τη συνάρτηση απώλειας, η κλίση κατάβασης απαιτεί επίσης μια κλίση που είναι dJ/dw (η παράγωγος της συνάρτησης απώλειας σε σχέση με ένα βάρος, που εκτελείται για όλα τα βάρη). Το dJ/dw εξαρτάται από την επιλογή της συνάρτησης απώλειας. Η πιο κοινή συνάρτηση απώλειας είναι το ριζικό μέσο τετραγωνικό σφάλμα.

Η παράγωγος αυτής της συνάρτησης σε σχέση με οποιοδήποτε βάρος (αυτός ο τύπος δείχνει τον υπολογισμό της διαβάθμισης για ):

Αυτά είναι όλα τα μαθηματικά στο ΓΣ. Βλέποντας αυτό, μπορούμε να πούμε ότι στην πραγματικότητα, το ΓΣ δεν περιέχει πολλά μαθηματικά. Τα μόνα μαθηματικά που περιέχει είναι ο πολλαπλασιασμός και η διαίρεση, στα οποία θα φτάσουμε. Αυτό σημαίνει ότι η επιλογή της συνάρτησης θα επηρεάσει τον υπολογισμό της διαβάθμισης κάθε βάρους.

Συντελεστής Μαθησιακού Ρυθμού

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

Ωστόσο, το πρόβλημα για τα περισσότερα μοντέλα προκύπτει με τον συντελεστή ρυθμού μάθησης. Ας ρίξουμε μια ματιά στην ενημερωμένη έκφραση για κάθε βάρος (j κυμαίνεται από 0 έως τον αριθμό των βαρών και το Theta-j είναι j-ο βάροςστο διάνυσμα βάρους, το k κυμαίνεται από 0 έως τον αριθμό των μετατοπίσεων, όπου B-k είναι η kth μετατόπιση στο διάνυσμα μετατόπισης). Εδώ το άλφα είναι ο παράγοντας ρυθμός μάθησης. Από αυτό μπορούμε να πούμε ότι υπολογίζουμε το dJ/dTheta-j (κλίση βάρους Theta-j) και μετά βάζουμε το μέγεθος του άλφα προς αυτή την κατεύθυνση. Ως εκ τούτου, κατεβαίνουμε την κλίση. Για να ενημερώσετε το offset, αντικαταστήστε το Theta-j με το B-k.

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

Χρήση Gradient Descent

Λοιπόν, αυτό είναι. Αυτό είναι το μόνο που πρέπει να ξέρετε για την gradient descent. Ας συνοψίσουμε τα πάντα σε ψευδοκώδικα.

Σημείωση: Οι κλίμακες εδώ αντιπροσωπεύονται σε διανύσματα. Σε μεγαλύτερα μοντέλα, πιθανότατα θα είναι μήτρες.

Από i = 0 έως "αριθμός παραδειγμάτων εκπαίδευσης"

1. Υπολογίστε τη διαβάθμιση της συνάρτησης απώλειας για το i-ο παράδειγμα προπόνησης για κάθε βάρος και προκατάληψη. Τώρα έχετε ένα διάνυσμα που είναι γεμάτο διαβαθμίσεις για κάθε βάρος και μια μεταβλητή που περιέχει τη διαβάθμιση μετατόπισης.

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

3. Παρόμοια με την κατάσταση με τα βάρη, προσθέστε μια κλίση μεροληψίας στη συσσωρευτική μεταβλητή.

Τώρα, ΑΦΟΥ επαναλάβετε όλα τα παραδείγματα εκπαίδευσης, κάντε τα εξής:

1. Διαιρέστε τα συσσωρευμένα βάρη και τις προκαταλήψεις με τον αριθμό των παραδειγμάτων εκπαίδευσης. Αυτό θα μας δώσει τις μέσες κλίσεις για όλα τα βάρη και τη μέση κλίση για την προκατάληψη. Θα τις ονομάσουμε ενημερωμένες μπαταρίες (OA).

2. Στη συνέχεια, χρησιμοποιώντας τον παρακάτω τύπο, ενημερώστε όλα τα βάρη και τις προκαταλήψεις. Αντί για dJ / dTheta-j, θα αντικαταστήσετε το OA (ενημερωμένο συσσωρευτή) για τα βάρη και το OA για την προκατάληψη. Κάνετε το ίδιο για το offset.

Αυτή ήταν μόνο μια επανάληψη κλίσης κατάβασης.

Επαναλάβετε αυτή τη διαδικασία από την αρχή μέχρι το τέλος για πολλές επαναλήψεις. Αυτό σημαίνει ότι για την 1η επανάληψη του GS, επαναλαμβάνετε όλα τα παραδείγματα εκπαίδευσης, υπολογίζετε τις κλίσεις και μετά ενημερώνετε τα βάρη και τις προκαταλήψεις. Στη συνέχεια, το κάνετε αυτό για έναν αριθμό επαναλήψεων του GS.

Διαφορετικοί τύποι κλίσης κατάβασης

Υπάρχουν 3 επιλογές για κλίση κατάβασης:

1. μίνι-παρτίδα: Εδώ, αντί να επαναλαμβάνουμε όλα τα παραδείγματα εκπαίδευσης και με κάθε επανάληψη να εκτελούμε υπολογισμούς μόνο σε ένα παράδειγμα εκπαίδευσης, επεξεργαζόμαστε n παραδείγματα εκπαίδευσης ταυτόχρονα. Αυτή η επιλογή είναι καλή για πολύ μεγάλα σύνολα δεδομένων.

2.Στοχαστική Κάθοδος Κλίσης: Σε αυτήν την περίπτωση, αντί να χρησιμοποιούμε και να περιηγούμαστε σε κάθε παράδειγμα εκπαίδευσης, ΧΡΗΣΙΜΟΠΟΙΟΥΜΕ ΜΟΝΟ ΜΙΑ ΦΟΡΑ. Υπάρχουν μερικά πράγματα που πρέπει να σημειωθούν:

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

3. Σειρά GS: αυτό γράφτηκε στις προηγούμενες ενότητες. Κάντε βρόχο σε κάθε παράδειγμα εκπαίδευσης.


Εικόνα που συγκρίνει 3 επιτυχίες στα τοπικά ελάχιστα

Παράδειγμα κώδικα python

Ισχύει για τη σειρά GS, έτσι θα μοιάζει ένα μπλοκ κώδικα εκμάθησης Python.

Def train(X, y, W, B, alpha, max_iters): """ Εκτελεί GD σε όλα τα παραδείγματα προπόνησης, X: Σύνολο δεδομένων προπόνησης, y: Ετικέτες για δεδομένα εκπαίδευσης, W: διάνυσμα βαρών, B: μεταβλητή προκατάληψης, άλφα : Ο ρυθμός εκμάθησης, max_iters: Μέγιστες επαναλήψεις GD.""" dW = 0 # Weights gradient accumulator dB = 0 # Bias gradient accumulator m = X.shape # No. των παραδειγμάτων εκπαίδευσης για το i στην περιοχή (max_iters): dW = 0 # Επαναφορά των συσσωρευτών dB = 0 για j στο εύρος (m): # 1. Επανάληψη σε όλα τα παραδείγματα, # 2. Υπολογίστε τις κλίσεις των βαρών και των προκαταλήψεων σε w_grad και b_grad, # 3. Ενημερώστε το dW προσθέτοντας w_grad και dB προσθέτοντας b_grad, W = W - άλφα * (dW / m) # Ενημερώστε τα βάρη B = B - άλφα * (dB / m) # Ενημερώστε την επιστροφή πόλωσης W, B # Επιστρέψτε τα ενημερωμένα βάρη και προκατάληψη.

Αυτό είναι όλο. Τώρα θα πρέπει να έχετε μια καλή κατανόηση του τι είναι η gradient descent.

όπου φάΤο i είναι η συνάρτηση που υπολογίζεται στην i-η παρτίδα, το i επιλέγεται τυχαία.

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

Στοχαστική κλίση κάθοδος με αδράνεια

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

(14)
(15)

Όπως μπορείτε να μαντέψετε, η υπερπαράμετρος αδράνειας μ έχει ένα τέτοιο όνομα λόγω του γεγονότος ότι, όπως η λεγόμενη Νευτώνεια δύναμη αδράνειας, δηλ. δύναμη αντίστασης, «αντίσταται» στις αλλαγές κλίσης και απαλύνει τις αλλαγές στα βάρη κατά τη διάρκεια της προπόνησης. Ένας τέτοιος αλγόριθμος μάθησης ονομάζεται στοχαστική κλίση κάθοδος με ορμή ή SGDM (στοχαστική κλίση κάθοδος με ορμή).

Μέθοδος προσαρμοστικής κλίσης

Ο αλγόριθμος προσαρμοστικής κλίσης (Adagrad) βασίζεται στην ιδέα της κλιμάκωσης. Επανακλιμακώνει τον ρυθμό εκμάθησης για κάθε συντονίσιμη παράμετρο ξεχωριστά, ενώ λαμβάνει υπόψη το ιστορικό όλων των προηγούμενων κλίσεων για αυτήν την παράμετρο. Για να γίνει αυτό, κάθε στοιχείο διαβάθμισης διαιρείται με την τετραγωνική ρίζα του αθροίσματος των τετραγώνων των προηγούμενων αντίστοιχων στοιχείων κλίσης. Αυτή η προσέγγιση μειώνει αποτελεσματικά τον ρυθμό εκμάθησης για εκείνα τα βάρη που έχουν μεγάλη τιμή διαβάθμισης και επίσης μειώνει τον ρυθμό εκμάθησης για όλες τις παραμέτρους με την πάροδο του χρόνου, καθώς το άθροισμα των τετραγώνων αυξάνεται σταθερά για όλες τις παραμέτρους σε κάθε επανάληψη. Όταν καθορίζεται μια μηδενική αρχική παράμετρος κλιμάκωσης g = 0, ο τύπος για τον επανυπολογισμό των συντελεστών βάρους έχει τη μορφή (η διαίρεση εκτελείται στοιχείο προς στοιχείο).

Συνεχίζοντας το θέμα:
linux

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

Νέα άρθρα
/
Δημοφιλής