Κάθοδος με κλίση – πλήρης, παρτίδα και στοχαστική. Έτσι, μπορούμε να συμπεράνουμε ότι σε πολύ χαμηλές τιμές του ρυθμού εκμάθησης, η ακρίβεια της εκτέλεσής του, παρόμοια με το AdaGrad, μειώνεται σημαντικά

Παιδικά προϊόντα 25.04.2019
Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει...

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

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

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

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

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

GradientDescent()

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

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

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

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

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

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

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

Σήμερα θα μιλήσουμε για δύο τύπους gradient descent.

Gradient Descent

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

Gradient Descent- ο πιο χρησιμοποιούμενος αλγόριθμος εκμάθησης, χρησιμοποιείται σχεδόν σε κάθε μοντέλο. Το 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. Διαιρέστε τις αθροιστικές μεταβλητές βάρους και μεροληψίας με τον αριθμό των παραδειγμάτων εκπαίδευσης. Αυτό θα μας δώσει τις μέσες κλίσεις για όλα τα βάρη και τη μέση κλίση για την προκατάληψη. Θα τις ονομάσουμε ενημερωμένες μπαταρίες (RA).

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

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

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

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

Υπάρχουν 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SVM

Υποστήριξη διανυσματική μηχανή(Αγγλικά 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. Ωστόσο, αυτού του τύπουΟ ταξινομητής δεν φαίνεται κατάλληλος για την εργασία λόγω του υπερβολικά πολύπλοκου πυρήνα και της τάσης υπερβολικής προσαρμογής, στην οποία ο ταξινομητής έχει κακή απόδοση σε δεδομένα που δεν χρησιμοποιήθηκαν για την εκπαίδευση του ταξινομητή.

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



Συνιστούμε να διαβάσετε

Κορυφή