Was ist automatisiertes maschinelles Lernen (AutoML)?

GILT FÜR: Python SDK azure-ai-ml v2 (aktuell)

Automatisiertes maschinelles Lernen, auch als automatisiertes ML oder AutoML bezeichnet, ist der Prozess der Automatisierung von zeitaufwändigen, iterativen Aufgaben bei der Entwicklung eines Machine Learning-Modells. Es versetzt Data Scientists, Analysten und Entwickler in die Lage, ML-Modelle mit hoher Skalierbarkeit, Effizienz und Produktivität zu erstellen und gleichzeitig die Modellqualität zu erhalten. Automatisiertes maschinelles Lernen in Azure Machine Learning basiert auf einem Durchbruch der Microsoft Research-Abteilung.

Wie funktioniert automatisiertes maschinelles Lernen?

Während des Trainings erstellt Azure Machine Learning parallel eine Reihe von Pipelines, die unterschiedliche Algorithmen und Parameter für Sie ausprobieren. Der Dienst durchläuft die ML-Algorithmen iterativ im Zusammenspiel mit der jeweiligen Featureauswahl, wobei für jede Iteration ein Modell mit einer Trainingsbewertung erzeugt wird. Je besser die Bewertung für die zu optimierende Metrik ist, desto besser wird das Modell als „passend“ für Ihre Daten angesehen. Die Ausführung wird beendet, sobald die im Experiment definierten Beendigungskriterien erreicht werden.

Mithilfe von Azure Machine Learning können Sie automatisierte ML-Trainingsexperimente mit den folgenden Schritten entwerfen und ausführen:

  1. Bestimmen Sie das zu lösende ML-Problem: Klassifizierung, Vorhersage, Regression, maschinelles Sehen oder NLP.

  2. Entscheiden Sie sich für einen Code First-Ansatz oder eine codefreie Studiowebumgebung: Benutzer, die den Code First-Ansatz bevorzugen, können das Azure Machine Learning SDKv2 oder die Azure Machine Learning CLIv2 nutzen. Unter Tutorial: Trainieren eines Objekterkennungsmodells mit AutoML und Python finden Sie Informationen zu den ersten Schritten. Benutzer, die eine Umgebung mit wenig oder gar keinem Code bevorzugen, können die Webschnittstelle in Azure Machine Learning Studio unter https://ml.azure.com verwenden. Unter Tutorial: Erstellen eines Klassifizierungsmodells mit automatisiertem maschinellem Lernen in Azure Machine Learning finden Sie Informationen zu den ersten Schritten.

  3. Geben Sie die Quelle der bezeichneten Trainingsdaten an: Sie können Ihre Daten auf viele verschiedene Arten in Azure Machine Learning einspeisen.

  4. Konfigurieren der automatisierten Machine Learning-Parameter, die die Anzahl der Iterationen über verschiedene Modelle, die Hyperparametereinstellungen, erweiterte Vorverarbeitung/Featurebereitstellung und die Metriken bestimmen, die bei der Ermittlung des besten Modells zu berücksichtigen sind.

  5. Übermitteln des Trainingsauftrags

  6. Überprüfen der Ergebnisse

Dieser Prozess wird anhand des folgenden Diagramms veranschaulicht. Automated Machine learning

Sie können die protokollierten Auftragsinformationen auch untersuchen. Sie enthalten die während des Auftrags erfassten Metriken. Bei dem Trainingsauftrag wird ein serialisiertes Python-Objekt (.pkl-Datei) generiert, das die Vorabverarbeitung des Modells und der Daten enthält.

Obwohl die Modellerstellung automatisiert ist, können Sie auch ermitteln, wie wichtig oder relevant Features für die generierten Modelle sind.

Anwendungsfälle für automatisiertes maschinelles Lernen: Klassifizierung, Regression, Vorhersage und maschinelles Sehen und NLP

