8 Wege, um Ihr maschinelles Lernen in Schwung zu bringen

Von der explorativen Datenanalyse bis hin zum automatisierten maschinellen Lernen: Nutzen Sie diese Techniken, um Ihr Data-Science-Projekt in Gang zu bringen. [...]

Einige der acht im Folgenden beschriebenen Methoden werden Ihren maschinellen Lernprozess drastisch beschleunigen (c) pixabay.com

Müssen Sie Daten klassifizieren oder Ergebnisse vorhersagen? Haben Sie Schwierigkeiten, Ihr maschinelles Lernprojekt auf die Beine zu stellen? Es gibt eine Reihe von Techniken, die Ihnen beim Start behilflich sein können.

Einige der acht im Folgenden beschriebenen Methoden werden Ihren maschinellen Lernprozess drastisch beschleunigen, während andere nicht nur den Prozess beschleunigen, sondern Ihnen auch helfen, ein besseres Modell zu erstellen. Nicht alle dieser Methoden werden für ein bestimmtes Projekt geeignet sein, aber die erste – die explorative Datenanalyse – sollte niemals ausgelassen werden.

Hier sind acht Möglichkeiten, wie Sie Ihr Machine Learning- oder Deep Learning-Projekt in Schwung bringen können.

Beginnen Sie mit der explorativen Datenanalyse

Mit dem Training für maschinelles Lernen zu beginnen, ohne vorher Ihre Daten eingehend untersucht zu haben, ist wie Sex ohne Vorspiel. Es ist eine Menge Aufwand und nicht annähernd so lohnend.

Die explorative Datenanalyse kombiniert grafische und statistische Methoden. Zu den gebräuchlicheren Techniken gehören Histogramme und Box-and-Whisker-Diagramme einzelner Variablen, Streudiagramme von Variablenpaaren und Diagramme der deskriptiven Statistik, z. B. Korrelationen zwischen Variablen als Heatmap-Diagramm der paarweisen Korrelationen.

Die explorative Datenanalyse kann auch Techniken zur Dimensionalitätsreduktion beinhalten, wie z. B. die Hauptkomponentenanalyse (PCA) und die nichtlineare Dimensionalitätsreduktion (NLDR). Bei zeitbasierten Daten möchten Sie auch Liniendiagramme Ihrer Rohvariablen und Statistiken gegen die Zeit aufstellen, was unter anderem saisonale und wochentägliche Schwankungen und anomale Sprünge durch externe Einflüsse wie Stürme und (hust, hust) Epidemien aufzeigen kann.

Explorative Datenanalyse ist mehr als nur eine statistische Grafik. Es ist eine philosophische Herangehensweise an die Datenanalyse, die Ihnen helfen soll, einen offenen Geist zu bewahren, anstatt zu versuchen, die Daten in ein Modell zu pressen. Heutzutage sind viele der Ideen der explorativen Datenanalyse in das Data Mining eingeflossen.

Unsupervised Clusters bilden

Die Clusteranalyse ist ein unüberwachtes Lernproblem, das das Modell auffordert, Gruppen ähnlicher Datenpunkte zu finden. Es gibt mehrere Clustering-Algorithmen, die derzeit verwendet werden und die sich in ihren Eigenschaften leicht unterscheiden. Im Allgemeinen betrachten Clustering-Algorithmen die Metriken oder Abstandsfunktionen zwischen den Merkmalsvektoren der Datenpunkte und gruppieren dann die Punkte, die „nahe“ beieinander liegen. Clustering-Algorithmen funktionieren am besten, wenn sich die Klassen nicht überschneiden.

Eine der gebräuchlichsten Clustering-Methoden ist k-means, die versucht, n Beobachtungen unter Verwendung der euklidischen Abstandsmetrik in k Cluster zu unterteilen, mit dem Ziel, die Varianz (Summe der Quadrate) innerhalb jedes Clusters zu minimieren. Es handelt sich um eine Methode der Vektorquantisierung, die für das Lernen von Merkmalen nützlich ist.

