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.
Arten von Algorithmen
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 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 für das Machine Learning und Algorithmen, die für verschiedene Problemtypen geeignet sind.
Themen
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 bereit sind, bereitgestellt oder mit deren Hilfe eine Feinabstimmung und Bereitstellung vorgenommen werden kann. SageMaker JumpStart
-
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 integrierte Lösung gibt, die funktioniert, versuchen Sie, eine zu entwickeln, die vorgefertigte Images für maschinelles Lernen und Deep-Learning-Frameworks für unterstützte Frameworks wie Scikit-Learn,,, TensorFlow oder Chainer verwendet. PyTorch MXNet
-
Wenn Sie benutzerdefinierte Pakete ausführen oder Code verwenden müssen, der nicht Teil eines unterstützten Frameworks ist oder über verfügbar ist PyPi, 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.
Themen
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 | PyPi nur | Ja | Mittelschwer |
Spark ML | Ja | Ja | PyPi nur | Ja | Mittelschwer |
XGBoost(Open Source) | Ja | Ja | PyPi nur | Ja | Mittelschwer |
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 eines integrierten Algorithmus
Bei der Auswahl eines Algorithmus für Ihre Art von Problem und Daten ist es am einfachsten, einen der integrierten Algorithmen SageMaker von Amazon 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 Recheninstanzen hinweg und GPU unterstützen sofort 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 vorab trainiertes Modell verfügen, ist es möglicherweise immer noch einfacher, dessen logische Folge zu verwenden SageMaker und die Hyperparameter einzugeben, die Sie bereits kennen, als es mithilfe des Skriptmodus auf einem unterstützten Framework zu portieren.
Weitere Informationen zu den integrierten Algorithmen von finden Sie unter. SageMaker Integrierte Algorithmen und vortrainierte Modelle in Amazon SageMaker
Wichtige Informationen zu Docker-Registrierungspfaden, Datenformaten, empfohlenen EC2 Instanztypen und CloudWatch Protokollen, die allen integrierten Algorithmen von gemeinsam sind SageMaker, finden Sie unterParameter für integrierte 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, werden SageMaker die meisten gängigen Frameworks für maschinelles Lernen unterstützt. Diese Frameworks sind mit dem entsprechenden Framework und einigen zusätzlichen Python-Paketen wie Pandas und vorinstalliert NumPy, sodass Sie Ihren eigenen Code zum Trainieren eines Algorithmus schreiben können. Mit diesen Frameworks können Sie auch jedes Python-Paket installieren, auf dem Sie gehostet werden, PyPi 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 andere Frameworks den Algorithmus PyTorch möglicherweise selbst implementieren müssen. TensorFlow Die einzige Einschränkung bei der Verwendung eines unterstützten Framework-Images besteht darin, dass Sie keine Softwarepakete importieren können, die nicht auf dem Framework-Image gehostet werden PyPi oder die nicht bereits im Framework-Image enthalten sind.
Weitere Informationen zu den Frameworks, die von unterstützt werden SageMaker, finden Sie unterFrameworks 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 irgendwo 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, 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 Machine Learning zu schreiben. Ihr Docker-Image muss in ein Online-Repository wie die Amazon Elastic Container Registry (ECR) hochgeladen werden, bevor Sie Ihr Modell richtig trainieren und bereitstellen können.
Weitere Informationen zu benutzerdefinierten Docker-Images finden Sie unter SageMaker. Docker-Container für das Training und die Bereitstellung von Modellen
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, mit denen SageMaker diese Problemtypen behoben werden können, finden Sie unterIntegrierte Algorithmen und vortrainierte Modelle in Amazon SageMaker.
Ü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 maschinelles Lernen, die Sie für diese Aufgaben des unbeaufsichtigten Lernens verwenden können. Weitere Informationen zu den integrierten Algorithmen für unbeaufsichtigtes Arbeiten von finden Sie SageMaker 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 mit einer dynamischen Umgebung erlernen muss, in der das Ziel darin besteht, die langfristigen Vorteile zu maximieren, die der Agent als Ergebnis seiner Aktionen erhält. Die Belohnungen werden maximiert, indem das Erkunden von Aktionen mit ungewissen Belohnungen und das Ausnutzen von Aktionen mit bekannten Belohnungen gegeneinander abgewogen wird.
Weitere Informationen zu den SageMaker Frameworks, Toolkits und Umgebungen für Reinforcement-Learning finden Sie unterVerwenden Sie Reinforcement Learning mit Amazon SageMaker.