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 helfen, empirische Aufgaben zu erfüllen, die eine Art induktive Inferenz erfordern. Diese Aufgabe beinhaltet Induktion, da Daten verwendet werden, um Algorithmen zu trainieren, um verallgemeinerbare Schlussfolgerungen zu ziehen. Dies bedeutet, dass die Algorithmen statistisch zuverlässige Vorhersagen oder Entscheidungen treffen oder andere Aufgaben erledigen 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 Merkmalen oder weniger strukturierten Elementen wie Text in einem Datensatz zu finden. Mustererkennungstechniken können in unterschiedliche Paradigmen des maschinellen Lernens eingeteilt werden, die jeweils bestimmte Problemtypen ansprechen. Derzeit gibt es drei grundlegende Paradigmen für maschinelles Lernen, mit denen verschiedene Problemtypen angegangen werden:

Die Arten von Problemen, die jedes Lernparadigma angehen kann, werden identifiziert, indem die Schlussfolgerungen (oder Vorhersagen, Entscheidungen oder andere Aufgaben) berücksichtigt werden, die Sie aus der Art der Daten ziehen möchten, die Sie haben oder sammeln könnten. Paradigmen des maschinellen Lernens verwenden algorithmische Methoden, um ihre verschiedenen Problemtypen anzugehen. Die Algorithmen liefern Rezepte zur Lösung dieser Probleme.

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

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

Siehe eine Algorithmus-Implementierung

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.

  • Vortrainierte Modelleerfordern den geringsten Aufwand und sind Modelle bereit für die Bereitstellung oder Feinabstimmung und Bereitstellung mit SageMaker JumpStart.

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

  • Wenn es keine integrierte Lösung gibt, die funktioniert, versuchen Sie, eine zu entwickeln, dievorgefertigte Bilder für Machine- 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, dann musst du bauenIhr eigenes benutzerdefiniertes Docker-Imagedas 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.

Anleitung zur Implementierung von Algorithmen
Implementierung Erfordert Code Vorcodierte Algorithmen Support für Pakete von Drittanbietern Support für benutzerdefinierten Code Grad des Aufwands
Integrierten Nein Ja Nein Nein Niedrig
Scikit-learn Ja Ja PyPi nur Ja Medium
Spark ML Ja Ja PyPi nur Ja Medium
XGBoost (Open Source) Ja Ja PyPi nur Ja Medium
TensorFlow Ja Nein PyPi nur Ja Mittel-Hoch
PyTorch Ja Nein PyPi nur Ja Mittel-Hoch
MXNet Ja Nein PyPi nur Ja Mittel-Hoch
Chainer Ja Nein PyPi nur Ja Mittel-Hoch
Benutzerdefiniertes Image Ja Nein Ja, aus jeder Quelle Ja Hoch

Verwenden Sie einen integrierten Algorithmus

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

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

  • Die integrierten Algorithmen verfügen über Parallelisierung über mehrere Recheninstanzen 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 ein vorab trainiertes Modell haben, ist es möglicherweise immer noch einfacher, seine Konsequenz in SageMaker und geben Sie die Hyperparameter ein, die Sie bereits kennen, um sie zu portieren, indem Sie den Skriptmodus auf einem unterstützten Framework verwenden.

Weitere Informationen zu den integrierten Algorithmen von SageMakerSieheVerwenden von Amazon SageMaker Integrierte Algorithmen oder vorab trainierte Modelle.

Wichtige Informationen zu Docker-Registrierungspfaden, Datenformaten, empfohlenen EC2-Instance-Typen und CloudWatch Protokolle, die allen integrierten Algorithmen gemeinsam sind, die von bereitgestellt werden SageMakerSieheAllgemeine Informationen zu integrierten Algorithmen.

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 die Verwendung eines Amazon in Betracht ziehen SageMakerunterstütztes Framework Dies wird als „Skriptmodus“ bezeichnet, da Sie Ihren benutzerdefinierten Code (Skript) in eine Textdatei mit einem.pyErweiterung. Wie aus der obigen Tabelle hervorgeht, SageMaker unterstützt verbreitete Machine Learning-Frameworks. Diese Frameworks sind mit dem entsprechenden Framework und einigen zusätzlichen Python-Paketen wie Pandas und NumPy, sodass Sie Ihren eigenen Code für das Training eines Algorithmus schreiben können. Mit diesen Frameworks können Sie auch jedes Python-Paket installieren, auf dem gehostet wird PyPi indem Sie eine Datei requirements.txt in Ihren Trainingscode einbinden oder Ihre eigenen Codeverzeichnisse einbeziehen. R wird auch nativ unterstützt in SageMaker Notebook-Kernels Einige Frameworks, wie scikit-learn und Spark ML, haben vorcodierte Algorithmen, die Sie problemlos verwenden können, während andere Frameworks wie TensorFlow und PyTorchkann 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, auf denen nicht gehostet wird PyPi oder die nicht bereits im Image des Frameworks enthalten sind.