Der Lloyd-Algorithmus (iterative Clusteragglomeration mit Zentroid-Updates) ist die am häufigsten verwendete Heuristik zur Lösung des Problems und ist relativ effizient, garantiert aber keine globale Konvergenz. Um dies zu verbessern, wird der Algorithmus oft mehrmals mit zufälligen anfänglichen Clusterschwerpunkten ausgeführt, die mit den Methoden Forgy oder Random Partition erzeugt wurden.

K-means geht von sphärischen Clustern aus, die trennbar sind, so dass der Mittelwert gegen das Clusterzentrum konvergiert, und geht außerdem davon aus, dass die Reihenfolge der Datenpunkte keine Rolle spielt. Es wird erwartet, dass die Cluster eine ähnliche Größe haben, so dass die Zuordnung zum nächstgelegenen Clusterzentrum die richtige Zuordnung ist.

Wenn k-means Clustering für Sie nicht funktioniert, ziehen Sie die hierarchische Clusteranalyse, Mischungsmodelle oder DBSCAN in Betracht. Ziehen Sie auch andere Arten des unüberwachten Lernens in Betracht, z. B. Autocoder und die Methode der Momente.

Taggen Sie Ihre Daten mit semi-supervised learning

Verschlagwortete Daten sind das A und O beim maschinellen Lernen. Wenn Sie keine getaggten Daten haben, können Sie kein Modell trainieren, um den Zielwert vorherzusagen.

Die einfache, aber teure Antwort darauf ist, alle Daten manuell zu taggen. Der „Witz“ darüber in der akademischen Welt (unter den Professoren) ist, dass Ihre Doktoranden das machen können. (Das ist nicht lustig, wenn Sie ein Doktorand sind.)

Die weniger kostspielige Antwort ist, einige Ihrer Daten manuell zu markieren und dann zu versuchen, den Rest der Zielwerte mit einem oder mehreren Modellen vorherzusagen; dies wird semi-supervised learning genannt. Bei selbsttrainierenden Algorithmen (eine Art des semi-supervised learning) akzeptieren Sie alle vorhergesagten Werte eines einzelnen Modells mit einer Wahrscheinlichkeit über einem bestimmten Schwellenwert und verwenden den nun größeren Trainingsdatensatz, um ein verfeinertes Modell zu erstellen. Dann verwenden Sie dieses Modell für eine weitere Runde von Vorhersagen und iterieren, bis es keine Vorhersagen mehr gibt, die zuverlässig sind. Manchmal funktioniert das Selbsttraining, manchmal wird das Modell durch eine schlechte Vorhersage verfälscht.

Wenn Sie mehrere Modelle erstellen und diese zum gegenseitigen Überprüfen verwenden, können Sie etwas Robusteres entwickeln, z. B. ein Tri-Training. Eine andere Alternative ist die Kombination von semi-supervised learning mit transfer learning von einem bestehenden Modell, das aus anderen Daten erstellt wurde.

Sie können jedes dieser Verfahren selbst implementieren. Alternativ können Sie einen Webdienst mit trainierten Beschriftern wie Amazon SageMaker Ground Truth, Hive Data, Labelbox, Dataloop und Datasaur verwenden.

Hinzufügen ergänzender Datensätze

Externe Daten können oft Licht auf Anomalien in Datensätzen werfen, insbesondere in Zeitseriendatensätzen. Wenn Sie z. B. Wetterdaten zu einem Fahrradverleih-Datensatz hinzufügen, können Sie viele Abweichungen erklären, die andernfalls rätselhaft gewesen wären, wie z. B. einen starken Rückgang der Vermietungen während Regenfällen.

Die Vorhersage von Einzelhandelsumsätzen bietet weitere gute Beispiele. Verkäufe, Konkurrenzangebote, Änderungen in der Werbung, wirtschaftliche Ereignisse und das Wetter können sich alle auf die Verkäufe auswirken. Die kurze Zusammenfassung: Wenn die Daten keinen Sinn ergeben, fügen Sie etwas Kontext hinzu, und vielleicht wird dann alles klarer.

Versuchen Sie automatisiertes maschinelles Lernen

Früher bestand die einzige Möglichkeit, das beste Modell für Ihre Daten zu finden, darin, jedes mögliche Modell zu trainieren und zu sehen, welches am besten abschneidet. Für viele Arten von Daten, insbesondere für tabellarische Daten mit Tags, können Sie ein AutoML-Tool (automatisiertes maschinelles Lernen) auf den Datensatz richten und später zurückkommen, um gute Antworten zu erhalten. Manchmal ist das beste Modell ein Ensemble von anderen Modellen, die für die Inferenz kostspielig sein können, aber oft ist das beste einfache Modell fast so gut wie das Ensemble und viel billiger in der Ausführung.

Unter der Haube tun AutoML-Dienste oft mehr, als nur blindlings jedes geeignete Modell auszuprobieren. Beispielsweise erstellen einige automatisch normalisierte und angepasste Feature-Sets, imputieren fehlende Werte, lassen korrelierte Features weg und fügen verzögerte Spalten für Zeitreihenprognosen hinzu. Eine weitere optionale Aktivität ist die Durchführung einer Hyperparameter-Optimierung für einige der besten Modelle, um sie weiter zu verbessern. Um das bestmögliche Ergebnis in der zur Verfügung stehenden Zeit zu erhalten, beenden einige AutoML-Dienste das Training von Modellen, die sich nicht wesentlich verbessern, und widmen einen größeren Teil ihrer Zyklen den Modellen, die am vielversprechendsten aussehen.

Anpassen eines trainierten Modells mit Transfer-Lernen

Das Training eines großen neuronalen Netzwerks von Grund auf erfordert in der Regel eine große Menge an Daten (Millionen von Trainingselementen sind nicht ungewöhnlich) und erhebliche Zeit- und Rechenressourcen (mehrere Wochen unter Verwendung mehrerer Server-GPUs). Eine leistungsstarke Abkürzung, das so genannte Transfer-Lernen, besteht darin, ein trainiertes neuronales Netzwerk anzupassen, indem ein paar neue Schichten über dem Netzwerk mit neuen Daten trainiert werden, oder die Merkmale aus dem Netzwerk zu extrahieren und diese zum Trainieren eines einfachen linearen Klassifizierers zu verwenden.

Dies kann mit Hilfe eines Cloud-Dienstes wie Azure Custom Vision oder Custom Language Understanding geschehen, oder durch die Nutzung von Bibliotheken mit trainierten neuronalen Netzwerken, die z. B. mit TensorFlow oder PyTorch erstellt wurden. Transfer-Lernen oder Feinabstimmung kann oft in Minuten mit einer einzigen GPU abgeschlossen werden.

Probieren Sie Deep-Learning-Algorithmen aus einem „Modell-Zoo“ aus

Selbst wenn Sie mit Ihrem bevorzugten Cloud-Dienst oder Deep-Learning-Framework das benötigte Modell nicht einfach mit Transfer-Learning erstellen können, können Sie sich vielleicht trotzdem die Mühe sparen, ein tiefes neuronales Netzwerkmodell von Grund auf zu entwerfen und zu trainieren. Die meisten großen Frameworks haben einen Modell-Zoo, der umfangreicher ist als ihre Modell-APIs. Es gibt sogar einige Websites, die Modell-Zoos für mehrere Frameworks oder für jedes Framework, das eine bestimmte Darstellung verarbeiten kann, wie z. B. ONNX, verwalten.

Viele der Modelle, die Sie in Modell-Zoos finden, sind vollständig trainiert und können sofort verwendet werden. Einige sind jedoch teilweise trainierte Schnappschüsse, deren Gewichte als Startpunkte für das Training mit Ihren eigenen Datensätzen nützlich sind.

Optimieren Sie die Hyperparameter Ihres Modells

Das erstmalige Trainieren eines Modells ist normalerweise nicht das Ende des Prozesses. Modelle für maschinelles Lernen können oft durch die Verwendung verschiedener Hyperparameter verbessert werden, und die besten werden durch die Optimierung oder Abstimmung der Hyperparameter gefunden. Nein, das ist nicht wirklich eine Starthilfe, aber es ist eine Möglichkeit, von einem anfänglich nicht so guten Modell zu einem viel besseren Modell zu gelangen.

