Ενίσχυση αλγορίθμων στη μηχανική μάθηση

Ενίσχυση αλγορίθμων στη μηχανική μάθηση

September 29, 2022 0 Von admin

Πόσους αλγόριθμους ενίσχυσης γνωρίζετε;

Μπορείτε να ονομάσετε τουλάχιστον δύο αλγόριθμους ενίσχυσης στη μηχανική μάθηση;

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

Ένας από τους κύριους λόγους για την άνοδο της υιοθέτησης αλγορίθμων ενίσχυσης είναι οι διαγωνισμοί μηχανικής μάθησης. Οι αλγόριθμοι ενίσχυσης παρέχουν υπερδυνάμεις σε μοντέλα μηχανικής μάθησης για να βελτιώσουν την ακρίβεια πρόβλεψής τους. Μια γρήγορη ματιά στους διαγωνισμούς Kaggle και DataHack hackathons είναι αρκετά στοιχεία – οι αλγόριθμοι ενίσχυσης είναι εξαιρετικά δημοφιλείς!

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

boosting_algorithms

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

4 Ενίσχυση αλγόριθμων στη Μηχανική Μάθηση

  1. Μηχανή ενίσχυσης κλίσης (GBM)
  2. Extreme Gradient Boosting Machine (XGBM)
  3. LightGBM
  4. CatBoost

Γρήγορη εισαγωγή στο Boosting (Τι είναι το Boosting;)

Φανταστείτε αυτό το σενάριο:

Έχετε δημιουργήσει ένα μοντέλο γραμμικής παλινδρόμησης που σας δίνει μια αξιοπρεπή ακρίβεια 77% στο σύνολο δεδομένων επικύρωσης. Στη συνέχεια, αποφασίζετε να επεκτείνετε το χαρτοφυλάκιό σας δημιουργώντας ένα μοντέλο k-Nearest Neighbor (KNN) και ένα δέντρο απόφασης μοντέλο στο ίδιο σύνολο δεδομένων. Αυτά τα μοντέλα σάς έδωσαν ακρίβεια 62% και 89% στο σετ επικύρωσης αντίστοιχα.

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

Ενίσχυση μοντέλων συνόλου

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

Σκέφτομαι έναν μέσο όρο των προβλέψεων από αυτά τα μοντέλα. Κάνοντας αυτό, θα μπορούσαμε να συλλάβουμε περισσότερες πληροφορίες από τα δεδομένα, σωστά;

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

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

Θα εξετάσουμε μερικούς από τους σημαντικούς αλγόριθμους ενίσχυσης σε αυτό το άρθρο.

1. Μηχανή ενίσχυσης κλίσης (GBM)

Ένα Gradient Boosting Machine ή GBM συνδυάζει τις προβλέψεις από πολλαπλά δέντρα αποφάσεων για να δημιουργήσει τις τελικές προβλέψεις. Λάβετε υπόψη ότι όλοι οι αδύναμοι μαθητές σε μια μηχανή ενίσχυσης κλίσης είναι δέντρα αποφάσεων.

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

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

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

αλγόριθμος gbm

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

2. Μηχάνημα ενίσχυσης ακραίων διαβαθμίσεων (XGBM)

Το Extreme Gradient Boosting ή το XGBoost είναι ένας άλλος δημοφιλής αλγόριθμος ενίσχυσης. Στην πραγματικότητα, το XGBoost είναι απλώς μια αυτοσχέδια έκδοση του αλγορίθμου GBM! Η διαδικασία εργασίας του XGBoost είναι η ίδια με το GBM. Τα δέντρα στο XGBoost δημιουργούνται διαδοχικά, προσπαθώντας να διορθώσουν τα σφάλματα των προηγούμενων δέντρων.

Ακολουθεί ένα άρθρο που εξηγεί διαισθητικά τα μαθηματικά πίσω από το XGBoost και επίσης εφαρμόζει το XGBoost στην Python:

ενίσχυση xgboost

Αλλά υπάρχουν ορισμένα χαρακτηριστικά που κάνουν το XGBoost ελαφρώς καλύτερο από το GBM:

  • Ένα από τα πιο σημαντικά σημεία είναι ότι το XGBM υλοποιεί παράλληλη προεπεξεργασία (σε επίπεδο κόμβου) που το καθιστά ταχύτερο από το GBM
  • Το XGBoost περιλαμβάνει επίσης μια ποικιλία τεχνικών τακτοποίησης που μειώνουν την υπερπροσαρμογή και βελτιώνουν τη συνολική απόδοση. Μπορείτε να επιλέξετε την τεχνική κανονικοποίησης ορίζοντας τις υπερπαραμέτρους του αλγορίθμου XGBoost

Μάθετε για τις διάφορες υπερπαραμέτρους του XGBoost και πώς παίζουν ρόλο στη διαδικασία εκπαίδευσης μοντέλων εδώ:

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

3. LightGBM

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

Ας αφιερώσουμε λίγο χρόνο για να καταλάβουμε γιατί συμβαίνει αυτό.

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

Εξετάστε το παράδειγμα που έχω επεξηγήσει στην παρακάτω εικόνα:

lightgbm

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

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

Ακολουθεί ένα εξαιρετικό άρθρο που συγκρίνει τους αλγόριθμους LightGBM και XGBoost:

4. CatBoost

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

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

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

ώθηση γάτας

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

Ακολουθεί ένα άρθρο που εφαρμόζει το CatBoost σε μια πρόκληση μηχανικής μάθησης:

Σημειώσεις τέλους

Σε αυτό το άρθρο, καλύψαμε τα βασικά της εκμάθησης συνόλου και εξετάσαμε τους 4 τύπους αλγορίθμων ενίσχυσης. Ενδιαφέρεστε να μάθετε για άλλες μεθόδους εκμάθησης συνόλου; Θα πρέπει να δείτε το παρακάτω άρθρο:

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