Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow. Aurélien Géron
das Gradientenverfahren bei einem logistischen Regressionsmodell in einem lokalen Minimum stecken bleiben?
4 Führen alle Algorithmen für das Gradientenverfahren zum gleichen Modell, vorausgesetzt, sie laufen lange genug?
5 Nehmen wir an, Sie verwenden das Batch-Gradientenverfahren und plotten den Validierungsfehler in jeder Epoche. Was passiert vermutlich, wenn der Validierungsfehler ständig steigt? Wie können Sie dies beheben?
6 Ist es eine gute Idee, das Mini-Batch-Gradientenverfahren sofort zu unterbrechen, sobald der Validierungsfehler steigt?
7 Welcher der besprochenen Algorithmen für das Gradientenverfahren erreicht die Umgebung der optimalen Lösung am schnellsten? Welcher konvergiert? Wie können Sie auch die übrigen konvergieren lassen?
8 Sie verwenden eine polynomielle Regression, plotten die Lernkurven und bemerken, dass es zwischen dem Trainingsfehler und dem Validierungsfehler einen großen Unterschied gibt. Was passiert? Nennen Sie drei Möglichkeiten, dies zu beheben.
9 Bei der Ridge-Regression bemerken Sie, dass der Trainingsfehler und der Validierungsfehler beinahe gleich und recht hoch sind. Krankt dieses Modell an einem hohen Bias oder an einer hohen Varianz? Sollten Sie den Regularisierungsparameter α erhöhen oder senken?
10 Welche Gründe sprechen für folgende Verfahren?Ridge-Regression anstelle einer einfachen linearen Regression (d.h. ohne Regularisierung)?Lasso anstelle einer Ridge-Regression?Elastic Net anstelle von Lasso?
11 Angenommen, Sie möchten Bilder als innen/außen und Tag/Nacht klassifizieren. Sollten Sie zwei Klassifikatoren mit logistischer Regression oder einen Klassifikator mit Softmax-Regression erstellen?
12 Implementieren Sie das Batch-Gradientenverfahren mit Early Stopping für die Softmax-Regression (ohne Scikit-Learn).
Lösungen zu diesen Aufgaben finden Sie in Anhang A.
KAPITEL 5
Support Vector Machines
Eine Support Vector Machine (SVM) ist ein mächtiges und flexibles Machine-Learning-Modell, mit dem Sie sowohl lineare als auch nichtlineare Klassifikationsaufgaben, Regression und sogar die Erkennung von Ausreißern bewältigen können. Es gehört zu den beliebtesten Modellen, und deshalb sollte jeder mit etwas Interesse an Machine Learning die SVM in seinem Repertoire haben. SVMs sind besonders zur Klassifikation komplexer Datensätze kleiner oder mittlerer Größe geeignet.
In diesem Kapitel werden Grundbegriffe zu SVMs, wie man sie verwendet und ihre Funktionsweise erklärt.
Lineare Klassifikation mit SVMs
Der SVMs zugrunde liegende Gedanke lässt sich am besten anhand einiger Bilder erläutern. Abbildung 5-1 zeigt einen Teil des Iris-Datensatzes, der am Ende von Kapitel 4 erstmals erwähnt wurde. Die zwei Kategorien lassen sich sehr leicht mit einer Geraden voneinander trennen (sie sind linear separierbar). Das Diagramm auf der linken Seite zeigt die Entscheidungsgrenzen dreier möglicher linearer Klassifikatoren. Das als gestrichelte Linie dargestellte Modell ist so schlecht, dass es die Kategorien nicht einmal ordentlich voneinander trennt. Die zwei übrigen Modelle funktionieren auf dem Trainingsdatensatz ausgezeichnet, aber ihre Entscheidungsgrenzen befinden sich sehr nah an den Datenpunkten, sodass diese Modelle bei neuen Daten vermutlich nicht besonders gut abschneiden werden. Die durchgezogene Linie im Diagramm auf der rechten Seite dagegen stellt die Entscheidungsgrenze eines SVM-Klassifikators dar; diese Linie separiert die beiden Kategorien nicht nur, sie hält auch den größtmöglichen Abstand zu den Trainingsdatenpunkten ein. Sie können sich einen SVM-Klassifikator als die breitestmögliche Straße zwischen den Kategorien vorstellen (hier als parallele gestrichelte Linien dargestellt). Dies bezeichnet man auch als Large-Margin-Klassifikation.
Abbildung 5-1: Large-Margin-Klassifikation
Beachten Sie, dass das Hinzufügen neuer Trainingsdaten »abseits der Straße« die Entscheidungsgrenze überhaupt nicht beeinflusst: Sie wird ausschließlich durch die Datenpunkte am Rand der Straße determiniert (oder »gestützt«). Diese Datenpunkte nennt man deshalb auch die Stützvektoren (engl. Support Vectors) (diese sind in Abbildung 5-1 durch Kreise markiert).
Abbildung 5-2: Empfindlichkeit für Skalierung der Merkmale
|
SVMs reagieren empfindlich auf die Skalierung der Merkmale, wie Sie in Abbildung 5-2 sehen: Im linken Diagramm ist die vertikale Skala deutlich größer als die horizontale. Daher ist die breitestmögliche Straße nahezu horizontal. Nach Skalieren der Merkmale (z.B. mit dem StandardScaler in Scikit-Learn), sieht die Entscheidungsgrenze deutlich besser aus (auf der rechten Seite). |
Soft-Margin-Klassifikation
Wenn wir voraussetzen, dass sich sämtliche Datenpunkte abseits der Straße und auf der richtigen Straßenseite befinden, nennt man dies Hard-Margin-Klassifikation. Bei der Hard-Margin-Klassifikation treten aber zwei Probleme auf: Erstens funktioniert sie nur, wenn die Daten linear separierbar sind. Zweitens ist sie recht anfällig für Ausreißer. Abbildung 5-3 zeigt den Iris-Datensatz mit nur einem zusätzlichen Ausreißer: Auf der linken Seite ist das Finden eines strengen Margins unmöglich, auf der rechten führt der zusätzliche Punkt zu einer deutlich anderen Trennlinie als der in Abbildung 5-1 ohne den Ausreißer, und das Modell verallgemeinert deshalb nicht so gut.
Abbildung 5-3: Anfälligkeit der Hard-Margin-Klassifikation für Ausreißer
Um diesen Schwierigkeiten aus dem Weg zu gehen, ist ein etwas flexibleres Modell vorzuziehen. Dabei gilt es, eine gute Balance zwischen der größtmöglichen Straßenbreite und einer begrenzten Anzahl von Margin-Verletzungen (also Datenpunkten, die mitten auf der Straße oder sogar auf der falschen Seite landen) herzustellen. Dies bezeichnet man als Soft-Margin-Klassifikation.
Beim Erstellen eines SVM-Modells mit Scikit-Learn können wir eine Reihe von Hyperparametern angeben. C ist einer davon. Setzen wir ihn auf einen niedrigen Wert, landen wir bei dem Modell, das in Abbildung 5-4 links zu sehen ist. Mit einem hohen Wert erhalten wir das Modell auf der rechten Seite. Verletzungen des Margins sind schlecht. Es ist im Allgemeinen besser, nur wenige von ihnen zu haben. In diesem Fall besitzt das Modell auf der linken Seite viele Verletzungen des Margins, wird aber vermutlich besser verallgemeinern.