Auswählen eines 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.

Auswählen eines Algorithmus

Maschinelles Lernen kann Ihnen dabei helfen, empirische Aufgaben zu erfüllen, die eine Art induktiver Inferenz erfordern. Diese Aufgabe beinhaltet Induktion, da sie Daten verwendet, um Algorithmen zu trainieren, um verallgemeinerbare Schlussfolgerungen zu machen. Dies bedeutet, dass die Algorithmen statistisch zuverlässige Vorhersagen oder Entscheidungen treffen oder andere Aufgaben ausführen können, wenn sie auf neue Daten angewendet werden, die nicht zum Trainieren 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 maschinelles Lernen, Muster oder Beziehungen zwischen Features oder weniger strukturierten Elementen, wie z. B. Text in einem Datensatz, zu finden. Mustererkennungstechniken können in unterschiedliche Paradigmen für maschinelles Lernen klassifiziert werden, die jeweils spezifische Problemtypen adressieren. Derzeit gibt es drei grundlegende Paradigmen für maschinelles Lernen, mit denen verschiedene Problemtypen angegangen werden:

Die Arten von Problemen, die jedes Lernparadigma lösen kann, werden identifiziert, indem die Schlussfolgerungen (oder Vorhersagen, Entscheidungen oder andere Aufgaben) berücksichtigt werden, die Sie aus dem Typ der Daten, die Sie haben oder sammeln könnten. Paradigmen für maschinelles Lernen verwenden algorithmische Methoden, um ihre verschiedenen Problemtypen anzugehen. Die Algorithmen bieten Rezepte zur Lösung dieser Probleme.

Viele Algorithmen, wie neuronale Netzwerke, können jedoch mit unterschiedlichen Lernparadigmen und auf verschiedenen Arten von Problemen eingesetzt werden. Mehrere Algorithmen können auch einen bestimmten Problemtyp beheben. Einige Algorithmen sind allgemeiner anwendbar, andere sind ziemlich spezifisch für bestimmte Arten von Zielen und Daten. Die Zuordnung zwischen Algorithmen für maschinelles Lernen und Problemtypen ist also viele-zu-viele. Außerdem stehen verschiedene Implementierungsoptionen für Algorithmen zur Verfügung.

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

Auswählen einer 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 höheren Aufwand erfordern.

  • Eingebaute Algorithmenerfordern den geringsten Aufwand und die geringste Skalierung, wenn der Datensatz groß ist und erhebliche Ressourcen für die Schulung und Bereitstellung des Modells benötigt werden.

  • Wenn es keine integrierte Lösung gibt, die funktioniert, versuchen Sie, eine zu entwickeln, dievorgefertigte Bilder für maschinelle und Deep-Learning-Frameworksfür unterstützte Frameworks wie Scikit-Learn, TensorFlow, PyTorch, MxNet oder Chainer.

  • 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 SieIhr eigenes angepasstes Docker-Bild, die für die Installation der erforderlichen Pakete oder Software konfiguriert ist. Das benutzerdefinierte Image muss auch in ein Online-Repository wie die Amazon Elastic Container Registry übertragen werden.

Anleitungen zur Implementierung von Algorithmen
Implementierung Benötigt Code Vorcodierte Algorithmen Support für Pakete von Drittanbietern Support für benutzerdefinierten Code Höhe des Aufwands
Integriertes 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 Mittelhoch
PyTorch Ja Nein Nur PyPi Ja Mittelhoch
MXNet Ja Nein Nur PyPi Ja Mittelhoch
Chainer Ja Nein Nur PyPi Ja Mittelhoch
Benutzerdefiniertes Image Ja Nein Ja, aus beliebigen Quellen Ja Hoch

Verwenden eines integrierten Algorithmus

