Formel 5-11: Vorhersagen mit einer Kernel-SVM treffen
Weil α(i) ≠ 0 nur für die Stützvektoren gilt, muss für Vorhersagen das Skalarprodukt zwischen dem neuen Eingabevektor x(n) und den Stützvektoren anstatt mit sämtlichen Trainingsdatenpunkten berechnet werden. Natürlich müssen Sie auch hier den Bias-Term
Formel 5-12: Berechnen des Bias-Terms mithilfe des Kerneltricks
Sollten Sie hiervon jetzt Kopfschmerzen bekommen haben, ist das völlig normal: Dies ist eine Nebenwirkung des Kerneltricks.
Online-SVMs
Bevor wir dieses Kapitel beenden, schauen wir uns noch kurz Online-SVM-Klassifikatoren an (zur Erinnerung: Online-Learning bedeutet, inkrementell zu lernen, üblicherweise beim Eintreffen neuer Daten).
Bei linearen SVM-Klassifikatoren lässt sich das Gradientenverfahren einsetzen (z.B. mit der Klasse SGDClassifier), um die vom primalen Problem abgeleitete Kostenfunktion in Formel 5-13 zu minimieren. Leider konvergiert diese wesentlich langsamer als die auf QP basierenden Methoden.
Formel 5-13: Kostenfunktion eines linearen SVM-Klassifikators
Die erste Summe in dieser Kostenfunktion verleiht dem Modell einen kleinen Gewichtsvektor w, der den Margin vergrößert. Die zweite Summe berechnet die Gesamtheit sämtlicher Verletzungen des Margins. Die Verletzung des Margins ist für einen Datenpunkt dann gleich 0, wenn er abseits der Straße und auf der richtigen Seite liegt, andernfalls ist der Verletzungsbetrag proportional zur Entfernung von der richtigen Straßenseite. Das Minimieren dieses Terms stellt sicher, dass das Modell so wenige und so kleine Verletzungen wie möglich zulässt.
Hinge Loss
Die Funktion max(0, 1 – t) nennt man die Hinge-Loss-Funktion (siehe unten). Sie ist gleich 0 für t
Es ist ebenfalls möglich, Online-Kernel-SVMs zu implementieren – beispielsweise mit den Methoden »Incremental and Decremental SVM Learning« (https://homl.info/17)8 oder »Fast Kernel Classifiers with Online and Active Learning« (https://homl.info/18)9. Diese sind allerdings in Matlab und C++ implementiert. Für größere nichtlineare Aufgaben sollten Sie stattdessen neuronale Netze in Betracht ziehen (siehe Teil II).
Übungen
1 Was ist die den Support Vector Machines zugrunde liegende Idee?
2 Was ist ein Stützvektor?
3 Warum ist es wichtig, beim Verwenden von SVMs die Eingabedaten zu skalieren?
4 Kann ein SVM-Klassifikator einen Konfidenzwert ausgeben, wenn er einen Datenpunkt klassifiziert? Wie sieht es mit einer Wahrscheinlichkeit aus?
5 Sollten Sie die primale oder die duale Form des SVM-Problems verwenden, um ein Modell mit Millionen Datenpunkten und Hunderten Merkmalen zu trainieren?
6 Nehmen wir an, Sie hätten einen SVM-Klassifikator mit RBF-Kernel trainiert. Es sieht so aus, als würde Underfitting der Trainingsdaten vorliegen: Sollten Sie γ (gamma) erhöhen oder senken? Wie sieht es mit C aus?
7 Wie sollten Sie die QP-Parameter (H, f, A und b) setzen, um ein lineares SVM-Klassifikationsproblem mit Soft-Margin mit einem herkömmlichen QP-Solver zu lösen?
8 Trainieren Sie einen LinearSVC auf linear separierbaren Daten. Trainieren Sie anschließend einen SVC und einen SGDClassifier auf dem gleichen Datensatz. Schauen Sie, ob Sie beide dazu bringen können, ein in etwa gleiches Modell zu berechnen.
9 Trainieren Sie einen SVM-Klassifikator auf dem MNIST-Datensatz. Da SVM-Klassifikatoren binäre Klassifikatoren sind, müssen Sie die One-versus-the-Rest-Strategie einsetzen, um alle zehn Ziffern zu klassifizieren. Sie müssen eventuell zur Optimierung der Hyperparameter kleinere Datensätze zur Validierung verwenden, um den Vorgang zu beschleunigen. Was für eine Genauigkeit erreichen Sie?
10 Trainieren Sie einen SVM-Regressor auf dem Datensatz zu Immobilienpreisen in Kalifornien.
Lösungen zu diesen Aufgaben finden Sie in Anhang A.
Конец ознакомительного фрагмента.
Текст предоставлен ООО «ЛитРес».
Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.