Wählen Sie einen Algorithmus - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Wählen Sie einen Algorithmus

Machine Learning kann Ihnen helfen, empirische Aufgaben zu lösen, die eine Art induktiver Inferenz erfordern. Diese Aufgabe beinhaltet Induktion, da sie Daten verwendet, um Algorithmen so zu trainieren, dass sie verallgemeinerbare Schlussfolgerungen ziehen. Das bedeutet, dass die Algorithmen statistisch zuverlässige Voraussagen oder Entscheidungen treffen oder andere Aufgaben erledigen können, wenn sie auf neue Daten angewendet werden, die nicht zu ihrem Training verwendet wurden.

Um Ihnen bei der Auswahl des besten Algorithmus für Ihre Aufgabe zu helfen, klassifizieren wir diese Aufgaben auf verschiedenen Abstraktionsebenen. Auf der höchsten Abstraktionsebene versucht Machine Learning, Muster oder Beziehungen zwischen Features oder weniger strukturierten Elementen wie Text in einem Datensatz zu finden. Techniken zur Mustererkennung lassen sich in verschiedene Paradigmen des Machine Learning einteilen, von denen jedes spezifische Problemtypen adressiert. Derzeit gibt es drei grundlegende Paradigmen für das Machine Learning, die zur Lösung verschiedener Problemtypen verwendet werden:

Die Arten von Problemen, die jedes Lernparadigma lösen kann, werden anhand der Schlussfolgerungen (oder Voraussagen, Entscheidungen oder anderen Aufgaben) identifiziert, die Sie aus der Art der Daten ziehen möchten, die Sie haben oder sammeln könnten. Paradigmen des Machine Learning verwenden algorithmische Methoden, um ihre verschiedenen Problemtypen zu lösen. Die Algorithmen bieten Rezepte zur Lösung dieser Probleme.

Viele Algorithmen, wie z. B. neuronale Netzwerke, können jedoch mit unterschiedlichen Lernparadigmen und für verschiedene Arten von Problemen eingesetzt werden. Mehrere Algorithmen können auch einen bestimmten Problemtyp behandeln. Einige Algorithmen sind allgemeiner anwendbar und andere sind sehr spezifisch für bestimmte Arten von Zielen und Daten. Die Zuordnung zwischen Algorithmen für das Machine Learning und Problemtypen ist also Viele-zu-Vieles. Außerdem stehen verschiedene Implementierungsoptionen für Algorithmen zur Verfügung.

Die folgenden Abschnitte enthalten Anleitungen zu Implementierungsoptionen, Paradigmen für das Machine Learning und Algorithmen, die für verschiedene Problemtypen geeignet sind.

Wählen Sie eine Algorithmusimplementierung

Nachdem Sie einen Algorithmus ausgewählt haben, müssen Sie entscheiden, welche Implementierung Sie verwenden möchten. Amazon SageMaker unterstützt drei Implementierungsoptionen, die einen erhöhten Aufwand erfordern.

  • Vortrainierte Modelle erfordern den geringsten Aufwand und sind Modelle, die mit SageMaker JumpStart bereitgestellt oder optimiert und bereitgestellt werden können.

  • Integrierte Algorithmen erfordern mehr Aufwand und Skalierbarkeit, wenn der Datensatz groß ist und erhebliche Ressourcen für das Training und die Implementierung des Modells benötigt werden.

  • Wenn es keine funktionierende integrierte Lösung gibt, versuchen Sie, eine zu entwickeln, die vorgefertigte Bilder für Machine Learning und Deep-Learning-Frameworks für unterstützte Frameworks, wie Scikit-Learn, TensorFlow, PyTorch, MXNet oder Chainer verwendet.

  • Wenn Sie benutzerdefinierte Pakete ausführen oder Code verwenden müssen, der nicht Teil eines unterstützten Frameworks ist oder über PyPi verfügbar ist, müssen Sie Ihr eigenes benutzerdefiniertes Docker-Image erstellen, das für die Installation der erforderlichen Pakete oder Software konfiguriert ist. Das benutzerdefinierte Image muss außerdem in ein Online-Repository wie die Amazon Elastic Container-Registry übertragen werden.

Empfehlungen zur Implementierung von Algorithmen
Implementierung Erfordert Code Vorkodierte Algorithmen Support für Pakete von Drittanbietern Support benutzerdefinierter Codes Grad des Aufwands
Integriert Nein Ja Nein Nein Niedrig
Scikit-learn Ja Ja Nur PyPi Ja Medium
Spark ML Ja Ja Nur PyPi Ja Medium
XGBoost (Open Source) Ja Ja Nur PyPi Ja Medium
TensorFlow Ja Nein Nur PyPi Ja Mittel-Hoch
PyTorch Ja Nein Nur PyPi Ja Mittel-Hoch
MXNet Ja Nein Nur PyPi Ja Mittel-Hoch
Chainer Ja Nein Nur PyPi Ja Mittel-Hoch
Benutzerdefiniertes Image Ja Nein Ja, aus jeder Quelle Ja Hoch

Verwenden eines integrierten Algorithmus

Bei der Auswahl eines Algorithmus für Ihre Art von Problem und Daten ist es am einfachsten, einen der integrierten Algorithmen von Amazon SageMaker zu verwenden. Diese integrierten Algorithmen bieten zwei große Vorteile.

  • Die integrierten Algorithmen erfordern keine Codierung, um mit der Ausführung von Experimenten zu beginnen. Die einzigen Eingaben, die Sie bereitstellen müssen, sind Daten, Hyperparameter und Datenverarbeitungsressourcen. Auf diese Weise können Sie Experimente schneller und mit weniger Aufwand für die Nachverfolgung von Ergebnissen und Codeänderungen ausführen.

  • Die integrierten Algorithmen bieten Parallelisierung über mehrere Datenverarbeitungs-Instances hinweg und GPU-Unterstützung für alle anwendbaren Algorithmen (einige Algorithmen sind aufgrund inhärenter Einschränkungen möglicherweise nicht enthalten). Wenn Sie über viele Daten verfügen, mit denen Sie Ihr Modell trainieren können, können die meisten integrierten Algorithmen problemlos skaliert werden, um den Anforderungen gerecht zu werden. Selbst wenn Sie bereits über ein vortrainiertes Modell verfügen, ist es möglicherweise immer noch einfacher, seine logische Folge in SageMaker zu verwenden und die Hyperparameter einzugeben, die Sie bereits kennen, als es mithilfe des Skriptmodus auf einem unterstützten Framework zu portieren.

Mehr Informationen über in SageMaker integrierte Algorithmen finden Sie unter Verwenden SageMaker von integrierten Amazon-Algorithmen oder vortrainierten Modellen.

Wichtige Informationen zu Docker-Registrierungspfaden, Datenformaten, empfohlenen EC2-Instance-Typen und CloudWatch-Protokollen, die allen von SageMaker bereitgestellten integrierten Algorithmen gemeinsam sind, finden Sie unter Allgemeine Informationen zu integrierten Algorithmen.

Verwenden Sie den Skriptmodus in einem unterstützten Framework

Wenn der Algorithmus, den Sie für Ihr Modell verwenden möchten, nicht von einer integrierten Option unterstützt wird und Sie damit zufrieden sind, Ihre eigene Lösung zu programmieren, sollten Sie die Verwendung eines von Amazon SageMaker unterstützten Frameworks in Betracht ziehen. Dies wird als „Skriptmodus“ bezeichnet, da Sie Ihren benutzerdefinierten Code (Skript) in eine Textdatei mit einer .py Erweiterung schreiben. Wie aus der obigen Tabelle hervorgeht, unterstützt SageMaker die meisten gängigen Frameworks für das Machine Learning. Diese Frameworks sind mit dem entsprechenden Framework und einigen zusätzlichen Python-Paketen wie Pandas und NumPy vorinstalliert, sodass Sie Ihren eigenen Code zum Trainieren eines Algorithmus schreiben können. Mit diesen Frameworks können Sie auch jedes auf PyPi gehostete Python-Paket installieren, indem Sie Ihrem Trainingscode eine Datei requirements.txt hinzufügen oder Ihre eigenen Codeverzeichnisse einbeziehen. R wird auch nativ in SageMaker-Notebook-Kerneln unterstützt. Einige Frameworks, wie Scikit-Learn und Spark ML, verfügen über vorcodierte Algorithmen, die Sie einfach verwenden können, während Sie bei anderen Frameworks wie TensorFlow und PyTorch den Algorithmus möglicherweise selbst implementieren müssen. Die einzige Einschränkung bei der Verwendung eines unterstützten Framework-Images besteht darin, dass Sie keine Softwarepakete importieren können, die nicht auf PyPi gehostet werden oder die nicht bereits im Framework-Image enthalten sind.

Weitere Informationen zu den Frameworks, die von SageMaker unterstützt werden, finden Sie unter Frameworks und Sprachen für Machine Learning.

Verwenden Sie ein benutzerdefiniertes Docker-Image

