Προγραμματισμός

Εξήγησαν οι αλγόριθμοι μηχανικής μάθησης

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

Τι είναι οι αλγόριθμοι μηχανικής μάθησης;

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

Πώς λειτουργεί η μηχανική μάθηση

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

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

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

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

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

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

Εποπτευόμενη μάθηση έναντι μη εποπτευόμενης μάθησης

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

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

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

Καθαρισμός δεδομένων για μηχανική μάθηση

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

  1. Κοιτάξτε τα δεδομένα και εξαιρέστε τυχόν στήλες που έχουν πολλά δεδομένα που λείπουν.
  2. Κοιτάξτε ξανά τα δεδομένα και επιλέξτε τις στήλες που θέλετε να χρησιμοποιήσετε για την πρόβλεψή σας. (Αυτό είναι κάτι που ίσως θέλετε να αλλάξετε κατά την επανάληψη.)
  3. Εξαιρέστε τυχόν σειρές που εξακολουθούν να λείπουν δεδομένα στις υπόλοιπες στήλες.
  4. Διορθώστε τα προφανή λάθη και συγχωνεύστε ισοδύναμες απαντήσεις. Για παράδειγμα, οι Η.Π.Α., οι ΗΠΑ, οι ΗΠΑ και η Αμερική θα πρέπει να συγχωνευθούν σε μία μόνο κατηγορία.
  5. Εξαιρέστε σειρές με δεδομένα που είναι εκτός εμβέλειας. Για παράδειγμα, εάν αναλύετε ταξίδια εντός της Νέας Υόρκης, θα θέλετε να φιλτράρετε σειρές με γεωγραφικά πλάτη και μήκη παραλαβής ή πτώσης που βρίσκονται εκτός του πλαισίου οριοθέτησης της μητροπολιτικής περιοχής.

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

Κωδικοποίηση δεδομένων και ομαλοποίηση για μηχανική μάθηση

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

Ενα είναι κωδικοποίηση ετικέτας, που σημαίνει ότι κάθε τιμή ετικέτας κειμένου αντικαθίσταται με έναν αριθμό. Το άλλο είναι μονόχρωμη κωδικοποίηση, που σημαίνει ότι κάθε τιμή ετικέτας κειμένου μετατρέπεται σε στήλη με δυαδική τιμή (1 ή 0). Τα περισσότερα πλαίσια μηχανικής μάθησης έχουν λειτουργίες που κάνουν τη μετατροπή για εσάς. Σε γενικές γραμμές, προτιμάται η κωδικοποίηση one-hot, καθώς η κωδικοποίηση ετικέτας μπορεί μερικές φορές να μπερδέψει τον αλγόριθμο μηχανικής εκμάθησης να πιστεύει ότι η κωδικοποιημένη στήλη έχει ταξινομηθεί.

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

Τι είναι τα χαρακτηριστικά της μηχανικής μάθησης;

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

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

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

Κοινοί αλγόριθμοι μηχανικής μάθησης

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

  • Γραμμική παλινδρόμηση, αλλιώς παλινδρόμηση τετραγώνων (για αριθμητικά δεδομένα)
  • Λογιστική παλινδρόμηση (για δυαδική ταξινόμηση)
  • Γραμμική ανάλυση διακρίσεων (για ταξινόμηση πολλαπλών κατηγοριών)
  • Δέντρα απόφασης (τόσο για ταξινόμηση όσο και για παλινδρόμηση)
  • Naïve Bayes (τόσο για ταξινόμηση όσο και για παλινδρόμηση)
  • K-Κοντινότεροι γείτονες, γνωστός και ως KNN (τόσο για την ταξινόμηση όσο και για την παλινδρόμηση)
  • Εκμάθηση του ποσοτικού διανύσματος, γνωστός και ως LVQ (για ταξινόμηση και παλινδρόμηση)
  • Υποστήριξη Vector Machines, γνωστού και ως SVM (για δυαδική ταξινόμηση)
  • Τυχαία δάση, ένας τύπος αλγόριθμου "τσάντας" (για ταξινόμηση και παλινδρόμηση)
  • Οι μέθοδοι ενίσχυσης, συμπεριλαμβανομένων των AdaBoost και XGBoost, είναι σύνολα αλγορίθμων που δημιουργούν μια σειρά μοντέλων όπου κάθε νέο μοντέλο προσπαθεί να διορθώσει σφάλματα από το προηγούμενο μοντέλο (τόσο για την ταξινόμηση όσο και για την παλινδρόμηση)

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

Για περισσότερα σχετικά με τα νευρικά δίκτυα και τη βαθιά μάθηση, ανατρέξτε στην ενότητα «Τι σημαίνει πραγματικά η βαθιά μάθηση».

Υπερπαραμέτρους για αλγόριθμους μηχανικής μάθησης

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

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

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

Ρύθμιση υπερπαραμέτρων

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

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

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

Αυτοματοποιημένη μηχανική μάθηση

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

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

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

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