Weitere Informationen zu den Frameworks, die von SageMakerSieheVerwenden von Frameworks für Machine Learning, Python und R mit Amazon SageMaker.

Benutzerdefiniertes Docker-Image verwenden

Amazon SageMakerDie integrierten Algorithmen und unterstützten Frameworks 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 gespeichert, das Sie bereitstellen müssen. SageMaker verwendet Docker-Images, um das Training und die Bereitstellung aller Modelle zu hosten, sodass Sie Ihr eigenes benutzerdefiniertes Docker-Image bereitstellen können, wenn 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 Zwischenkenntnisse in Docker und wird nicht empfohlen, es sei denn, Sie sind mit dem Schreiben Ihres eigenen Algorithmus für maschinelles Lernen vertraut. Ihr Docker-Image muss in ein Online-Repository wie die Amazon Elastic Container Registry (ECR) hochgeladen werden, bevor Sie Ihr Modell ordnungsgemäß trainieren und bereitstellen können.

Weitere Informationen zu benutzerdefinierten Docker-Images finden Sie unter SageMakerSieheVerwenden von Docker-Containern SageMaker.

Problemtypen für die grundlegenden Paradigmen des maschinellen Lernens

In den folgenden drei Abschnitten werden die wichtigsten Problemtypen beschrieben, die in den drei grundlegenden Paradigmen für maschinelles Lernen angesprochen werden. Eine Liste der integrierten Algorithmen, die SageMaker bietet Hinweise zur Behebung dieser Problemtypen, sieheVerwenden von Amazon SageMaker Integrierte Algorithmen oder vorab trainierte Modelle.

Betreutes Lernen

Wenn Ihr Datensatz aus Features oder Attributen (Eingaben) besteht, die Zielwerte (Outputs) enthalten, dann haben Sie ein überwachtes Lernproblem. Wenn Ihre Zielwerte kategorisch (mathematisch diskret) sind, haben Sie eineProblem mit der Klassifizierung. Es ist eine Standardpraxis, die binäre von der Mehrklassenklassifizierung zu unterscheiden.

  • Binäre Klassifizierungist eine Art des überwachten Lernens, bei dem eine Person basierend auf den Attributen des Individuums einer von zwei vordefinierten und sich gegenseitig ausschließenden Klassen zugewiesen wird. Es wird überwacht, da die Modelle anhand von Beispielen trainiert werden, in denen die Attribute mit korrekt beschrifteten Objekten versehen 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.

  • Mehrklassifizierungist eine Art des überwachten Lernens, bei dem eine Person basierend auf den Attributen der Person einer von mehreren Klassen zugewiesen wird. Es wird überwacht, da die Modelle anhand von Beispielen trainiert werden, in denen die Attribute mit korrekt beschrifteten Objekten versehen werden. Ein Beispiel ist die Vorhersage des Themas, das für ein Textdokument am relevantesten ist. Ein Dokument kann so klassifiziert werden, dass es sich um Religion, Politik oder Finanzen oder um eine von mehreren anderen vordefinierten Themenklassen handelt.

Wenn die Zielwerte, die Sie vorhersagen möchten, mathematisch kontinuierlich sind, haben Sie eineRegressionProblem. 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 Vorhersage der Immobilienpreise anhand von Merkmalen wie der Anzahl der Badezimmer und Schlafzimmer sowie der Quadratmeterzahl von Haus und Garten. Die Regressionsanalyse kann ein Modell erstellen, das eines oder mehrere dieser Features als Eingabe verwendet und den Preis eines Hauses prognostiziert.