Sie arbeiten mit automatisiertem ML, wenn Sie möchten, dass Azure Machine Learning mit der von Ihnen angegebenen Zielmetrik ein Modell für Sie trainiert und optimiert. Automatisiertes ML demokratisiert den Entwicklungsprozess eines Machine Learning-Modells und befähigt seine Benutzer, unabhängig von deren Data Science-Kenntnissen, eine durchgängige Machine Learning-Pipeline für jedes Problem zu bestimmen.

Spezialisten für maschinelles Lernen und Entwickler aus den verschiedensten Branchen können automatisiertes maschinelles Lernen für Folgendes verwenden:

  • Implementieren von ML-Lösungen ohne umfangreiche Programmierkenntnisse
  • Sparen von Zeit und Ressourcen
  • Nutzen von bewährten Methoden aus der Data Science
  • Bereitstellen flexibler Problemlösungen

Klassifizierung

Klassifizierung ist eine Art des überwachten Lernens, bei der Modelle anhand von Trainingsdaten lernen und diese Erkenntnisse auf neue Daten anwenden. Azure Machine Learning bietet Featurebereitstellungen speziell für diese Aufgaben, z. B. Textfeaturizer für Deep Neural Network zur Klassifizierung. Erfahren Sie mehr über die Optionen für die Featurebereitstellung. Hier finden Sie auch die Liste der Algorithmen, die von AutoML unterstützt werden.

Das Hauptziel von Klassifizierungsmodellen besteht darin, auf der Grundlage der Erkenntnisse aus den Trainingsdaten vorherzusagen, in welche Kategorien neue Daten fallen werden. Zu den gängigen Klassifizierungsbeispielen gehören Betrugserkennung, Handschrifterkennung und Objekterkennung.

Ein Beispiel für Klassifizierung und automatisiertes maschinelles Lernen finden Sie in diesem Python-Notebook: Bank Marketing.

Regression

Ähnlich der Klassifizierung sind Regressionsaufgaben auch ein gängiger überwachter Lerntask. Azure Machine Learning bietet ein Feature Engineering speziell für Regressionsprobleme. Erfahren Sie mehr über die Optionen für die Featurebereitstellung. Hier finden Sie auch die Liste der Algorithmen, die von AutoML unterstützt werden.

Anders als bei der Klassifizierung, bei der die vorhergesagten Ausgabewerte kategorisch sind, sagen Regressionsmodelle numerische Ausgabewerte auf der Grundlage unabhängiger Vorhersagefaktoren voraus. Bei der Regression besteht das Ziel darin, die Beziehung zwischen diesen unabhängigen Vorhersagevariablen herzustellen, indem geschätzt wird, wie eine Variable die anderen beeinflusst. Beispiel: Der Fahrzeugpreis basierend auf Merkmalen wie Kraftstoffverbrauch, Sicherheitseinstufung, usw.

Ein Beispiel für Regression und automatisiertes maschinelles Lernen für Vorhersagen finden Sie in den folgenden Python-Notebooks: Hardwareleistung.

Zeitreihenvorhersagen

Die Erstellung von Vorhersagen ist ein integraler Bestandteil jedes Unternehmens, unabhängig davon, ob es sich um Einnahmen, Lagerbestände, Umsätze oder Kundennachfrage handelt. Sie können automatisiertes maschinelles Lernen verwenden, um verschiedene Techniken und Ansätze zu kombinieren. Außerdem erhalten Sie dabei eine beliebte und hochwertige Zeitreihenprognose. Die Liste der Algorithmen, die von AutoML unterstützt werden, finden Sie hier.

Automatisierte Zeitreihenexperimente werden als multivariate Regressionsprobleme behandelt. Zeitreihenwerte aus der Vergangenheit werden „pivotiert“ und dienen so zusammen mit anderen Vorhersageelementen als zusätzliche Dimensionen für den Regressor. Dieser Ansatz hat im Gegensatz zu klassischen Zeitreihenmethoden den Vorteil, dass mehrere kontextbezogene Variablen und deren Beziehungen zueinander beim Training auf natürliche Weise integriert werden. Beim automatisierten maschinellen Lernen wird ein zwar einfaches, aber häufig in interne Verzweigungen unterteiltes Modell für alle Elemente im Dataset und in den Vorhersagehorizonten erlernt. Dadurch sind mehr Daten verfügbar, um Modellparameter zu schätzen, und die Generalisierung von unbekannten Reihen wird möglich.

