Praxiseinstieg Machine Learning mit Scikit-Learn, Keras und TensorFlow. Aurélien Géron. Читать онлайн. Newlib. NEWLIB.NET

Автор: Aurélien Géron
Издательство: Bookwire
Серия:
Жанр произведения: Математика
Год издания: 0
isbn: 9783960103400
Скачать книгу
18) angegangen. Dabei handelt es sich um einen Zweig des Machine Learning, der Agenten trainiert (zum Beispiel Bots), um die Aktionen auszuwählen, die mit der Zeit in einer gegebenen Umgebung (wie dem Spiel) ihre Belohnungen maximieren (beispielsweise kann ein Bot immer dann eine Belohnung erhalten, wenn der Spieler Lebenspunkte verliert). Das berühmte AlphaGo-Programm, das den Weltmeister im Go geschlagen hat, wurde mithilfe von RL gebaut.

      Diese Liste könnte immer weiter fortgeführt werden, aber hoffentlich haben Sie auch so schon einen Eindruck von der unglaublichen Breite und Komplexität der Aufgaben erhalten, die Machine Learning angehen kann, und die Art von Techniken, die Sie dafür verwenden würden.

       Unterschiedliche Machine-Learning-Systeme

      Es gibt so viele verschiedene Arten von Machine-Learning-Systemen, dass es hilfreich ist, die Verfahren nach folgenden Kriterien in grobe Kategorien einzuteilen:

       Ob sie mit menschlicher Überwachung trainiert werden oder nicht (überwachtes, unüberwachtes und halbüberwachtes Lernen sowie Reinforcement Learning).

       Ob sie inkrementell dazulernen können oder nicht (Online-Learning gegenüber Batch-Learning).

       Ob sie einfach neue Datenpunkte mit den bereits bekannten Datenpunkten vergleichen oder stattdessen Muster in den Trainingsdaten erkennen, um ein Vorhersagemodell aufzubauen, wie es auch Wissenschaftler tun (instanzbasiertes gegenüber modellbasiertem Lernen).

      Diese Kriterien schließen sich nicht gegenseitig aus; sie lassen sich beliebig miteinander kombinieren. Zum Beispiel kann ein moderner Spamfilter ständig mit einem neuronalen Netzwerkmodell mit Beispielen für Spam und Ham dazulernen; damit ist er ein modellbasiertes, überwachtes Onlinelernsystem.

      Betrachten wir jedes dieser Kriterien etwas genauer.

       Überwachtes/unüberwachtes Lernen

      Machine-Learning-Systeme lassen sich entsprechend der Menge und Art der Überwachung beim Trainieren einordnen. Es gibt dabei vier größere Kategorien: überwachtes Lernen, unüberwachtes Lernen, halbüberwachtes Lernen und verstärkendes Lernen (Reinforcement Learning).

       Überwachtes Lernen

      Beim überwachten Lernen enthalten die dem Algorithmus gelieferten Trainingsdaten die gewünschten Lösungen, genannt Labels (siehe Abbildung 1-5).

       Abbildung 1-5: Ein Trainingsdatensatz mit Labels zur Spamerkennung (ein Beispiel für überwachtes Lernen)

      Klassifikation ist eine typische überwachte Lernaufgabe. Spamfilter sind hierfür ein gutes Beispiel: Sie werden mit vielen Beispiel-E-Mails und deren Kategorie (Spam oder Ham) trainiert und müssen lernen, neue E-Mails zu klassifizieren.

      Eine weitere typische Aufgabe ist, eine numerische Zielgröße vorherzusagen, wie etwa den Preis eines Autos auf Grundlage gegebener Merkmale (gefahrene Kilometer, Alter, Marke und so weiter), den sogenannten Prädiktoren. Diese Art Aufgabe bezeichnet man als Regression (siehe Abbildung 1-6).1 Um das System zu trainieren, benötigt es viele Beispielfahrzeuge mitsamt ihren Prädiktoren und Labels (also den Preisen).

image Beim Machine Learning ist ein Attribut ein Datentyp (z.B. »Kilometerzahl«), wohingegen ein Merkmal je nach Kontext mehrere Bedeutungen haben kann. Meist ist damit ein Attribut und dessen Wert gemeint (z.B. »Kilometerzahl = 15000«). Allerdings verwenden viele Anwender Attribut und Merkmal synonym.

      Viele Regressionsalgorithmen lassen sich auch zur Klassifikation einsetzen und umgekehrt. Zum Beispiel ist die logistische Regression eine verbreitete Methode für Klassifikationsaufgaben, da sie die Wahrscheinlichkeit der Zugehörigkeit zu einer bestimmten Kategorie als Ergebnis liefert (z.B. 20%ige Chance für Spam).

      Abbildung 1-6: Ein Regressionsproblem: Sage mithilfe eines Eingangsmerkmals einen Wert voraus (es gibt meist mehrere Eingangsmerkmale und manchmal auch mehrere Ausgangsmerkmale).

      Hier sind ein paar der wichtigsten (in diesem Buch besprochenen) überwachten Lernalgorithmen:

       k-nächste-Nachbarn

       lineare Regression

       logistische Regression

       Support Vector Machines (SVMs)

       Entscheidungsbäume und Random Forests

       neuronale Netzwerke2

       Unüberwachtes Lernen

      Beim unüberwachten Lernensind die Trainingsdaten, wie der Name vermuten lässt, nicht gelabelt (siehe Abbildung 1-7). Das System versucht, ohne Anleitung zu lernen.

       Abbildung 1-7: Ein Trainingsdatensatz ohne Labels für unüberwachtes Lernen

      Hier sind ein paar der wichtigsten unüberwachten Lernalgorithmen (wir werden die Dimensionsreduktion in Kapitel 8 und Kapitel 9 behandeln):

       Clustering– k-Means– DBSCAN– hierarchische Cluster-Analyse (HCA)

       Anomalieerkennung und Novelty Detection– One-Class-SVM– Isolation Forest

       Visualisierung und Dimensionsreduktion– Hauptkomponentenzerlegung (PCA)– Kernel-PCA– Locally-Linear Embedding (LLE)– t-verteiltes Stochastic Neighbor Embedding (t-SNE)

       Lernen mit Assoziationsregeln– Apriori– Eclat

      Nehmen wir an, Sie hätten eine Menge Daten über Besucher Ihres Blogs. Sie möchten einen Clustering-Algorithmus verwenden, um Gruppen ähnlicher Besucher zu entdecken (siehe Abbildung 1-8). Sie verraten dem Algorithmus nichts darüber, welcher Gruppe ein Besucher angehört, er findet die Verbindungen ohne Ihr Zutun heraus. Beispielsweise könnte der Algorithmus bemerken, dass 40% Ihrer Besucher Männer mit einer Vorliebe für Comics sind, die Ihr Blog abends lesen, 20% dagegen sind junge Science-Fiction-Fans, die am Wochenende vorbeischauen. Wenn Sie ein hierarchisches Cluster-Verfahren verwenden, können Sie sogar jede Gruppe in weitere Untergruppen zerlegen, was hilfreich sein kann, wenn Sie Ihre Blogartikel auf diese Zielgruppen zuschneiden möchten.

       Abbildung 1-8: Clustering

      Algorithmen zur Visualisierung sind ebenfalls ein gutes Beispiel für unüberwachtes Lernen: