HyperOpt Demystified

Πώς να αυτοματοποιήσετε τον συντονισμό μοντέλων με το HyperOpt

Σας αρέσουν τα μοντέλα συντονισμού; Εάν η απάντησή σας είναι «ναι», αυτή η ανάρτηση είναι δεν για σας.

Υπερπαράμετρος υπερπαράμετρος συντονισμός μοντέλου συντονισμός μηχανικής μάθησης επιστήμη δεδομένων sklearn μοντέλο mllib spark hyperopt δέντρο parzen εκτιμητής tpe δέντρο βασισμένος parzen esimtator mlflow databricks
Ένα καρτούν από τον παππού μου - .

Σε αυτό το blog θα καλύψουμε τον εξαιρετικά δημοφιλή αυτοματοποιημένο αλγόριθμο συντονισμού υπερπαραμέτρων που ονομάζεται Εκτιμητές Parzen που βασίζονται σε δέντρα (TPE). Το TPE υποστηρίζεται από το πακέτο ανοιχτού κώδικα, HyperOpt. Αξιοποιώντας το HyperOpt και το TPE, οι μηχανικοί μηχανικής μάθησης μπορούν αναπτύξτε γρήγορα εξαιρετικά βελτιστοποιημένα μοντέλα χωρίς χειροκίνητο συντονισμό.

Χωρίς άλλη καθυστέρηση, ας βουτήξουμε!

Το HyperOpt είναι ένα πακέτο python ανοιχτού κώδικα που χρησιμοποιεί έναν αλγόριθμο που ονομάζεται Tree-based Parzen Esimtors (TPE) για να επιλέξει υπερπαραμέτρους μοντέλου που βελτιστοποιούν μια συνάρτηση στόχου που ορίζεται από το χρήστη. Καθορίζοντας απλώς τη λειτουργική μορφή και τα όρια κάθε υπερπαραμέτρου, το TPE αναζητά διεξοδικά αλλά αποτελεσματικά μέσα από πολύπλοκο υπερχώρο για να φτάσει τα βέλτιστα.

Το TPE είναι ένας διαδοχικός αλγόριθμος που αξιοποιεί την bayesian ενημέρωση και ακολουθεί την παρακάτω ακολουθία.

  1. Εκπαιδεύστε ένα μοντέλο με πολλά σύνολα τυχαία επιλεγμένων υπερπαραμέτρων, επιστρέφοντας τιμές αντικειμενικής συνάρτησης.
  2. Διαχωρίστε τις παρατηρούμενες τιμές της αντικειμενικής συνάρτησης σε «καλές» και «κακές» ομάδες, σύμφωνα με κάποιο γάμα κατωφλίου (γ).
  3. Υπολογίστε τη βαθμολογία «υποσχέσεις», που είναι ακριβώς P(x|καλό) / P(x|κακό).
  4. Προσδιορίστε τις υπερπαραμέτρους που μεγιστοποιούν την ελπίδα μέσω μοντέλων μειγμάτων.
  5. Προσαρμόστε το μοντέλο μας χρησιμοποιώντας τις υπερπαραμέτρους από το βήμα 4.
  6. Επαναλάβετε τα βήματα 2-5 έως ότου καθοριστούν τα κριτήρια διακοπής.

Εδώ είναι μια παράδειγμα γρήγορου κώδικα.

Εντάξει ήταν πολλά μεγάλα λόγια. Ας επιβραδύνουμε και ας καταλάβουμε πραγματικά τι συμβαίνει.

1.1 — Ο στόχος μας

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

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

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

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

Υπερπαράμετρος υπερπαράμετρος συντονισμός μοντέλου συντονισμός μηχανικής μάθησης επιστήμη δεδομένων sklearn μοντέλο mllib spark hyperopt δέντρο parzen εκτιμητής tpe δέντρο βασισμένος parzen esimtator mlflow databricks
Εικόνα 1: παράδειγμα τρισδιάστατου χώρου αναζήτησης υπερπαραμέτρων. Η θέση του σεντούκι του θησαυρού είναι ένα παγκόσμιο βέλτιστο. Εικόνα από συγγραφέα.

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

Τι γίνεται όμως όταν δεν έχουμε χάρτη;

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

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

1.2 — Πιθανές λύσεις

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

1.2.1 — Αναζήτηση πλέγματος (χειρότερο)

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

