Support Vector Machine

Τι είναι το Support Vector Machine;

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

Πώς ταξινομεί δεδομένα ένα Support Vector Machine;

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

Τι είναι τα Διανύσματα Υποστήριξης και γιατί είναι σημαντικά;

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

Πώς χειρίζεται ένα Support Vector Machine μη γραμμικά δεδομένα;

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

Ποιες γλώσσες προγραμματισμού και βιβλιοθήκες χρησιμοποιούνται για την υλοποίηση ενός Support Vector Machine;

Στον κλάδο της επιστήμης δεδομένων, η Python και η R είναι οι κυρίαρχες γλώσσες προγραμματισμού που χρησιμοποιούνται για την κατασκευή και την εκπαίδευση μοντέλων Support Vector Machine. Στην Python, η τυπική και πιο ευρέως χρησιμοποιούμενη βιβλιοθήκη για αυτόν τον αλγόριθμο είναι η Scikit-learn. Η Scikit-learn παρέχει εξαιρετικά βελτιστοποιημένες, έτοιμες προς χρήση κλάσεις τόσο για Ταξινόμηση Διανυσμάτων Υποστήριξης όσο και για Παλινδρόμηση Διανυσμάτων Υποστήριξης. Εσωτερικά, η Scikit-learn βασίζεται στη LIBSVM, μια ισχυρή και γρήγορη βιβλιοθήκη γραμμένη σε C++ που χειρίζεται τη βαριά μαθηματική βελτιστοποίηση που απαιτείται για τον καθορισμό του υπερεπιπέδου. Στην R, το πακέτο e1071 είναι το τυπικό εργαλείο που χρησιμοποιούν οι στατιστικολόγοι για να αποκτήσουν πρόσβαση στην ακριβώς ίδια υποκείμενη υλοποίηση LIBSVM.