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

Βαθιά μάθηση έναντι μηχανικής μάθησης: Κατανοήστε τις διαφορές

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

Εξήγησε η μηχανική μάθηση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μηχανική χαρακτηριστικών για μηχανική μάθηση

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

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

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

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

Η συνήθης πρακτική για την εποπτευόμενη μηχανική μάθηση είναι ο διαχωρισμός του συνόλου δεδομένων σε υποσύνολα για εκπαίδευση, επικύρωση, και δοκιμή. Ένας τρόπος εργασίας είναι να αντιστοιχίσετε το 80% των δεδομένων στο σύνολο δεδομένων εκπαίδευσης και το 10% το καθένα στα σύνολα δεδομένων επικύρωσης και δοκιμής. (Ο ακριβής διαχωρισμός είναι θέμα προτίμησης.) Το μεγαλύτερο μέρος της εκπαίδευσης γίνεται έναντι του συνόλου δεδομένων προπόνησης και η πρόβλεψη γίνεται έναντι του συνόλου δεδομένων επικύρωσης στο τέλος κάθε εποχής.

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

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

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

Βιβλιοθήκες μηχανικής εκμάθησης

Στο Python, το Spark MLlib και το Scikit-learn είναι εξαιρετικές επιλογές για βιβλιοθήκες μηχανικής μάθησης. Στο R, ορισμένες επιλογές πακέτου μηχανικής εκμάθησης είναι CARAT, randomForest, e1071 και KernLab. Στην Java, οι καλές επιλογές περιλαμβάνουν Java-ML, RapidMiner και Weka.

Εξήγησε η βαθιά μάθηση

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

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

Backprop

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

Νευρώνες σε τεχνητά νευρικά δίκτυα

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

Λειτουργίες ενεργοποίησης σε νευρωνικά δίκτυα

Τη δεκαετία του 1940 και του '50 οι τεχνητοί νευρώνες χρησιμοποίησαν μια λειτουργία ενεργοποίησης βημάτων και κλήθηκαν perceptrons. Τα σύγχρονα νευρωνικά δίκτυα μπορεί λένε Χρησιμοποιούν perceptrons, αλλά στην πραγματικότητα έχουν ομαλές λειτουργίες ενεργοποίησης, όπως η συνάρτηση logistic ή sigmoid, η υπερβολική εφαπτομένη ή η Rectified Linear Unit (ReLU). Το ReLU είναι συνήθως η καλύτερη επιλογή για γρήγορη σύγκλιση, αν και έχει ένα ζήτημα νευρώνων που «πεθαίνουν» κατά τη διάρκεια της προπόνησης εάν το ποσοστό εκμάθησης είναι πολύ υψηλό.

[Επίσης στις: 6 τρόποι για να αποτύχει η μηχανική εκμάθηση]

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

Τοπολογίες νευρικού δικτύου

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

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

Εκπαίδευση νευρωνικών δικτύων

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

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

Βελτιστοποιητές για νευρωνικά δίκτυα

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