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

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

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

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

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

(14)
(15)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SVM

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

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

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

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


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


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

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

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

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

Ο αλγόριθμος για την κατασκευή ενός βέλτιστου διαχωριστικού υπερεπιπέδου, που προτάθηκε το 1963 από τους Vladimir Vapnik και Alexey Chervonenkis, είναι ένας αλγόριθμος γραμμικής ταξινόμησης. Ωστόσο, το 1992, ο Bernhard Boser, η Isabelle Guyon και ο Vapnik πρότειναν έναν τρόπο δημιουργίας ενός μη γραμμικού ταξινομητή που βασίζεται στη μετάβαση από βαθμωτά προϊόντα σε αυθαίρετους πυρήνες, το λεγόμενο κόλπο του πυρήνα (πρώτη πρόταση από τους M.A. Aizerman, E.M. 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. Ωστόσο, αυτός ο τύποςο ταξινομητής δεν φαίνεται κατάλληλος για την εργασία λόγω του υπερβολικά πολύπλοκου πυρήνα και της τάσης για υπερβολική προσαρμογή, στην οποία ο ταξινομητής έχει κακή απόδοση σε δεδομένα που δεν χρησιμοποιήθηκαν για την εκπαίδευση του ταξινομητή.

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

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

Εκείνοι. για να υπολογίσουμε την κλίση πρέπει να χρησιμοποιήσουμε την παράγωγο του δεδομένη λειτουργίαστα αντίστοιχα σημεία (μεταβλητές).

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

Για να το εφαρμόσετε μέσω προγραμματισμού, πρέπει να μάθετε πώς να διαφοροποιείτε τη συνάρτηση F:

Παράδειγμα 1 - Αλγόριθμος καθόδου κλίσης για ένα σημείο.

GradientDescent()

  • 1. Αρχικοποίηση με μικρές τυχαίες τιμές.
  • 2. Επαναλάβετε τις φορές Number_of_Steps:
    • α) Για όλους Εγώαπό 1 έως n
    • β) Για όλους ιαπό 1 έως Μ:
      • (i) Για όλους Εγώαπό 1 έως n
  • 3. τιμές εξόδου.

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

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

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

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

MSE με βάρη από στοχαστική κλίση κάθοδος: 2,78441258841

MSE με βάρη από gradient descent: 2,78412631451 (πανομοιότυπο με MSE με βάρη από κανονική εξίσωση)

Def mserror(y, y_pred): n = y.size diff = y - y_pred diff_squared = diff ** 2 av_er = float(sum(diff_squared))/n return av_er

Def linear_prediction(X, w): return dot(X,np.transpose(w))

Def gradient_descent_step(X, y, w, eta): n = X.shape grad = (2.0/n) * sum(np.transpose(X) * (linear_prediction(X,w) - y), axis = 1) return w - eta * grad

Def stochastic_gradient_step(X, y, w, train_ind, eta): n = X.shape grad = (2.0/n) * np.transpose(X) * (linear_prediction(X,w) - y) return w - eta * grad

Def gradient_descent(X, y, w_init, eta, max_iter): w = w_init errors = errors.append(mserror(y, linear_prediction(X,w))) για i στο range(max_iter): w = gradient_descent_step(X, y , w, eta) errors.append(mserror(y, linear_prediction(X,w))) return w, errors

Def stochastic_gradient_descent(X, y, w_init, eta, max_iter): n = X.shape w = w_init errors = errors.append(mserror(y, linear_prediction(X,w))) για i στην περιοχή(max_iter): random_ind = np.random.randint(n) w = stochastic_gradient_step(X, y, w, random_ind, eta) errors.append(mserror(y, linear_prediction(X,w))) επιστροφή w, σφάλματα

1 απάντηση

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

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

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