Die erweiterte Vorhersagekonfiguration umfasst Folgendes:

  • Feiertagserkennung und Erstellen zusätzlicher Merkmale (Featurization)
  • Zeitreihen und DNN-Lernmodule (Auto-ARIMA, Prophet, ForecastTCN)
  • Unterstützung vieler Modelle mithilfe von Gruppierungen
  • Kreuzvalidierung mit rollierendem Ursprung (Rolling Origin Validation)
  • Konfigurierbare Verzögerungen (Lags)
  • Aggregierte Zeitfenstermerkmale (Rolling Window Features)

Ein Beispiel für Vorhersage und automatisiertes maschinelles Lernen finden Sie in diesem Python-Notebook: Energiebedarf.

Maschinelles Sehen

Die Unterstützung von maschinellem Sehen ermöglicht die einfache Erstellung von Modellen, die mit Bilddaten für Szenarien wie Bildklassifizierung und Objekterkennung trainiert wurden.

Diese Funktion ermöglicht Folgendes:

  • Nahtlose Integration mit der Funktion zur Azure Machine Learning-Datenbeschriftung
  • Verwenden von beschrifteten Daten zum Generieren von Bildmodellen
  • Optimieren der Modellleistung durch Angabe des Modellalgorithmus und durch Abstimmen der Hyperparameter
  • Herunterladen oder Bereitstellen des resultierenden Modells als Webdienst in Azure Machine Learning
  • Operationalisierung im großen Stil durch Nutzung der MLOps- und ML Pipelines-Funktionen von Azure Machine Learning

Das Erstellen von AutoML-Modellen für Aufgaben des maschinellen Sehens wird über das Azure Machine Learning Python SDK unterstützt. Auf die resultierenden Versuchsaufträge, Modelle und Ergebnisse kann über die Benutzeroberfläche von Azure Machine Learning Studio zugegriffen werden.

Erfahren Sie, wie Sie das AutoML-Training für Modelle des maschinellen Sehens einrichten.

Computer vision tasks examples. Image from: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf Abbildung von: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf

Automatisiertes ML für Bilder unterstützt die folgenden Aufgaben für maschinelles Sehen:

Aufgabe BESCHREIBUNG
Bildklassifizierung mit mehreren Klassen Aufgaben, bei denen ein Bild nur mit einer einzelnen Bezeichnung aus einer Reihe von Klassen klassifiziert wird – z. B. wird jedes Bild entweder als Bild einer „Katze“ oder eines „Hundes“ oder einer „Ente“ klassifiziert.
Bildklassifizierung mit mehreren Beschriftungen Aufgaben, bei denen ein Bild eine oder mehrere Beschriftungen aus einer Reihe von Beschriftungen besitzen könnte – z. B. könnte ein Bild sowohl mit „Katze“ als auch mit „Hund“ beschriftet werden.
Objekterkennung Aufgaben zur Identifizierung von Objekten in einem Bild und Lokalisierung der einzelnen Objekte mit einem Begrenzungsrahmen, z. B. die Lokalisierung aller Hunde und Katzen in einem Bild und Zeichnen eines Begrenzungsrahmens um jedes Objekt.
Instanzsegmentierung Aufgaben zur Identifizierung von Objekten in einem Bild auf Pixelebene, indem ein Polygon um jedes Objekt im Bild gezeichnet wird.

Linguistische Datenverarbeitung: NLP (Natural Language Processing)

Die Unterstützung von Aufgaben zur Verarbeitung natürlicher Sprache (Natural Language Processing, NLP) in automatisiertem ML ermöglicht ihnen das einfache Generieren von Modellen, die mit Textdaten für Textklassifizierungsszenarios und Szenarios zum Erkennen benannter Entitäten trainiert wurden. Die Erstellung von durch automatisiertes ML trainierten NLP-Modellen wird über das Azure Machine Learning Python-SDK unterstützt. Auf die resultierenden Versuchsaufträge, Modelle und Ergebnisse kann über die Benutzeroberfläche von Azure Machine Learning Studio zugegriffen werden.

Die NLP-Funktion unterstützt:

  • End-to-End-Deep Neural Network-NLP-Training mit den neuesten vortrainierten BERT-Modellen
  • Nahtlose Integration mit Azure Machine Learning Datenbeschriftung
  • Verwenden von beschrifteten Daten zum Generieren von NLP-Modellen
  • Mehrsprachige Unterstützung für 104 Sprachen
  • Verteiltes Training mit Horovod

Erfahren Sie, wie Sie das Automatisierte ML-Training für NLP-Modelle einrichten.

Trainieren, Überprüfen und Testen von Daten

Mit automatisierten ML Sie die Trainingsdaten zum Trainieren ML Und Sie können angeben, welche Art von Modellvalidierung sie ausführen soll. Automatisiertes ML führt die Modellvalidierung im Rahmen des Trainings aus. Das heißt, dass automatisiertes ML Validierungsdaten verwendet, um Modellhyperparameter basierend auf dem angewendeten Algorithmus zu optimieren, um die Kombination zu finden, die am besten zu den Trainingsdaten passt. Allerdings werden dieselben Validierungsdaten für jede Iteration der Optimierung verwendet, was zu einer Voreingenommenheit bei der Modellauswertung führt, da das Modell sich weiter verbessert und an die Validierungsdaten anpasst.

Um zu bestätigen, dass diese Verzerrungen nicht auf das endgültige empfohlene Modell angewendet werden, unterstützt das automatisierte ML die Verwendung von Testdaten, um das endgültige Modell zu bewerten, das automatisiertes ML am Ende Ihres Experiments empfiehlt. Wenn Sie Testdaten als Teil Ihrer Experimentkonfiguration für automatisiertes maschinelles Lernen bereitstellen, wird dieses empfohlene Modell standardmäßig am Ende des Experiments (Vorschauversion) getestet.

Wichtig

Das Testen Ihrer Modelle mit einem Testdatensatz zur Bewertung der generierten Modelle ist eine Previewfunktion. Diese Funktion ist eine experimentelle Previewfunktion, die jederzeit geändert werden kann.

Erfahren Sie, wie Sie Experimente für automatisiertes maschinelles Lernen für die Verwendung von Testdaten (Vorschauversion) mit dem SDK oder mit Azure Machine Learning Studio konfigurieren.

Featureentwicklung

Beim Feature Engineering werden Domänenkenntnisse der Daten zum Erstellen von Features verwendet, mit denen ML-Algorithmen besser lernen können. In Azure Machine Learning werden für das Feature Engineering Skalierungs- und Normalisierungstechniken angewendet. Zusammen werden diese Techniken und das Feature Engineering als Featurisierung bezeichnet.

Bei automatisierten Machine Learning-Experimenten wird die Featurisierung automatisch angewendet, sie kann aber auch basierend auf Ihren Daten angepasst werden. Erfahren Sie mehr darüber, welche Featurisierung enthalten ist (SDK v1) und wie automatisiertes ML hilft, in Ihren Modellen Überanpassungen und unausgeglichene Daten zu verhindern.

Hinweis

Die Schritte zur Featurebereitstellung bei automatisiertem maschinellen Lernen (Featurenormalisierung, Behandlung fehlender Daten, Umwandlung von Text in numerische Daten usw.) werden Teil des zugrunde liegenden Modells. Bei Verwendung des Modells für Vorhersagen werden die während des Trainings angewendeten Schritte zur Featurebereitstellung automatisch auf Ihre Eingabedaten angewendet.

Anpassen der Featurisierung

Es stehen auch weitere Feature Engineering-Techniken wie etwa Codierung und Transformationen zur Verfügung.

Diese Einstellung kann aktiviert werden über:

Ensemblemodelle

Automatisiertes Machine Learning unterstützt Ensemblemodelle, die standardmäßig aktiviert sind. Das Lernen mit Ensembles verbessert die Ergebnisse des maschinellen Lernens und die Vorhersageleistung, da nicht einzelne Modelle verwendet, sondern mehrere Modelle kombiniert werden. Die Ensemble-Iterationen erfolgen als abschließende Iterationen Ihres Auftrags. Automatisiertes Machine Learning verwendet die beiden Ensemble-Methoden „voting“ (Abstimmen) und „stacking“ (Stapeln) gemeinsam, um Modelle zu kombinieren:

  • Voting: Trifft Vorhersagen auf Grundlage des gewichteten Durchschnitts der vorhergesagten Klassenwahrscheinlichkeiten (für Klassifizierungsaufgaben) oder auf Grundlage der vorhergesagten Regressionsziele (für Regressionsaufgaben).
  • Stacking: Stacking kombiniert heterogene Modelle und trainiert ein Metamodell, basierend auf der Ausgabe der einzelnen Modelle. Die aktuellen Standardmetamodelle sind LogisticRegression für Klassifizierungsaufgaben und ElasticNet für Regressions-/Vorhersageaufgaben.

Der Caruana-Algorithmus für die Ensembleauswahl mit sortierter Ensembleinitialisierung wird verwendet, um zu entscheiden, welche Modell innerhalb des Ensembles verwendet werden sollen. Generell initialisiert dieser Algorithmus das Ensemble mit bis zu fünf Modellen mit den besten Einzelbewertungen und überprüft, ob diese Modelle innerhalb des 5 %-Schwellenwerts der besten Bewertung liegen, um ein schlechtes Ausgangsensemble zu vermeiden. Dann wird für jede Ensemble-Iteration ein neues Modell zum vorhandenen Ensemble hinzugefügt, und die resultierende Bewertung wird berechnet. Wenn ein neues Modell die vorhandene Ensemblebewertung verbessert hat, wird das Ensemble so aktualisiert, dass es das neue Modell aufnimmt.

Informationen zum Ändern der Standard-Ensembleeinstellungen beim automatisierten maschinellen Lern finden Sie im AutoML-Paket.

AutoML und ONNX

Mit Azure Machine Learning können Sie automatisiertes ML verwenden, um ein Python-Modell zu erstellen und in das ONNX-Format zu konvertieren. Sobald die Modelle im ONNX-Format vorliegen, können sie auf einer Vielzahl von Plattformen und Geräten ausgeführt werden. Erfahren Sie mehr über das Beschleunigen von ML-Modellen mit ONNX.

Informationen zum Konvertieren in das ONNX-Format finden Sie in diesem Jupyter Notebook-Beispiel. Erfahren Sie, welche Algorithmen in ONNX unterstützt werden.

Die ONNX-Runtime unterstützt auch C#, sodass Sie das erstellte Modell automatisch in Ihren C#-Apps verwenden können, ohne es neu codieren oder die Netzwerklatenzen in Kauf nehmen zu müssen, die REST-Endpunkte mit sich bringen. Erfahren Sie mehr über die Verwendung eines AutoML ONNX-Modells in einer .NET-Anwendung mit ML.NET und das Rückschließen von ONNX-Modellen mit der C#-API für die ONNX-Runtime.

Nächste Schritte

Es gibt mehrere Ressourcen, um Sie mit AutoML vertraut zu machen.

Tutorials/Anleitungen

Tutorials sind einführende End-to-End-Beispiele für AutoML-Szenarien.

Anleitungen bieten zusätzliche Einzelheiten zu den Funktionen des automatisierten maschinellen Lernens. Beispiel:

Jupyter Notebook-Beispiele

Überprüfen Sie detaillierte Codebeispiele und Anwendungsfälle im GitHub-Notebook-Repository für Beispiele zum automatisierten maschinellen Lernen.

Referenz zum Python SDK

Vertiefen Sie Ihre Kenntnisse über SDK-Entwurfsmuster und Klassenspezifikationen mit der Klassenreferenzdokumentation für AutoML-Aufträge.

Hinweis

Die Funktionen des automatisierten maschinellen Lernens sind auch in anderen Lösungen von Microsoft verfügbar: ML.NET, HDInsight, Power BI und SQL Server