Bei der Auswahl eines Algorithmus für Ihre Art von Problem und Daten besteht die einfachste Möglichkeit darin, einen der integrierten Algorithmen von Amazon SageMaker zu verwenden. Diese integrierten Algorithmen haben zwei große Vorteile.

  • Die integrierten Algorithmen erfordern keine Codierung von Experimente starten. Die einzigen Eingaben, die Sie bereitstellen müssen, sind die Daten, Hyperparameter und Rechenressourcen. Auf diese Weise können Sie Experimente schneller ausführen, mit geringerem Aufwand für die Verfolgung von Ergebnissen und Codeänderungen.

  • Die integrierten Algorithmen kommen mit Parallelisierung über mehrere Compute-Instances und GPU-Unterstützung direkt aus der Box für alle anwendbaren Algorithmen (einige Algorithmen sind aufgrund inhärenter Einschränkungen möglicherweise nicht enthalten). Wenn Sie viele Daten haben, mit denen Sie Ihr Modell trainieren können, können die meisten integrierten Algorithmen problemlos skaliert werden, um die Anforderungen zu erfüllen. Selbst wenn Sie bereits ein vortrainiertes Modell haben, ist es möglicherweise noch einfacher, seine Folgefunktion in SageMaker zu verwenden und die Hyper-Parameter einzugeben, die Sie bereits kennen, als es über den Skriptmodus in einem unterstützten Framework zu portieren.

Weitere Hinweise zu den in SageMaker bereitgestellten integrierten Algorithmen finden Sie unterUse Amazon SageMaker Built-in Algorithmsaus.

Wichtige Informationen zu Docker-Registrierungspfaden, Datenformaten, empfohlenen EC2-Instanztypen und CloudWatch Protokollen, die für alle integrierten Algorithmen von SageMaker gelten, finden Sie unterHäufige Informationen zu integrierten Algorithmenaus.

Verwenden des Skriptmodus in einem unterstützten Framework

Wenn der Algorithmus, den Sie für Ihr Modell verwenden möchten, nicht von einer integrierten Auswahl unterstützt wird und Sie Ihre eigene Lösung programmieren können, sollten Sie in Erwägung ziehen, ein von Amazon SageMaker unterstütztes Framework zu verwenden. Dies wird als „Skriptmodus“ bezeichnet, da Sie Ihren benutzerdefinierten Code (Skript) in eine Textdatei mit einem.py-Erweiterung an. Wie aus der obigen Tabelle hervorgeht, unterstützt SageMaker die meisten gängigen Machine Learning Frameworks. Diese Frameworks sind mit dem entsprechenden Framework und einigen zusätzlichen Python-Paketen wie Pandas und NumPy vorinstalliert, so dass Sie Ihren eigenen Code für das Training eines Algorithmus schreiben können. Mit diesen Frameworks können Sie auch jedes Python-Paket installieren, das auf PyPi gehostet wird, indem Sie eine Datei requirements.txt mit Ihrem Trainingscode einschließen oder eigene Codeverzeichnisse einschließen. R wird auch nativ in SageMaker Notebookkerneln unterstützt. Einige Frameworks, wie scikit-learn und Spark ML, haben vorcodierte Algorithmen, die Sie leicht verwenden können, während andere Frameworks wie TensorFlow und PyTorch möglicherweise erfordern, dass Sie den Algorithmus selbst implementieren. 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 noch nicht im Framework-Image enthalten sind.

Weitere Informationen zu den von SageMaker unterstützten Frameworks finden Sie unterVerwenden von Machine Learning Frameworks, Python und R mit Amazon SageMakeraus.

Verwenden eines benutzerdefinierten Docker-Images

Die integrierten Algorithmen und unterstützten Frameworks von Amazon SageMaker sollten die meisten Anwendungsfälle abdecken, aber es gibt Zeiten, in denen Sie möglicherweise einen Algorithmus aus einem Paket verwenden müssen, das nicht in einem der unterstützten Frameworks enthalten ist. Möglicherweise haben Sie auch ein vortrainiertes Modell ausgewählt oder beibehalten, das Sie bereitstellen müssen. SageMaker verwendet Docker-Images, um die Schulung und Bereitstellung aller Modelle zu hosten, sodass Sie Ihr eigenes angepasstes Docker-Image bereitstellen können, wenn das benötigte Paket oder die Software 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 richtig in Ihrer Dockerfile konfigurieren. Dies erfordert Zwischenkenntnisse über Docker und wird nicht empfohlen, es sei denn, Sie können Ihren eigenen maschinellen Lernalgorithmus schreiben. Ihr Docker-Image muss in ein Online-Repository hochgeladen werden, z. B. die Amazon Elastic Container Registry (ECR), bevor Sie Ihr Modell ordnungsgemäß trainieren und bereitstellen können.

Weitere Informationen zu benutzerdefinierten Docker-Images in SageMaker finden Sie unterVerwenden von Docker-Containern mit SageMaker aus.

Problemtypen für die grundlegenden Paradigmen für maschinelles Lernen