Υπερπαράμετρος υπερπαράμετρος συντονισμός μοντέλου συντονισμός μηχανικής μάθησης επιστήμη δεδομένων sklearn μοντέλο mllib spark hyperopt δέντρο parzen εκτιμητής tpe δέντρο βασισμένος parzen esimtator mlflow databricks
Εικόνα 2: παράδειγμα διάταξης αναζήτησης πλέγματος. Εικόνα από συγγραφέα

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

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

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

1.2.2 — Τυχαία αναζήτηση (καλή)

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

Υπερπαράμετρος υπερπαράμετρος συντονισμός μοντέλου συντονισμός μηχανικής μάθησης επιστήμη δεδομένων sklearn μοντέλο mllib spark hyperopt δέντρο parzen εκτιμητής tpe δέντρο βασισμένος parzen esimtator mlflow databricks
Εικόνα 3: παράδειγμα τυχαίας αναζήτησης. Εικόνα από συγγραφέα.

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

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

1.2.3 — Bayesian Optimization (καλύτερη)

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

Υπερπαράμετρος υπερπαράμετρος συντονισμός μοντέλου συντονισμός μηχανικής μάθησης επιστήμη δεδομένων sklearn μοντέλο mllib spark hyperopt δέντρο parzen εκτιμητής tpe δέντρο βασισμένος parzen esimtator mlflow databricks
Εικόνα 4: Παράδειγμα βελτιστοποίησης bayesian — src. Εικόνα από συγγραφέα.

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

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

1.2.4 — Εκτιμητές Parzen βάσει δέντρων (καλύτερη)

Τέλος, ας μιλήσουμε για το αστέρι της εκπομπής: Tree-Based Parzen Estimators (TPE). Το TPE είναι ένας άλλος αλγόριθμος SMBO που συνήθως ξεπερνά τη βασική bayesian βελτιστοποίηση, αλλά το κύριο σημείο πώλησης είναι ότι χειρίζεται σύνθετες σχέσεις υπερπαραμέτρων μέσω μιας δομής δέντρου.

Υπερπαράμετρος υπερπαράμετρος συντονισμός μοντέλου συντονισμός μηχανικής μάθησης επιστήμη δεδομένων sklearn μοντέλο mllib spark hyperopt δέντρο parzen εκτιμητής tpe δέντρο βασισμένος parzen esimtator mlflow databricks
Εικόνα 5: παράδειγμα ιεραρχικής δομής για TPE — src. Εικόνα από συγγραφέα.

Ας χρησιμοποιήσουμε το σχήμα 5 για να το καταλάβουμε αυτό δομή δέντρου. Εδώ εκπαιδεύουμε έναν ταξινομητή Support Vector Machine (SVM). Θα δοκιμάσουμε δύο πυρήνες: linear και RBF. ΈΝΑ linear Ο πυρήνας δεν παίρνει παράμετρο πλάτους αλλά RBF έτσι, χρησιμοποιώντας ένα ένθετο λεξικό είμαστε σε θέση να κωδικοποιήσουμε αυτήν τη δομή και έτσι να περιορίσουμε τον χώρο αναζήτησης.

Το TPE υποστηρίζει επίσης κατηγορικές μεταβλητές τις οποίες δεν υποστηρίζει η παραδοσιακή Bayesian βελτιστοποίηση.

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

Γενικά, το TPE είναι μια πραγματικά ισχυρή και αποτελεσματική λύση βελτιστοποίησης υπερπαραμέτρων.

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

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

2.1 — Αρχικοποίηση

Για να ξεκινήσουμε, εμείς ορίζουμε τους περιορισμούς στον χώρο μας. Όπως σημειώθηκε παραπάνω, οι υπερπαράμετροι μας έχουν συχνά μια λειτουργική μορφή, τιμές max/min και ιεραρχική σχέση με άλλες υπερπαράμετρους. Χρησιμοποιώντας τις γνώσεις μας σχετικά με τους αλγόριθμους ML και τα δεδομένα μας, μπορούμε να ορίσουμε τον χώρο αναζήτησής μας.

Στη συνέχεια, πρέπει ορίζουμε την αντικειμενική μας λειτουργία, το οποίο χρησιμοποιείται για να αξιολογήσει πόσο «καλός» είναι ο συνδυασμός υπερπαραμέτρων μας. Ορισμένα παραδείγματα περιλαμβάνουν κλασικές συναρτήσεις απώλειας ML, όπως RMSE ή AUC.

