Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow. Aurélien Géron

Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow - Aurélien Géron


Скачать книгу
der die Scores jeder Kategorie für den Datenpunkt x enthält.

       σ(s(x))k ist die anhand der Scores geschätzte Wahrscheinlichkeit dafür, dass der Datenpunkt x zur Kategorie k gehört.

      Wie bei der Klassifikation mit logistischer Regression sagt die Softmax-Regression die Kategorie mit der höchsten geschätzten Wahrscheinlichkeit vorher (die einfach die Kategorie mit dem höchsten Score ist), wie Formel 4-21 zeigt.

       Formel 4-21: Vorhersage eines Klassifikators mit Softmax-Regression

image

       Der Operator argmax liefert den Wert einer Variablen, der eine Funktion maximiert. In dieser Gleichung liefert er denjenigen Wert für k, für den die geschätzte Wahrscheinlichkeit σ(s(x))k maximal wird.

image Die Klassifikation mit Softmax-Regression sagt zeitgleich nur eine Kategorie vorher (sie arbeitet mit mehreren Kategorien, nicht mehreren Ausgaben). Sie sollte also nur verwendet werden, wenn sich die Kategorien gegenseitig ausschließen, wie etwa bei Pflanzenarten. Sie können sie also nicht dazu verwenden, um mehrere Personen im gleichen Bild zu erkennen.

      Da Sie nun wissen, wie das Modell Wahrscheinlichkeiten schätzt und Vorhersagen trifft, werfen wir einen Blick auf das Trainieren. Das Ziel ist ein Modell, das die Zielkategorie mit einer hohen Wahrscheinlichkeit schätzt (und konsequenterweise eine niedrige Wahrscheinlichkeit für die übrigen Kategorien). Die als Kreuzentropie bezeichnete Kostenfunktion in Formel 4-22 zu minimieren, sollte dazu beitragen, da sie das Modell für niedrige Wahrscheinlichkeiten der Zielkategorie abstraft. Mit der Kreuzentropie wird häufig gemessen, wie gut die Wahrscheinlichkeiten der Kategorien mit den Zielkategorien übereinstimmen.

       Formel 4-22: Die Kreuzentropie als Kostenfunktion

image

      Hier gilt:

        ist die Zielwahrscheinlichkeit dafür, dass die i. Instanz zur Kategorie k gehört. Im Allgemeinen ist sie entweder 1 oder 0 – abhängig davon, ob der Datenpunkt zur Kategorie gehört oder nicht.

      Wenn es nur zwei Kategorien gibt (K = 2), entspricht diese Kostenfunktion der Kostenfunktion der logistischen Regression (Log Loss, siehe Formel 4-17).

       Kreuzentropie

      Die Kreuzentropie stammt aus der Informationstheorie. Nehmen wir einmal an, Sie möchten jeden Tag Informationen über das Wetter effizient übermitteln. Wenn es acht Möglichkeiten gibt (Sonne, Regen und so weiter), könnten Sie jede Möglichkeit durch 3 Bits codieren, da 23 = 8 ergibt. Wenn Sie allerdings wissen, dass es fast jeden Tag sonnig ist, wäre es viel effizienter, »Sonne« als ein Bit (0) zu codieren und die anderen sieben Möglichkeiten durch je vier Bits auszudrücken (die alle mit 1 beginnen). Die Kreuzentropie bestimmt die durchschnittliche Anzahl Bits, die Sie pro Möglichkeit übermitteln. Wenn Ihre Annahme über das Wetter perfekt ist, entspricht die Kreuzentropie der Entropie des Wetters (d.h. dessen intrinsischer Unvorhersagbarkeit). Sind Ihre Annahmen aber falsch (z.B. weil es häufig regnet), erhöht sich die Kreuzentropie um einen Betrag, den man als Kullback-Leibler-Divergenz (KL-Divergenz) bezeichnet.

      Die Kreuzentropie zweier Wahrscheinlichkeitsverteilungen p und q ist als

image

      definiert (zumindest wenn die Verteilungen diskret sind). Mehr Informationen dazu finden Sie in meinem Video zum Thema (https://homl.info/xentropy).

      Der Gradientenvektor dieser Kostenfunktion nach θ(k) ist in Formel 4-23 geschrieben.

       Formel 4-23: Gradientenvektor der Kreuzentropie für Kategorie k

image

      Nun können Sie den Gradientenvektor für jede Kategorie berechnen und über das Gradientenverfahren (oder einen anderen Optimierungsalgorithmus) die Parametermatrix Θ ermitteln, für die die Kostenfunktion minimal wird.

      Verwenden wir die Softmax-Regression, um die Iris-Blüten in alle drei Kategorien einzuteilen. Die Scikit-Learn-Klasse LogisticRegression nutzt standardmäßig die One-versus-the-Rest-Strategie, wenn Sie diese mit mehr als zwei Kategorien trainieren. Sie können aber den Hyperparameter multi_class auf "multinomial" setzen, um stattdessen die Softmax-Regression zu verwenden. Sie müssen außerdem einen Solver angeben, der die Softmax-Regression unterstützt, beispielsweise den Solver "lbfgs" (Details dazu finden Sie in der Dokumentation von Scikit-Learn). Dieser verwendet automatisch eine 2-Regularisierung, die Sie über den Hyperparameter C steuern können.

      X = iris["data"][:, (2, 3)] # Länge und Breite der Kronblätter

      y = iris["target"]

      softmax_reg = LogisticRegression(multi_class="multinomial",solver="lbfgs", C=10)

      softmax_reg.fit(X, y)

      Das nächste Mal, wenn Sie eine Iris-Blüte mit 5 cm langen und 2 cm breiten Kronblättern finden, können Sie Ihr Modell fragen, welche Art Iris dies ist. Es sollte als Antwort Iris virginica (Kategorie 2) mit einer Wahrscheinlichkeit von 94,2% geben (oder Iris versicolor mit einer Wahrscheinlichkeit von 5,8%):

      >>> softmax_reg.predict([[5, 2]])

      array([2])

      >>> softmax_reg.predict_proba([[5, 2]])

      array([[6.38014896e-07, 5.74929995e-02, 9.42506362e-01]])

      Abbildung 4-25 zeigt die sich dabei ergebenden Entscheidungsgrenzen als Hintergrundfarben. Die Entscheidungsgrenzen zwischen zwei Kategorien sind stets linear. Die Abbildung zeigt auch die Wahrscheinlichkeiten für die Kategorie Iris versicolor als geschwungene Linien (z.B. steht die mit 0,450 beschriftete Linie für eine Wahrscheinlichkeit von 45%). Das Modell kann eine Kategorie vorhersagen, die eine geschätzte Wahrscheinlichkeit unter 50% hat. Beispielsweise ist an dem Punkt, an dem sich alle drei Linien treffen, die Wahrscheinlichkeit für alle Kategorien die gleiche, nämlich 33%.

       Abbildung 4-25: Entscheidungsgrenzen bei der Softmax-Regression

       Übungen

      1 Welchen Trainingsalgorithmus für die lineare Regression können Sie verwenden, wenn Sie einen Trainingsdatensatz mit Millionen Merkmalen haben?

      2 Nehmen wir an, dass die Merkmale in Ihrem Trainingsdatensatz unterschiedlich skaliert sind. Welche Algorithmen würden


Скачать книгу