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

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

Ορίζεται η μηχανική μάθηση

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

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

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

Εφαρμογές μηχανικής μάθησης

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

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

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

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

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

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

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

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

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

Αλγόριθμοι ταξινόμησης

Ένα πρόβλημα ταξινόμησης είναι ένα εποπτευόμενο μαθησιακό πρόβλημα που ζητά μια επιλογή μεταξύ δύο ή περισσότερων τάξεων, παρέχοντας συνήθως πιθανότητες για κάθε τάξη. Αφήνοντας τα νευρικά δίκτυα και τη βαθιά μάθηση, που απαιτούν πολύ υψηλότερο επίπεδο υπολογιστικών πόρων, οι πιο συνηθισμένοι αλγόριθμοι είναι Naive Bayes, Decision Tree, Logistic Regression, K-Nearest Neighbors και Support Vector Machine (SVM). Μπορείτε επίσης να χρησιμοποιήσετε μεθόδους συνόλου (συνδυασμοί μοντέλων), όπως Random Forest, άλλες μεθόδους Bagging και μεθόδους ενίσχυσης όπως AdaBoost και XGBoost.

Αλγόριθμοι παλινδρόμησης

Ένα πρόβλημα παλινδρόμησης είναι ένα εποπτευόμενο μαθησιακό πρόβλημα που ζητά από το μοντέλο να προβλέψει έναν αριθμό. Ο απλούστερος και ταχύτερος αλγόριθμος είναι η γραμμική παλινδρόμηση (λιγότερα τετράγωνα), αλλά δεν πρέπει να σταματάτε εκεί, γιατί συχνά σας δίνει ένα μέτριο αποτέλεσμα. Άλλοι συνηθισμένοι αλγόριθμοι παλινδρόμησης μηχανικής εκμάθησης (κοντά σε νευρωνικά δίκτυα) περιλαμβάνουν Naive Bayes, Decision Tree, K-Nearest Neighbors, LVQ (Learning Vector Quantization), LARS Lasso, Elastic Net, Random Forest, AdaBoost και XGBoost. Θα παρατηρήσετε ότι υπάρχει κάποια αλληλεπικάλυψη μεταξύ αλγορίθμων μηχανικής μάθησης για παλινδρόμηση και ταξινόμηση.

Αλγόριθμοι ομαδοποίησης

Ένα πρόβλημα ομαδοποίησης είναι ένα μη επιτηρούμενο μαθησιακό πρόβλημα που ζητά από το μοντέλο να βρει ομάδες με παρόμοια σημεία δεδομένων. Ο πιο δημοφιλής αλγόριθμος είναι το K-Means Clustering. Άλλοι περιλαμβάνουν το σύμπλεγμα Mean-Shift, το DBSCAN (χωρική συγκέντρωση εφαρμογών με θόρυβο), το GMM (Gaussian Mixture Models) και το HAC (Hierarchical Agglomerative Clustering).

Αλγόριθμοι μείωσης διαστάσεων

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

Μέθοδοι βελτιστοποίησης

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

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

Νευρωνικά δίκτυα και βαθιά μάθηση

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

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

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

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

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

Η σημαντική ανακάλυψη στο οπτικό πεδίο του νευρικού δικτύου ήταν το 1998 LeNet-5 του Yann LeCun, επτά επιπέδων συνελικτικό νευρικό δίκτυο (CNN) για αναγνώριση χειρόγραφων ψηφίων που ψηφιοποιούνται σε εικόνες 32x32 pixel. Για την ανάλυση εικόνων υψηλότερης ανάλυσης, το δίκτυο θα χρειαζόταν περισσότερους νευρώνες και περισσότερα επίπεδα.

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

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

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

Εκτός από τα CNN, οι εργασίες NLP αντιμετωπίζονται συχνά με επαναλαμβανόμενα νευρωνικά δίκτυα (RNN), τα οποία περιλαμβάνουν το μοντέλο Long-Short Term Memory (LSTM).

Όσο περισσότερα επίπεδα υπάρχουν σε ένα βαθύ νευρωνικό δίκτυο, τόσο περισσότερος υπολογισμός χρειάζεται για να εκπαιδεύσει το μοντέλο σε CPU. Οι επιταχυντές υλικού για νευρωνικά δίκτυα περιλαμβάνουν GPU, TPU και FPGA.

Μάθηση ενίσχυσης

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

Για παράδειγμα, το DeepMind’s AlphaGo, για να μάθει να παίζει (τη δράση) το παιχνίδι του Go (το περιβάλλον), έμαθε για πρώτη φορά να μιμείται ανθρώπινους παίκτες Go από ένα μεγάλο σύνολο δεδομένων ιστορικών παιχνιδιών (μάθηση μαθητευόμενων). Στη συνέχεια, βελτίωσε το παιχνίδι του με δοκιμή και λάθος (ενίσχυση μάθησης), παίζοντας μεγάλο αριθμό παιχνιδιών Go ενάντια σε ανεξάρτητες παρουσίες του.

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

Πώς να χρησιμοποιήσετε τη μηχανική μάθηση

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

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

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

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

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

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

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

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