Μεγάλος! Τώρα που έχουμε έναν περιορισμένο χώρο αναζήτησης και έναν τρόπο μέτρησης της επιτυχίας, είμαστε έτοιμοι να ξεκινήσουμε την αναζήτηση…

2.2 — Επαναληπτική Bayesian Optimization

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

2.2.0 — Η εννοιολογική ρύθμιση

Το πρώτο κόλπο είναι το μόντελινγκ P(x|y) αντί του P(y|x)…

Υπερπαράμετρος υπερπαράμετρος συντονισμός μοντέλου συντονισμός μηχανικής μάθησης επιστήμη δεδομένων sklearn μοντέλο mllib spark hyperopt δέντρο parzen εκτιμητής tpe δέντρο βασισμένος parzen esimtator mlflow databricks
Σχήμα 6: υπό όρους πιθανότητα που το TPE προσπαθεί να λύσει. Εικόνα από συγγραφέα.

Η Bayesian βελτιστοποίηση συνήθως φαίνεται να μοντελοποιείται P(y|x), που είναι η πιθανότητα μιας τιμής αντικειμενικής συνάρτησης (y), δεδομένων υπερπαραμέτρων (x). Το TPE κάνει το αντίθετο - φαίνεται να μοντελοποιεί P(x|y), ποια είναι η πιθανότητα των υπερπαραμέτρων (x), δεδομένης της τιμής της αντικειμενικής συνάρτησης (y).

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

Με αυτήν την πολύ σημαντική ρύθμιση, ας μπούμε στον πραγματικό αλγόριθμο.

2.2.1 — Διαχωρίστε τα Δεδομένα μας σε «Καλές» και «Κακές» Ομάδες

Θυμηθείτε, στόχος μας είναι να βρούμε τις καλύτερες τιμές υπερπαραμέτρων σύμφωνα με κάποια αντικειμενική συνάρτηση. Λοιπόν, πώς μπορούμε να αξιοποιήσουμε P(x|y) Να κάνω αυτό?

Πρώτον, το TPE χωρίζει τα παρατηρούμενα σημεία δεδομένων μας σε δύο ομάδες: καλός, συμβολίζεται g(x), και κακός, συμβολίζεται l(x). Η αποκοπή μεταξύ του καλού και του κακού καθορίζεται από μια παράμετρο γάμμα που ορίζεται από το χρήστη (γ), η οποία αντιστοιχεί στο εκατοστημόριο της αντικειμενικής συνάρτησης που χωρίζει τις παρατηρήσεις μας (y*).

Άρα, με γ = 0.5, η τιμή της αντικειμενικής μας συνάρτησης που χωρίζει τις παρατηρήσεις μας (y*) θα είναι η διάμεσος των παρατηρούμενων σημείων μας.

Υπερπαράμετρος υπερπαράμετρος συντονισμός μοντέλου συντονισμός μηχανικής μάθησης επιστήμη δεδομένων sklearn μοντέλο mllib spark hyperopt δέντρο parzen εκτιμητής tpe δέντρο βασισμένος parzen esimtator mlflow databricks
Εικόνα 7: κατανομή του p(x|y) σε δύο σύνολα. Εικόνα από συγγραφέα.

Όπως φαίνεται στο σχήμα 7, μπορούμε να επισημοποιήσουμε p(x|y) χρησιμοποιώντας το παραπάνω πλαίσιο. Και, για να κυλάω με την πειρατική αναλογία…

Pirate Perspective: κοιτάζοντας τα μέρη που έχουμε ήδη εξερευνήσει, το l(x) παραθέτει μέρη με πολύ λίγο θησαυρό και το g(x) παραθέτει μέρη με πολύ θησαυρό.

2.2.32— Υπολογίστε τη βαθμολογία «Promisingness».

Δεύτερον, το TPE ορίζει πώς πρέπει να αξιολογήσουμε έναν συνδυασμό υπερπαραμέτρων που δεν παρατηρείται μέσω του βαθμολογία «υποσχέσεις»..