Die integrierten Algorithmen und unterstützten Frameworks von Amazon SageMaker sollten die meisten Anwendungsfälle abdecken, aber manchmal müssen Sie möglicherweise einen Algorithmus aus einem Paket verwenden, das in keinem der unterstützten Frameworks enthalten ist. Möglicherweise haben Sie auch ein vorab trainiertes Modell ausgewählt oder an einem anderen Ort gespeichert, das Sie bereitstellen müssen. SageMaker verwendet Docker-Images, um die Schulung und die Bereitstellung aller Modelle zu hosten, sodass Sie Ihr eigenes benutzerdefiniertes Docker-Image bereitstellen können, falls das Paket oder die Software, die Sie benötigen, nicht in einem unterstützten Framework enthalten ist. Dies kann Ihr eigenes Python-Paket oder ein Algorithmus sein, der in einer Sprache wie Stan oder Julia codiert ist. Für diese Bilder müssen Sie auch das Training des Algorithmus und die Bereitstellung des Modells in Ihrem Dockerfile richtig konfigurieren. Dies erfordert Grundkenntnisse in Docker und wird nicht empfohlen, es sei denn, Sie sind damit vertraut, Ihren eigenen Algorithmus für maschinelles Lernen zu schreiben. Ihr Docker-Image muss in ein Online-Repository wie das Amazon Elastic Container Registry (ECR) hochgeladen werden, bevor Sie Ihr Modell richtig trainieren und bereitstellen können.

Weitere Informationen zu benutzerdefinierten Docker-Images in SageMaker finden Sie unter Verwenden Sie Docker-Container, um Modelle zu erstellen.

Problemtypen für die grundlegenden Paradigmen des Machine Learning.

In den folgenden drei Abschnitten werden die wichtigsten Problemtypen beschrieben, die in den drei grundlegenden Paradigmen für Machine Learning behandelt werden. Eine Liste der integrierten Algorithmen, die SageMaker zur Lösung dieser Problemtypen bereitstellt, finden Sie unter Verwenden SageMaker von integrierten Amazon-Algorithmen oder vortrainierten Modellen.

Überwachtes Lernen

Wenn Ihr Datensatz aus Features oder Attributen (Eingaben) besteht, die Zielwerte (Ausgaben) enthalten, liegt ein Problem mit überwachtem Lernen vor. Wenn Ihre Zielwerte kategorial (mathematisch diskret) sind, haben Sie ein Klassifizierungsproblem. Es ist üblich, zwischen binärer Klassifikation und Mehrklassen-Klassifizierung zu unterscheiden.

  • Binäre Klassifikation ist ein Typ von überwachtem Lernen, die eine Person basierend auf ihren Attributen einer von zwei vordefinierten und sich gegenseitig ausschließenden Klassen zuweist. Es wird überwacht, da die Modelle anhand von Beispielen trainiert werden, bei denen die Attribute mit korrekt bezeichneten Objekten bereitgestellt werden. Eine medizinische Diagnose, ob eine Person eine Krankheit hat oder nicht, basierend auf den Ergebnissen von diagnostischen Tests, ist ein Beispiel für binäre Klassifikation.

  • Mehrklassen-Klassifizierung ist ein Typ von überwachtem Lernen, das eine Person basierend auf ihren Attributen einer von mehreren Klassen zuweist. Es wird überwacht, da die Modelle anhand von Beispielen trainiert werden, bei denen die Attribute mit korrekt bezeichneten Objekten bereitgestellt werden. Ein Beispiel ist die Voraussage des Themas, das für ein Textdokument am relevantesten ist. Der Themenbereich eines Dokuments kann als Religion oder Politik oder Finanzen eingestuft werden, als eine von mehreren anderen vordefinierten Themenklassen.

Wenn die Zielwerte, die Sie vorhersagen möchten, mathematisch kontinuierlich sind, liegt ein Regressionsproblem vor. Regression schätzt die Werte einer abhängigen Zielvariablen basierend auf einer oder mehreren anderen Variablen oder Attributen, die mit ihr korreliert sind. Ein Beispiel ist die Voraussage der Hauspreise mit Funktionen wie Anzahl von Badezimmern und Schlafzimmern, Quadratmeterzahl des Hauses und des Gartens. Die Regressionsanalyse kann ein Modell erstellen, das eines oder mehrere dieser Funktionen als Eingabe verwendet und den Preis eines Hauses prognostiziert.

Weitere Informationen zu den integrierten Algorithmen für überwachtes Lernen von SageMaker finden Sie unter (Überwachtes Lernen).

Unüberwachtes Lernen

Wenn Ihr Datensatz aus Features oder Attributen (Eingaben) besteht, die keine Beschriftungen oder Zielwerte (Ausgaben) enthalten, liegt ein Problem mit unüberwachtem Lernen vor. Bei dieser Art von Problem muss die Ausgabe auf der Grundlage des in den Eingabedaten erkannten Musters vorhergesagt werden. Bei Problemen mit unüberwachtem Lernen besteht das Ziel darin, Muster wie Gruppierungen innerhalb der Daten zu entdecken. Es gibt eine Vielzahl von Aufgaben oder Problemtypen, auf die unüberwachtes Lernen angewendet werden kann. Hauptkomponenten- und Clusteranalysen sind zwei der wichtigsten Methoden, die üblicherweise für die Vorverarbeitung von Daten eingesetzt werden. Im Folgenden finden Sie eine kurze Liste von Problemtypen, die durch unüberwachtes Lernen behoben werden können:

  • Die Dimensionsreduzierung ist in der Regel Teil eines Data-Exploration-Schritts, der dazu dient, die relevantesten Features für die Modellkonstruktion zu ermitteln. Die Idee besteht darin, Daten aus einem hochdimensionalen, dünn besiedelten Raum in einen niedrigdimensionalen Raum umzuwandeln, der die wichtigsten Eigenschaften der Originaldaten beibehält. Auf diese Weise kann der Fluch der Dimensionalität gemildert werden, der bei dünn besiedelten, hochdimensionalen Daten auftreten kann, bei denen statistische Analysen problematisch werden. Es kann auch zum besseren Verständnis von Daten verwendet werden, indem hochdimensionale Daten auf eine geringere Dimensionalität reduziert werden, die visualisiert werden kann.

  • Die Clusteranalyse ist eine Klasse von Techniken, die verwendet werden, um Objekte oder Fälle in Gruppen zu klassifizieren, die als Cluster bezeichnet werden. Es versucht, diskrete Gruppierungen innerhalb von Daten zu finden, wobei Mitglieder einer Gruppe sich so ähnlich wie möglich sein sollen und sich so stark wie möglich von Mitgliedern anderer Gruppen unterscheiden sollen. Sie definieren die Features oder Attribute, die der Algorithmus zur Bestimmung der Ähnlichkeit verwenden soll, wählen eine Entfernungsfunktion zur Messung der Ähnlichkeit aus und geben die Anzahl von Clustern an, die in der Analyse verwendet werden sollen.

  • Bei der Erkennung von Anomalien werden seltene Elemente, Ereignisse oder Beobachtungen in einem Datensatz identifiziert, die Verdacht erregen, weil sie sich erheblich von den übrigen Daten unterscheiden. Die Identifizierung anomaler Objekte kann beispielsweise zur Aufdeckung von Bankbetrug oder medizinischen Fehlern verwendet werden. Anomalien werden auch als Ausreißer, Neuheiten, Störgeräusche, Abweichungen und Ausnahmen bezeichnet.

  • Die Dichteschätzung ist die Konstruktion von Schätzungen der zugrunde liegenden Wahrscheinlichkeitsdichtefunktionen, die nicht beobachtbar sind, auf der Grundlage beobachteter Daten. Dichteschätzungen werden normalerweise für die Data Exploration verwendet. Mit Dichteschätzungen können Funktionen wie Schiefe und Multimodalität in den Daten entdeckt werden. Die einfachste Form der Dichteschätzung ist ein neu skaliertes Histogramm.

SageMaker bietet mehrere integrierte Algorithmen für Machine Learning, die Sie für diese unüberwachten Lernaufgaben verwenden können. Weitere Informationen zu den integrierten unbeaufsichtigten Algorithmen von SageMaker finden Sie unter Unüberwachtes Lernen.

Bestärkendes Lernen

Reinforcement-Learning ist ein Typ von Lernen, das auf der Interaktion mit der Umgebung basiert. Diese Art des Lernens wird von einem Agenten verwendet, der Verhalten durch Trial-and-Error-Interaktionen in einer dynamischen Umgebung erlernen muss, in der das Ziel darin besteht, die langfristigen Belohnungen zu maximieren, die der Agent als Ergebnis seiner Aktionen erhält. Die Vorteile werden maximiert, indem das Erkunden von Aktionen mit ungewissen Belohnungen und das Ausnutzen von Aktionen mit bekannten Belohnungen abgewogen wird.

Weitere Informationen zu den Frameworks, Toolkits und Umgebungen für Reinforcement-Learning von SageMaker finden Sie unter Verwenden Sie Reinforcement Learning mit Amazon SageMaker.