Hyperparameter sind Parameter außerhalb des Modells, die zur Steuerung des Lernprozesses verwendet werden. Parameter innerhalb des Modells, wie z. B. Knotengewichte, werden während des Modelltrainings gelernt. Die Hyperparameter-Optimierung ist im Wesentlichen der Prozess der Suche nach dem besten Satz von Hyperparametern für ein gegebenes Modell. Jeder Schritt in der Optimierung beinhaltet das erneute Trainieren des Modells und das Zurückerhalten eines Verlustfunktionswertes.

Welche Hyperparameter wichtig sind, hängt vom Modell und dem im Modell verwendeten Optimierer ab. Zum Beispiel ist die Lernrate ein üblicher Hyperparameter für neuronale Netze, außer wenn der Optimierer die Kontrolle über die Lernrate von Epoche zu Epoche übernimmt. Bei einem Support Vector Machine-Klassifikator mit einem RBF-Kernel (Radial Basis Funciton) könnten die Hyperparameter eine Regularisierungskonstante und eine Kernelkonstante sein.

Hyperparameter-Optimierer können eine Reihe von Suchalgorithmen verwenden. Traditionell ist die Gittersuche. Einerseits erfordert die Gittersuche viele Trainings, um alle Kombinationen von mehreren Hyperparametern abzudecken, aber andererseits können alle Trainings parallel ausgeführt werden, wenn Sie über genügend Rechenressourcen verfügen. Die Zufallssuche ist manchmal effizienter und lässt sich auch leicht parallelisieren. Andere Alternativen sind Bayes’sche Optimierung, Gradientenabstieg, evolutionäre Optimierung und Frühstopp-Algorithmen.

Zusammenfassend lässt sich sagen, dass Sie Ihren Modellbildungsprozess mit einer explorativen Datenanalyse beginnen sollten. Verwenden Sie unüberwachtes Lernen, um mehr über Ihre Daten und Merkmale zu erfahren. Probieren Sie AutoML aus, um viele Modelle schnell auszuprobieren. Wenn Sie ein Modell für ein tiefes neuronales Netzwerk benötigen, probieren Sie zuerst Transfer Learning oder einen Modell-Zoo aus, bevor Sie versuchen, Ihr eigenes Netzwerk von Grund auf zu entwerfen und zu trainieren. Wenn Sie ein Modell gefunden haben, das Ihrer Meinung nach recht gut aussieht, versuchen Sie, es mit Hyperparameter-Tuning zu verbessern. Dann können Sie das Modell in der Produktion ausprobieren und es überwachen.

Übrigens sind Sie an diesem Punkt noch nicht wirklich fertig. Im Laufe der Zeit werden sich die Daten oder das Konzept aufgrund von Ereignissen in der realen Welt verändern, und Sie müssen Ihr Modell verfeinern und neu trainieren. Vielleicht stellen Sie sogar fest, dass ein anderer Modelltyp für die neuen Daten besser geeignet ist.

Wie schön wäre es, wenn Sie ein Modell einmal erstellen könnten und damit fertig wären?

*Martin Heller ist ein mitwirkender Redakteur und Rezensent für InfoWorld. Früher war er als Berater für Web- und Windows-Programmierung tätig und entwickelte von 1986 bis 2010 Datenbanken, Software und Websites. In jüngerer Zeit war er als VP für Technologie und Bildung bei Alpha Software sowie als Vorsitzender und CEO bei Tubifi tätig.


Mehr Artikel

News

Internationale Konferenz zeigt den Weg zur datengetriebenen Zukunft

Am 13. November 2024 fand im Bundesministerium für Klimaschutz, Umwelt, Energie, Mobilität, Innovation und Technologie (BMK) die Global Data Spaces Connect 2024 (GDSC24) statt, eine internationale Plattform, die Akteur:innen aus Wirtschaft, Wissenschaft und öffentlicher Verwaltung zu einem Austausch über den aktuellen Stand und die Zukunft der Datenräume (Data Spaces) zusammenbrachte. […]

News

Bad Bots werden immer menschenähnlicher

Bei Bad Bots handelt es sich um automatisierte Softwareprogramme, die für die Durchführung von Online-Aktivitäten im großen Maßstab entwickelt werden. Bad Bots sind für entsprechend schädliche Online-Aktivitäten konzipiert und können gegen viele verschiedene Ziele eingesetzt werden, darunter Websites, Server, APIs und andere Endpunkte. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*