Μηχανική μάθηση χωρίς Python, Anaconda και άλλα ερπετά

Όχι, φυσικά, δεν μιλάω σοβαρά. Πρέπει να υπάρχει ένα όριο στον βαθμό στον οποίο είναι δυνατή η απλοποίηση ενός θέματος. Αλλά για τα πρώτα στάδια, η κατανόηση βασικών εννοιών και η γρήγορη «εισαγωγή» στο θέμα, μπορεί να είναι αποδεκτό. Θα συζητήσουμε πώς να ονομάσουμε σωστά αυτό το υλικό (επιλογές: «Μηχανική εκμάθηση για ανδρείκελα», «Ανάλυση δεδομένων από πάνες», «Αλγόριθμοι για τα μικρά») στο τέλος.

Μέχρι κάποιο σημείο. Έγραψε πολλά προγράμματα εφαρμογών στο MS Excel για οπτικοποίηση και οπτική αναπαράσταση διαδικασιών που συμβαίνουν σε διαφορετικές μεθόδους μηχανικής μάθησης κατά την ανάλυση δεδομένων. Το να βλέπεις είναι να πιστεύεις, τελικά, όπως λένε οι φορείς της κουλτούρας, που ανέπτυξαν τις περισσότερες από αυτές τις μεθόδους (παρεμπιπτόντως, όχι όλες. Η πιο ισχυρή «μηχανή φορέα υποστήριξης», ή SVM, μηχανή διανυσμάτων υποστήριξης είναι η εφεύρεση του ο συμπατριώτης μας Βλαντιμίρ Βάπνικ, Ινστιτούτο Μάνατζμεντ της Μόσχας.. 1963 άλλωστε!Τώρα όμως διδάσκει και εργάζεται στις Η.Π.Α.).

Τρία αρχεία για έλεγχο

1. Κ-σημαίνει ομαδοποίηση

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

Η μέθοδος είναι αρκετά απλή. Έχουμε ένα σύνολο αντικειμένων που αντιπροσωπεύονται ως διανύσματα (σύνολα Ν αριθμών). Στις ίριδες, αυτά είναι σετ 4 αριθμών που χαρακτηρίζουν το λουλούδι: το μήκος και το πλάτος του εξωτερικού και του εσωτερικού λοβού του περιάνθου, αντίστοιχα (Οι ίριδες του Φίσερ - Βικιπαίδεια). Η συνήθης καρτεσιανή μετρική επιλέγεται ως η απόσταση ή το μέτρο της εγγύτητας μεταξύ των αντικειμένων.

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

Η διαδικασία συγκλίνει αρκετά γρήγορα. Στις εικόνες σε δύο διαστάσεις φαίνεται κάπως έτσι:

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

Μηχανική μάθηση χωρίς Python, Anaconda και άλλα ερπετά

2. Καθορισμός κέντρων συστάδων και αντιστοίχιση σημείων στις συστάδες τους

Μηχανική μάθηση χωρίς Python, Anaconda και άλλα ερπετά

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

Μηχανική μάθηση χωρίς Python, Anaconda και άλλα ερπετά

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

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

Περιγραφή της μεθόδου στη Wikipedia - μέθοδος k-means

2. Προσέγγιση με πολυώνυμα και ανάλυση δεδομένων. Επανεκπαίδευση

Αξιόλογος επιστήμονας και εκλαϊκευτής της επιστήμης δεδομένων K.V. Ο Vorontsov περιγράφει εν συντομία τις μεθόδους μηχανικής μάθησης ως «την επιστήμη της σχεδίασης καμπυλών μέσω σημείων». Σε αυτό το παράδειγμα, θα βρούμε ένα μοτίβο στα δεδομένα χρησιμοποιώντας τη μέθοδο των ελαχίστων τετραγώνων.

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

(Είναι γνωστό ότι μέσω Ν σημείων μπορεί κανείς να σχεδιάσει μια μόνο καμπύλη Ν-1ου βαθμού και αυτή η μέθοδος στη γενική περίπτωση δεν δίνει το επιθυμητό αποτέλεσμα. Πολυώνυμο παρεμβολής Lagrange στη Wikipedia)

1. Ορίστε την αρχική κατανομή

Μηχανική μάθηση χωρίς Python, Anaconda και άλλα ερπετά

2. Χωρίζουμε τα σημεία σε «προπόνηση» και «έλεγχος» σε αναλογία 70 προς 30.

Μηχανική μάθηση χωρίς Python, Anaconda και άλλα ερπετά

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

Μηχανική μάθηση χωρίς Python, Anaconda και άλλα ερπετά

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

Μηχανική μάθηση χωρίς Python, Anaconda και άλλα ερπετά

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

Το αρχείο είναι διαθέσιμο εδώ, σαρωμένο με antivirus. Ενεργοποίηση μακροεντολών για σωστή λειτουργία

3. Κάθοδος κλίσης και δυναμική αλλαγής σφάλματος

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

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

1. Δημιουργήστε δεδομένα, ορίστε το βήμα κατάβασης με κλίση

Μηχανική μάθηση χωρίς Python, Anaconda και άλλα ερπετά

2. Με τη σωστή επιλογή του βήματος gradient descent φτάνουμε ομαλά και γρήγορα στο ελάχιστο

Μηχανική μάθηση χωρίς Python, Anaconda και άλλα ερπετά

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

Μηχανική μάθηση χωρίς Python, Anaconda και άλλα ερπετά
и

Μηχανική μάθηση χωρίς Python, Anaconda και άλλα ερπετά

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

Μηχανική μάθηση χωρίς Python, Anaconda και άλλα ερπετά

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

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

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο