Κοινή χρήση τεχνολογίας

[Machine Learning] 12. Επεξήγηση της αρχής του αλγορίθμου Support Vector Machine (SVM - Support Vector Machine), ένας από τους δέκα κορυφαίους αλγόριθμους

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1· Περίληψη

Εισαγάγετε την περιγραφή της εικόνας εδώ

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

2. Προσωπική εισαγωγή

🏘️🏘️个人主页:Χρησιμοποιώντας βουνά και ποτάμια ως δώρο
🎖️🎖️:Δημιουργός Rising Star στο πεδίο Python, Πιστοποίηση CSDN Rising Star, Συνεργάτης περιεχομένου CSDN, Alibaba Cloud Community Expert Blogger, μέντορας προγράμματος Rising Star και Αναλυτής δεδομένων επί τόπου.

💕💕悲索之人烈焰加身,堕落者不可饶恕。永恒燃烧的羽翼,带我脱离凡间的沉沦。

Εισαγάγετε την περιγραφή της εικόνας εδώ

🐘 希望大家能持续支持,共同向前迈进!😁
Εάν πιστεύετε ότι το άρθρο είναι πολύτιμο,
欢迎留言💬,点赞👍,收藏🔖并关注我们➕🤝。
🪐💫💫💫💫💫💫💫热门专栏💫💫💫💫💫💫💫🪐
τύποςΣτήλη
Βασικά στοιχεία PythonΕισαγωγή στα βασικά της Python — λεπτομερής έκδοση
Η Python έχει προχωρήσειΕισαγωγή στα Βασικά της Python—Έκδοση Ενοτήτων
Python AdvancedPython网络爬虫从入门到精通🔥🔥🔥
Ανάπτυξη πλήρους στοίβας ιστούΞεκινώντας με το Django Basics
Ανάπτυξη πλήρους στοίβας ιστούΕισαγωγή στα βασικά HTML και CSS
Ανάπτυξη πλήρους στοίβας ιστούΞεκινώντας με τα βασικά JavaScript
Ανάλυση PythondataPython数据分析项目🔥🔥
μηχανική μάθηση机器学习算法🔥🔥
Όλα συμπεριλαμβάνονταιΌλα συμπεριλαμβάνονται

3. Βασικές έννοιες

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

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

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

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

4. Υποστήριξη διανυσμάτων και υπερεπιπέδων

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

4.1 Υπερπλάνο

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

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

4.2 Διανύσματα υποστήριξης

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

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

4.3 Κόλπο πυρήνα

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

4.4 Μαλακό περιθώριο και τακτοποίηση

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

Εισαγάγετε την περιγραφή της εικόνας εδώ

5. Αρχή αλγορίθμου SVM

5.1 Τύπος απόστασης από σημείο σε υπερεπίπεδο

Ο τύπος απόστασης από σημείο σε υπερεπίπεδο χρησιμοποιείται για τον υπολογισμό της μικρότερης απόστασης από ένα σημείο σε ένα δεδομένο υπερεπίπεδο. Το υπερεπίπεδο μπορεί να εκφραστεί με την ακόλουθη εξίσωση σε ν-διάστατο χώρο:
Εισαγάγετε την περιγραφή της εικόνας εδώ
σε:
Το w είναι ένα ν-διάστατο κανονικό διάνυσμα, κάθετο στο υπερεπίπεδο.
Το x είναι ένα n-διάστατο σημείο που βρίσκεται στο χώρο.
b είναι ο όρος πόλωσης του υπερεπίπεδου.
Η κατακόρυφη απόσταση d από το σημείο x σε αυτό το υπερεπίπεδο μπορεί να υπολογιστεί με τον ακόλουθο τύπο:
Εισαγάγετε την περιγραφή της εικόνας εδώ
这个公式的几何意义是:从点 𝑥 向超平面作垂线,垂足到点 𝑥的距离就是𝑑这个距离也代表了点 𝑥到超平面的“间隔”。在支持向量机中,间隔的大小是非常重要的,因为它与模型的泛化能力有关。SVM的目标是找到这样一个超平面,使得间隔最大化,即所有数据点到这个超平面的距离之和最大。

5.2 Μοντέλο βελτιστοποίησης μέγιστου διαστήματος

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

6. Slack μεταβλητές

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

6.1 Ορισμός μεταβλητών slack

Εισαγάγετε την περιγραφή της εικόνας εδώ

6.2 Τροποποίηση μοντέλου βελτιστοποίησης

Εισαγάγετε την περιγραφή της εικόνας εδώ
这里的 𝐶是一个正的调节参数,用于控制模型对误分类的惩罚程度。𝐶的值越大,模型对误分类的惩罚越重,越倾向于找到没有误分类的解;𝐶的值越小,模型对误分类的容忍度越高,越容易找到间隔更大的解,即使这意味着更多的误分类。

6.3 Μαλακά και σκληρά περιθώρια

  • Σκληρό περιθώριο: Το SVM που δεν εισάγει μεταβλητές χαλαρότητας απαιτεί όλα τα σημεία δεδομένων να βρίσκονται εκτός ή στο όριο του περιθωρίου, δηλαδή, δεν επιτρέπεται λανθασμένη ταξινόμηση.
  • Soft Margin: Το SVM εισάγει μεταβλητές χαλαρές, επιτρέποντας σε ορισμένα σημεία δεδομένων να βρίσκονται εντός του ορίου του περιθωρίου, δηλαδή επιτρέποντας έναν ορισμένο βαθμό εσφαλμένης ταξινόμησης. Κόλπα πυρήνα και χαλαρές μεταβλητές.

6.4 Κόλπα πυρήνα και χαλαρές μεταβλητές

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

7. Συνάρτηση πυρήνα

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

7.1 Βασικές έννοιες της συνάρτησης πυρήνα

Εισαγάγετε την περιγραφή της εικόνας εδώ

7.2 Συναρτήσεις πυρήνα που χρησιμοποιούνται συνήθως

Εισαγάγετε την περιγραφή της εικόνας εδώ

7.3 Ο ρόλος της λειτουργίας πυρήνα

  1. Χειρισμός μη γραμμικών προβλημάτων: Με την αντιστοίχιση σε χώρο υψηλών διαστάσεων, η συνάρτηση πυρήνα κάνει τα δεδομένα που είναι αρχικά γραμμικά αδιαχώριστα σε χώρο χαμηλών διαστάσεων γραμμικά διαχωρίσιμα σε χώρο υψηλών διαστάσεων.
  2. Βελτιώστε την εκφραστική ικανότητα του μοντέλου: Διαφορετικές συναρτήσεις πυρήνα μπορούν να συλλάβουν διαφορετικά χαρακτηριστικά των δεδομένων και να βελτιώσουν την εκφραστική ικανότητα του μοντέλου.
  3. Μειώστε την υπολογιστική πολυπλοκότητα: Η χρήση συναρτήσεων πυρήνα μπορεί να αποφύγει τον άμεσο υπολογισμό σε χώρο υψηλών διαστάσεων, μειώνοντας έτσι την υπολογιστική πολυπλοκότητα.