In den folgenden drei Abschnitten werden die wichtigsten Problemtypen beschrieben, die von den drei grundlegenden Paradigmen für maschinelles Lernen behandelt werden. Eine Liste der integrierten Algorithmen, die SageMaker zur Behebung dieser Problemtypen bereitstellt, finden Sie unterUse Amazon SageMaker Built-in Algorithmsaus.

Betreutes Lernen

Wenn Ihr Datensatz aus Features oder Attributen (Eingaben) besteht, die Zielwerte (Outputs) enthalten, haben Sie ein überwachtes Lernproblem. Wenn Ihre Zielwerte kategorisch sind (mathematisch diskret), haben Sie eineKlassifizierungsproblemaus. Es ist eine Standardpraxis, Binär- und Mehrfachklassenklassifikation zu unterscheiden.

  • Binäre KlassifizierungDiese Art von überwachtem Lernen, das eine Person basierend auf den Attributen einer von zwei vordefinierten und sich gegenseitig ausschließenden Klassen zuweist. Es wird überwacht, da die Modelle anhand von Beispielen trainiert werden, in 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 Klassifizierung.

  • Multiclass classification is a type of supervised learning that assigns an individual to one of several classes based on the individual's attributes. It is supervised because the models are trained using examples in which the attributes are provided with correctly labeled objects. Ein Beispiel ist die Vorhersage des Themas, das für ein Textdokument am relevantesten ist. A document may be classified as being about religion, politics, or finance, or as about one of several other predefined topic classes.

If the target values you are trying to predict are mathematically continuous, then you have a regression problem. Regression schätzt die Werte einer abhängigen Zielvariablen basierend auf einer oder mehreren anderen Variablen oder Attributen, die mit ihr korreliert sind. An example is the prediction of house prices using features like the number of bathrooms and bedrooms and the square footage of the house and garden. Die Regressionsanalyse kann ein Modell erstellen, das eines oder mehrere dieser Features als Eingabe verwendet und den Preis eines Hauses prognostiziert.

For more information on the built-in supervised learning algorithms provided by SageMaker, see Betreutes Lernen.

Unsupervised learning

If your data set consists of features or attributes (inputs) that do not contain labels or target values (outputs), then you have an unsupervised learning problem. In this type of problem, the output must be predicted based on the pattern discovered in the input data. The goal in unsupervised learning problems is to discover patterns such as groupings within the data. There are a large variety of tasks or problem types to which unsupervised learning can be applied. Principal component and cluster analyses are two of the main methods commonly deployed for preprocessing data. Here is a short list of problem types that can be addressed by unsupervised learning:

  • Dimension reduction is typically part of a data exploration step used to determine the most relevant features to use for model construction. The idea is to transform data from a high-dimensional, sparsely populated space into a low-dimensional space that retains most significant properties of the original data. This provides relief for the curse of dimensionality that can arise with sparsely populated, high-dimensional data on which statistical analysis becomes problematic. It can also be used to help understand data, reducing high-dimensional data to a lower dimensionality that can be visualized.

  • Cluster analysis is a class of techniques that are used to classify objects or cases into groups called clusters. 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. You define the features or attributes that you want the algorithm to use to determine similarity, select a distance function to measure similarity, and specify the number of clusters to use in the analysis.

  • Anomaly detection is the identification of rare items, events, or observations in a data set which raise suspicions because they differ significantly from the rest of the data. The identification of anomalous items can be used, for example, to detect bank fraud or medical errors. Anomalies are also referred to as outliers, novelties, noise, deviations, and exceptions.

  • Density estimation is the construction of estimates of unobservable underlying probability density functions based on observed data. A natural use of density estimates is for data exploration. Density estimates can discover features such as skewness and multimodality in the data. The most basic form of density estimation is a rescaled histogram.

SageMaker provides several built-in machine learning algorithms that you can use for these unsupervised learning tasks. For more information on the built-in unsupervised algorithms provided by SageMaker, see Unüberwachtes Lernen.

Bestärkendes Lernen

Reinforcement learning is a type of learning that is based on interaction with the environment. This type of learning is used by an agent that must learn behavior through trial-and-error interactions with a dynamic environment in which the goal is to maximize the long-term rewards that the agent receives as a result of its actions. Rewards are maximized by trading off exploring actions that have uncertain rewards with exploiting actions that have known rewards.

For more information on SageMaker's frameworks, toolkits, and environments for reinforcement learning, see Verwenden von Reinforcement Learning mit Amazon SageMaker.