Υπερπαράμετρος υπερπαράμετρος συντονισμός μοντέλου συντονισμός μηχανικής μάθησης επιστήμη δεδομένων sklearn μοντέλο mllib spark hyperopt δέντρο parzen εκτιμητής tpe δέντρο βασισμένος parzen esimtator mlflow databricks
Σχήμα 8: ορισμός βαθμολογίας υποσχέσεως. Εικόνα από συγγραφέα.

Το Σχήμα 8 ορίζει τη βαθμολογία υποσχέσεώς μας (P), που είναι απλώς μια αναλογία με τα ακόλουθα στοιχεία…

  • Αριθμητής: η πιθανότητα παρατήρησης ενός συνόλου υπερπαραμέτρων (x), δεδομένου ότι η αντίστοιχη τιμή της αντικειμενικής συνάρτησης είναι "καλός. "
  • Παρονομαστής: η πιθανότητα παρατήρησης ενός συνόλου υπερπαραμέτρων (x), δεδομένου ότι η αντίστοιχη τιμή της αντικειμενικής συνάρτησης είναι "κακός. "

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

Πειρατική Προοπτική: η υποσχέσεις δείχνει πόσο πιθανό θα είναι μια δεδομένη τοποθεσία στο έδαφός μας να έχει πολλούς θησαυρούς.

Γρήγορη εκτός προτού προχωρήσετε, εάν είστε εξοικειωμένοι με τη βελτιστοποίηση Bayes, αυτή η εξίσωση λειτουργεί ως συνάρτηση απόκτησης και είναι ανάλογη με την Αναμενόμενη Βελτίωση (EI).

2.2.3— Δημιουργήστε εκτιμήσεις πυκνότητας πιθανότητας

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

Γενικά, η διαδικασία μοντελοποίησης μείγματος είναι…

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

Σημειώστε ότι αυτή η διαδικασία εκτελείται μεμονωμένα και για τα δύο σετ l(x) και g(x).

Ας δούμε ένα παράδειγμα στο σχήμα 9…

Υπερπαράμετρος υπερπαράμετρος συντονισμός μοντέλου συντονισμός μηχανικής μάθησης επιστήμη δεδομένων sklearn μοντέλο mllib spark hyperopt δέντρο parzen εκτιμητής tpe δέντρο βασισμένος parzen esimtator mlflow databricks
Σχήμα 9: παράδειγμα περικομμένων γκαουσιανών κατανομών ταιριάζει σε 3 υπερπαραμέτρους παρατηρήσεις. Εικόνα από συγγραφέα.

Για κάθε παρατήρηση (μπλε κουκκίδες στον άξονα x), δημιουργούμε μια κανονική κατανομή ~N(μ, σ), όπου…

  • μ (mu) είναι ο μέσος όρος της κανονικής μας κατανομής. Η τιμή του είναι η θέση του σημείου μας κατά μήκος του άξονα x.
  • σ (σίγμα) είναι η τυπική απόκλιση της κανονικής μας κατανομής. Η τιμή του είναι η απόσταση από το πλησιέστερο γειτονικό σημείο.

Εάν τα σημεία είναι κοντά μεταξύ τους, η τυπική απόκλιση θα είναι μικρή και ως εκ τούτου η κατανομή θα είναι πολύ ψηλή και αντίστροφα, εάν τα σημεία είναι χωριστά, η κατανομή θα είναι επίπεδη (εικόνα 10)…

Υπερπαράμετρος υπερπαράμετρος συντονισμός μοντέλου συντονισμός μηχανικής μάθησης επιστήμη δεδομένων sklearn μοντέλο mllib spark hyperopt δέντρο parzen εκτιμητής tpe δέντρο βασισμένος parzen esimtator mlflow databricks
Εικόνα 10: παράδειγμα της επίδρασης της τυπικής απόκλισης στο σχήμα μιας κανονικής κατανομής. Εικόνα από συγγραφέα.

Pirate Perspective: NA — οι πειρατές δεν είναι εξαιρετικοί με τα μοντέλα με μείγματα.

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

2.2.4 — Καθορισμός του επόμενου σημείου προς εξερεύνηση!

Ας συγκεντρώσουμε αυτά τα κομμάτια. Μέχρι στιγμής, έχουμε 1) αποκτήσει παρατηρήσεις αντικειμενικών συναρτήσεων, 2) ορίσαμε τον τύπο «υποσχέσεις» μας και 3) δημιουργήσαμε μια εκτίμηση πυκνότητας πιθανότητας μέσω μοντέλων μείγματος που βασίζονται σε προηγούμενες τιμές. Έχουμε όλα τα κομμάτια για να αξιολογήσουμε ένα δεδομένο σημείο!