Weitere Informationen zu den integrierten Algorithmen für überwachtes Lernen finden Sie von SageMakerSieheBetreutes Learning.

Unbeaufsichtigtes Lernen

Wenn Ihr Datensatz aus Features oder Attributen (Eingaben) besteht, die keine Bezeichnungen oder Zielwerte (Ausgaben) enthalten, dann liegt ein unbeaufsichtigtes Lernproblem vor. Bei dieser Art von Problem muss die Ausgabe basierend auf dem in den Eingabedaten entdeckten Muster vorhergesagt werden. Das Ziel bei unbeaufsichtigten Lernproblemen ist es, Muster wie Gruppierungen innerhalb der Daten zu entdecken. Es gibt eine Vielzahl von Aufgaben oder Problemtypen, auf die unbeaufsichtigtes Lernen angewendet werden kann. Hauptkomponenten- und Clusteranalysen sind zwei der Hauptmethoden, die üblicherweise für die Vorverarbeitung von Daten eingesetzt werden. Hier ist eine kurze Liste von Problemtypen, die durch unbeaufsichtigtes Lernen angegangen werden können:

  • Reduzierung der Dimensionenist in der Regel Teil eines Datenexplorationsschritts, mit dem die relevantesten Features für die Modellkonstruktion ermittelt werden. Die Idee ist, Daten aus einem hochdimensionalen, dünn besiedelten Raum in einen niedrigdimensionalen Raum zu transformieren, der die wichtigsten Eigenschaften der Originaldaten beibehält. Dies erleichtert den Fluch der Dimensionalität, der bei dünn besiedelten, hochdimensionalen Daten auftreten kann, bei denen statistische Analysen problematisch werden. Es kann auch verwendet werden, um Daten besser zu verstehen und hochdimensionale Daten auf eine niedrigere Dimensionalität zu reduzieren, die visualisiert werden kann.

  • Cluster-Analyseist 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 zum Messen der Ähnlichkeit aus und geben die Anzahl der Cluster an, die in der Analyse verwendet werden sollen.

  • Anomalieerkennungist die Identifizierung seltener Gegenstände, Ereignisse oder Beobachtungen in einem Datensatz, die Verdacht erregen, weil sie sich erheblich von den übrigen Daten unterscheiden. Die Identifizierung anomaler Gegenstände kann beispielsweise verwendet werden, um Bankbetrug oder medizinische Fehler aufzudecken. Anomalien werden auch als Ausreißer, Neuheiten, Lärm, Abweichungen und Ausnahmen bezeichnet.

  • Schätzung der Dichteist die Konstruktion von Schätzungen nicht beobachtbarer zugrunde liegender Wahrscheinlichkeitsdichtefunktionen auf der Grundlage beobachteter Daten. Eine natürliche Verwendung von Dichteschätzungen erfolgt für die Datenexploration. Dichteschätzungen können Merkmale wie Schiefe und Multimodalität in den Daten erkennen. Die grundlegendste Form der Dichteschätzung ist ein neu skaliertes Histogramm.

SageMaker bietet mehrere integrierte Algorithmen für maschinelles Lernen, die Sie für diese unbeaufsichtigten Lernaufgaben verwenden können. Weitere Informationen zu den integrierten unbeaufsichtigten Algorithmen von SageMakerSieheUnbeaufsichtigtes Lernen.

Bestärkendes Lernen

Reinforcement Learning ist eine Art des Lernens, das auf der Interaktion mit der Umwelt basiert. Diese Art des Lernens wird von einem Agenten verwendet, der Verhalten durch lernen muss trial-and-error Interaktionen mit einer dynamischen Umgebung, in der das Ziel darin besteht, die langfristigen Belohnungen zu maximieren, die der Agent als Ergebnis seiner Aktionen erhält. Belohnungen werden maximiert, indem Erkundungsaktionen, die unsichere Belohnungen haben, mit Ausnutzungsaktionen mit bekannten Belohnungen ausgetauscht werden.

Weitere Informationen zu finden Sie unter SageMakers Frameworks, Toolkits und Umgebungen für Reinforcement Learning, sieheReinforcement Learning mit Amazon nutzen SageMaker.