Το πρώτο μας βήμα είναι να δημιουργήσουμε μια συνάρτηση μέσης πυκνότητας πιθανότητας (PDF) και για τα δύο g(x) και l(x).

Υπερπαράμετρος υπερπαράμετρος συντονισμός μοντέλου συντονισμός μηχανικής μάθησης επιστήμη δεδομένων sklearn μοντέλο mllib spark hyperopt δέντρο parzen εκτιμητής tpe δέντρο βασισμένος parzen esimtator mlflow databricks
Σχήμα 11: επικάλυψη της μέσης πυκνότητας πιθανότητας σε 3 παρατηρούμενα σημεία. Εικόνα από συγγραφέα.

Ένα παράδειγμα διαδικασίας φαίνεται στο σχήμα 11 — η κόκκινη γραμμή είναι το μέσο PDF μας και είναι απλώς το άθροισμα όλων των PDF διαιρούμενο με τον αριθμό των PDF.

Χρησιμοποιώντας το μέσο PDF, μπορούμε να πάρουμε την πιθανότητα οποιασδήποτε τιμής υπερπαραμέτρου (x) να είσαι μέσα g(x) or l(x).

Για παράδειγμα, ας υποθέσουμε ότι οι παρατηρούμενες τιμές στο σχήμα 11 ανήκουν στο "καλό" σύνολο, g(x). Με βάση το μέσο PDF μας, είναι απίθανο μια τιμή υπερπαραμέτρου 3.9 ή 0.05 να ανήκει στο "καλό" σύνολο. Αντίθετα, μια τιμή υπερπαραμέτρου ~1.2 φαίνεται να είναι πολύ πιθανό να ανήκει στο «καλό» σύνολο.

Τώρα αυτό είναι μόνο το μισό της εικόνας. Εφαρμόζουμε την ίδια μεθοδολογία για το «κακό» σύνολο, l(x). Αφού προσπαθούμε να μεγιστοποιήσουμε g(x) / l(x), υποσχόμενα σημεία θα πρέπει να βρίσκονται όπου g(x) είναι ψηλά και l(x) είναι χαμηλό.

Αρκετά δροσερό, σωστά;

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

Πειρατική Προοπτική: η επόμενη τοποθεσία που σκάβουμε είναι η τοποθεσία που μεγιστοποιεί την (πιθανότητα να έχουμε πολύ θησαυρό) / (πιθανότητα να έχουμε λίγο θησαυρό).

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

3.1 — Δομή μιας εφαρμογής HyperOpt

Γενικά, υπάρχουν τρία βασικά βήματα κατά την αξιοποίηση του HyperOpt…

  1. Ορίστε τον χώρο αναζήτησης, που είναι μόνο τα εύρη και οι λειτουργικές μορφές των υπερπαραμέτρων που θέλετε να βελτιστοποιήσετε.
  2. Καθορίστε τη λειτουργία προσαρμογής, που σας καλεί model.fit() λειτουργία σε δεδομένο διαχωρισμό αμαξοστοιχίας/δοκιμών.
  3. Ορίστε την αντικειμενική συνάρτηση, που είναι οποιαδήποτε από τις κλασικές μετρήσεις ακρίβειας, όπως RMSE ή AUC.

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

3.2— Συμβουλές και κόλπα

  • Το HyperOpt μπορεί να παραλληλιστεί και με τα δύο Apache Spark και MongoDB. Εάν εργάζεστε με πολλούς πυρήνες, είτε στο cloud είτε στον τοπικό σας υπολογιστή, αυτό μπορεί να μειώσει δραματικά το χρόνο εκτέλεσης.
  • Εάν παραλληλίζετε τη διαδικασία συντονισμού μέσω του Apache Spark, χρησιμοποιήστε a SparkTrialsαντικείμενο για μοντέλα ML ενός κόμβου (sklearn) και α Trails αντικείμενο για παραλληλισμένα μοντέλα ML (MLlib). Ο κωδικός είναι παρακάτω.
  • Ροή ML είναι μια μέθοδος ανοιχτού κώδικα για την παρακολούθηση της εκτέλεσης του μοντέλου σας. Ενσωματώνεται εύκολα με το HyperOpt.
  • Μην περιορίζετε τον χώρο αναζήτησης πολύ νωρίς. Ορισμένοι συνδυασμοί υπερπαραμέτρων μπορεί να είναι εκπληκτικά αποτελεσματικοί.
  • Ο καθορισμός του χώρου αναζήτησης μπορεί να είναι δύσκολος, ειδικά αν δεν το γνωρίζετε λειτουργική μορφή των υπερπαραμέτρων σας. Ωστόσο, από προσωπική εμπειρία, το TPE είναι αρκετά ανθεκτικό σε εσφαλμένη προδιαγραφή αυτών των λειτουργικών μορφών.
  • Η επιλογή μιας καλής αντικειμενικής συνάρτησης πηγαίνει πολύ μακριά. Στις περισσότερες περιπτώσεις, το σφάλμα δεν δημιουργείται ίσο. Εάν ένας συγκεκριμένος τύπος σφάλματος είναι πιο προβληματικός, φροντίστε να ενσωματώσετε αυτήν τη λογική στη συνάρτησή σας.

3.3— Παράδειγμα κώδικα

Ακολουθεί κάποιος κώδικας για την εκτέλεση του HyperOpt με κατανεμημένο τρόπο. Προσαρμόστηκε από τον κώδικα του βιβλίου, Μηχανική Μηχανικής Μάθησης σε Δράση — ορίστε το git repo.

Ορισμένα ωραία χαρακτηριστικά αυτού του αποσπάσματος περιλαμβάνουν την παραλληλοποίηση μέσω Apache Spark και καταγραφή μοντέλου μέσω Ροή ML. Σημειώστε επίσης ότι αυτό το απόσπασμα βελτιστοποιεί ένα sklearn RandomForestRegressor — θα πρέπει να αλλάξετε το μοντέλο και τη συνάρτηση προσαρμογής για να ταιριάζουν στις ανάγκες σας.

Και να το έχετε — HyperOpt σε όλο του το μεγαλείο!

Για να ελπίζουμε στα βασικά σημεία, ας ανακεφαλαιώσουμε γρήγορα.

Ο συντονισμός υπερπαραμέτρων είναι απαραίτητο μέρος του κύκλου ζωής του μοντέλου ML, αλλά είναι χρονοβόρα. Οι αλγόριθμοι διαδοχικής βελτιστοποίησης βάσει μοντέλου (SMBO) υπερέχουν στην αναζήτηση σύνθετων υπερχώρων για βέλτιστα και μπορούν να εφαρμοστούν στον συντονισμό υπερπαραμέτρων. Οι εκτιμητές Parzen που βασίζονται σε δέντρα (TPE) είναι ένας πολύ αποτελεσματικός SMBO και ξεπερνά την απόδοση τόσο της Bayesian Optimization όσο και της Random Search.

Το TPE επαναλαμβάνει τα παρακάτω βήματα μέχρι τα κριτήρια διακοπής:

  1. Χωρίστε τα παρατηρούμενα σημεία σε "καλά" και "κακά" σύνολα, σύμφωνα με κάποια υπερπαράμετρο, γάμμα.
  2. Προσαρμόστε ένα μοντέλο μείγματος και στο σετ "καλό" και "κακό" για να αναπτύξετε μια εκτίμηση μέσης πυκνότητας πιθανότητας.
  3. Επιλέξτε το σημείο που βελτιστοποιεί τη βαθμολογία "υποσχέσεις", η οποία αξιοποιεί το βήμα 2 για να εκτιμήσει την πιθανότητα να βρεθείτε στο "καλό" και το "κακό" σετ.

Τέλος, έχουμε ένα πολύ ωραίο απόσπασμα κώδικα που δείχνει πώς να παραλληλίσετε το HyperOpt μέσω του SparkTrials. Καταγράφει επίσης όλες τις επαναλήψεις μας στο MLflow.

Το HyperOpt Demystified αναδημοσιεύτηκε από την Πηγή https://towardsdatascience.com/hyperopt-demystified-3e14006eb6fa?source=rss—-7f60cf5620c9—4 μέσω https://towardsdatascience.com/feed

Si al principi no tens èxit, aleshores el paracaigudisme no és per a tu.

->

Σφραγίδα ώρας:

Περισσότερα από Σύμβουλοι Blockchain