Mangrovenwälder sind ein wichtiger Bestandteil eines gesunden Ökosystems, und menschliche Aktivitäten sind einer der Hauptgründe für ihr allmähliches Verschwinden von den Küsten auf der ganzen Welt. Die Verwendung eines Modells für maschinelles Lernen (ML) zur Identifizierung von Mangrovenregionen aus einem Satellitenbild bietet Forschern eine effektive Möglichkeit, die Größe der Wälder im Laufe der Zeit zu überwachen. Im Teil 1 dieser Serie haben wir gezeigt, wie man Satellitendaten automatisiert sammelt und analysiert Amazon SageMaker-Studio mit interaktiver Visualisierung. In diesem Beitrag zeigen wir die Verwendung Amazon SageMaker-Autopilot um den Prozess der Erstellung eines benutzerdefinierten Mangroven-Klassifikators zu automatisieren.
Trainieren Sie ein Modell mit Autopilot
Autopilot bietet eine ausgewogene Möglichkeit, mehrere Modelle zu erstellen und das beste auszuwählen. Während mehrere Kombinationen verschiedener Datenvorverarbeitungstechniken und ML-Modelle mit minimalem Aufwand erstellt werden, bietet Autopilot dem Data Scientist auf Wunsch die vollständige Kontrolle über diese Komponentenschritte.
Sie können Autopilot mit einem der AWS SDKs verwenden (Details finden Sie in der API-Referenzhandbuch für Autopilot) oder über Studio. Wir verwenden Autopilot in unserer Studio-Lösung, indem wir die in diesem Abschnitt beschriebenen Schritte ausführen:
- Wählen Sie auf der Studio Launcher-Seite das Pluszeichen für aus Neues Autopilot-Experiment.
- Aussichten für Verbinden Sie Ihre DatenWählen Finden Sie den S3-Bucket, und geben Sie den Bucket-Namen ein, in dem Sie die Trainings- und Test-Datasets gespeichert haben.
- Aussichten für Dateiname des Datensatzes, geben Sie den Namen der Trainingsdatendatei ein, die Sie in der erstellt haben Bereiten Sie die Trainingsdaten vor Abschnitt in Teil 1.
- Aussichten für Speicherort der Ausgabedaten (S3-Bucket), geben Sie denselben Bucket-Namen ein, den Sie in Schritt 2 verwendet haben.
- Aussichten für Name des Dataset-Verzeichnisses, geben Sie einen Ordnernamen unter dem Bucket ein, in dem Autopilot Artefakte speichern soll.
- Aussichten für Ist Ihre S3-Eingabe eine Manifestdatei?, wählen Off.
- Aussichten für Target, wählen Etikette.
- Aussichten für Automatische Bereitstellung, wählen Off.
- Unter dem Erweiterte EinstellungenZ. Problemtyp für maschinelles Lernen, wählen Binäre Klassifizierung.
- Aussichten für Objektive Metrik, wählen AUC.
- Aussichten für Wählen Sie aus, wie Sie Ihr Experiment durchführen möchten, wählen Nein, führen Sie ein Pilotprojekt durch, um ein Notizbuch mit Kandidatendefinitionen zu erstellen.
- Auswählen
Experiment erstellen.
Weitere Informationen zum Erstellen eines Experiments finden Sie unter Erstellen Sie ein Amazon SageMaker Autopilot-Experiment.Die Ausführung dieses Schritts kann etwa 15 Minuten dauern. - Wenn Sie fertig sind, wählen Sie aus Öffnen Sie das Notizbuch zur Kandidatengenerierung, wodurch ein neues Notizbuch im schreibgeschützten Modus geöffnet wird.
- Auswählen
Notizbuch importieren um das Notizbuch bearbeitbar zu machen.
- Wählen Sie für Bild Daten Wissenschaft.
- Aussichten für Kernel, wählen Python 3.
- Auswählen
Auswählen.
Dieses automatisch generierte Notizbuch enthält detaillierte Erläuterungen und bietet vollständige Kontrolle über die eigentliche Modellbauaufgabe, die folgt. Eine angepasste Version der Notizbuch, wo ein Klassifikator mit Landsat-Satellitenbändern aus dem Jahr 2013 trainiert wird, ist im Code-Repository unter verfügbar notebooks/mangrove-2013.ipynb
.
Das Modellbildungs-Framework besteht aus zwei Teilen: Merkmalstransformation als Teil des Datenverarbeitungsschritts und Hyperparameteroptimierung (HPO) als Teil des Modellauswahlschritts. Alle notwendigen Artefakte für diese Aufgaben wurden während des Autopilot-Experiments erstellt und gespeichert Amazon Simple Storage-Service (Amazon S3). Die erste Notebook-Zelle lädt diese Artefakte von Amazon S3 auf die lokale herunter Amazon Sage Maker Dateisystem zur Einsichtnahme und allen notwendigen Änderungen. Es gibt zwei Ordner: generated_module
und sagemaker_automl
, wo alle Python-Module und Skripte gespeichert sind, die zum Ausführen des Notebooks erforderlich sind. Die verschiedenen Merkmalstransformationsschritte wie Imputation, Skalierung und PCA werden gespeichert als generated_modules/candidate_data_processors/dpp*.py.
Autopilot erstellt drei verschiedene Modelle basierend auf den Algorithmen XGBoost, Linear Learner und Multi-Layer Perceptron (MLP). Eine Kandidaten-Pipeline besteht aus einer der Feature-Transformationsoptionen, bekannt als data_transformer
, und ein Algorithmus. Eine Pipeline ist ein Python-Wörterbuch und kann wie folgt definiert werden:
In diesem Beispiel transformiert die Pipeline die Trainingsdaten gemäß dem Skript in generated_modules/candidate_data_processors/dpp5.py
und erstellt ein XGBoost-Modell. Hier bietet Autopilot dem Datenwissenschaftler die vollständige Kontrolle, der die automatisch generierten Schritte zur Merkmalstransformation und Modellauswahl auswählen oder seine eigene Kombination erstellen kann.
Sie können die Pipeline jetzt einem Pool für Autopilot hinzufügen, um das Experiment wie folgt auszuführen:
Dies ist ein wichtiger Schritt, bei dem Sie entscheiden können, nur eine Teilmenge der von Autopilot vorgeschlagenen Kandidaten basierend auf Fachkenntnissen zu behalten, um die Gesamtlaufzeit zu reduzieren. Behalten Sie vorerst alle Autopilot-Vorschläge bei, die Sie wie folgt auflisten können:
Name des Kandidaten | Algorithmus | Feature-Transformer |
dpp0-xgboost | xgboost | dpp0.py |
dpp1-xgboost | xgboost | dpp1.py |
dpp2-linearer-lerner | Linear-Lerner | dpp2.py |
dpp3-xgboost | xgboost | dpp3.py |
dpp4-xgboost | xgboost | dpp4.py |
dpp5-xgboost | xgboost | dpp5.py |
dpp6-mlp | MLP | dpp6.py |
Das vollständige Autopilot-Experiment besteht aus zwei Teilen. Zuerst müssen Sie die Datentransformationsjobs ausführen:
Dieser Schritt sollte für alle Kandidaten in etwa 30 Minuten abgeschlossen sein, wenn Sie keine weiteren Änderungen an vornehmen dpp*.py
Dateien.
Der nächste Schritt besteht darin, den besten Modellsatz zu erstellen, indem die Hyperparameter für die jeweiligen Algorithmen angepasst werden. Die Hyperparameter sind normalerweise in zwei Teile unterteilt: statisch und einstellbar. Die statischen Hyperparameter bleiben während des gesamten Experiments für alle Kandidaten unverändert, die denselben Algorithmus verwenden. Diese Hyperparameter werden als Wörterbuch an das Experiment übergeben. Wenn Sie sich dafür entscheiden, das beste XGBoost-Modell auszuwählen, indem Sie die AUC aus drei Runden eines fünffachen Kreuzvalidierungsschemas maximieren, sieht das Wörterbuch wie der folgende Code aus:
Für die einstellbaren Hyperparameter müssen Sie ein weiteres Wörterbuch mit Bereichen und Skalierungstyp übergeben:
Der vollständige Satz von Hyperparametern ist in der verfügbar mangrove-2013.ipynb
Notizbuch.
Um ein Experiment zu erstellen, bei dem alle sieben Kandidaten parallel getestet werden können, erstellen Sie einen HPO-Tuner mit mehreren Algorithmen:
Die objektiven Metriken werden für jeden Algorithmus unabhängig definiert:
Das Ausprobieren aller möglichen Werte von Hyperparametern für alle Experimente ist verschwenderisch; Sie können eine Bayes'sche Strategie anwenden, um einen HPO-Tuner zu erstellen:
In der Standardeinstellung wählt Autopilot 250 Jobs im Tuner aus, um das beste Modell auszuwählen. Für diesen Anwendungsfall reicht die Einstellung aus max_jobs=50
um Zeit und Ressourcen zu sparen, ohne dass es zu erheblichen Nachteilen bei der Auswahl des besten Satzes von Hyperparametern kommt. Senden Sie abschließend den HPO-Job wie folgt:
Der Vorgang dauert auf ml.m80xlarge-Instanzen etwa 5.4 Minuten. Sie können den Fortschritt auf der SageMaker-Konsole überwachen, indem Sie wählen Hyperparameter-Tuning-Jobs für Ausbildung im Navigationsbereich.
Sie können eine Vielzahl nützlicher Informationen, einschließlich der Leistung jedes Kandidaten, visualisieren, indem Sie den Namen des laufenden Jobs auswählen.
Vergleichen Sie abschließend die Modellleistung der besten Kandidaten wie folgt:
Kandidat | AUC | Laufzeit (s) |
dpp6-mlp | 0.96008 | 2711.0 |
dpp4-xgboost | 0.95236 | 385.0 |
dpp3-xgboost | 0.95095 | 202.0 |
dpp4-xgboost | 0.95069 | 458.0 |
dpp3-xgboost | 0.95015 | 361.0 |
Das auf MLP basierende leistungsstärkste Modell ist zwar geringfügig besser als die XGBoost-Modelle mit verschiedenen Auswahlmöglichkeiten an Datenverarbeitungsschritten, benötigt aber auch viel länger zum Trainieren. Wichtige Details zum MLP-Modelltraining, einschließlich der Kombination der verwendeten Hyperparameter, finden Sie wie folgt:
Schulungsauftragsname | mangrove-2-notebook–211021-2016-012-500271c8 |
TrainingsJobStatus | Abgeschlossene Verkäufe |
FinalObjectiveValue | 0.96008 |
Trainingsstartzeit | 2021-10-21 20:22:55+00:00 |
TrainingsEndzeit | 2021-10-21 21:08:06+00:00 |
TrainingElapsedTimeSeconds | 2711 |
TrainingJobDefinitionName | dpp6-mlp |
dropout_prob | 0.415778 |
Embedding_size_factor | 0.849226 |
Lagen | 256 |
Lernrate | 0.00013862 |
mini_batch_size | 317 |
Netzwerkart | Feedforward |
Gewicht_Zerfall | 1.29323e-12 |
Erstellen Sie eine Inferenzpipeline
Um Rückschlüsse auf neue Daten zu generieren, müssen Sie eine Rückschlusspipeline auf SageMaker erstellen, um das beste Modell zu hosten, das später aufgerufen werden kann, um Rückschlüsse zu generieren. Das SageMaker-Pipelinemodell erfordert drei Container als seine Komponenten: Datentransformation, Algorithmus und inverse Beschriftungstransformation (falls numerische Vorhersagen auf nicht numerische Beschriftungen abgebildet werden müssen). Der Kürze halber wird im folgenden Snippet nur ein Teil des erforderlichen Codes gezeigt; Der vollständige Code ist in der verfügbar mangrove-2013.ipynb
Notizbuch:
Nachdem die Modellcontainer erstellt wurden, können Sie die Pipeline wie folgt erstellen und bereitstellen:
Die Endpoint-Bereitstellung dauert etwa 10 Minuten.
Rufen Sie mithilfe eines Endpunkts Rückschlüsse auf das Testdataset ab
Nachdem der Endpunkt bereitgestellt wurde, können Sie ihn mit einer Nutzlast der Merkmale B1–B7 aufrufen, um jedes Pixel in einem Bild entweder als Mangrove (1) oder als Sonstiges (0) zu klassifizieren:
Vollständige Details zur Nachbearbeitung der Modellvorhersagen für die Auswertung und Darstellung sind in verfügbar notebooks/model_performance.ipynb
.
Rufen Sie mithilfe einer Stapeltransformation Rückschlüsse auf das Testdataset ab
Nachdem Sie nun das leistungsstärkste Modell mit Autopilot erstellt haben, können wir das Modell für Rückschlüsse verwenden. Um Rückschlüsse auf große Datasets zu erhalten, ist es effizienter, eine Stapeltransformation zu verwenden. Lassen Sie uns Vorhersagen für das gesamte Dataset (Training und Test) generieren und die Ergebnisse an die Features anhängen, damit wir weitere Analysen durchführen können, um beispielsweise die Vorhersagen im Vergleich zu den tatsächlichen Daten und die Verteilung der Features auf die vorhergesagten Klassen zu überprüfen.
Zunächst erstellen wir eine Manifestdatei in Amazon S3, die auf die Speicherorte der Trainings- und Testdaten aus den vorherigen Datenverarbeitungsschritten verweist:
Jetzt können wir einen Batch-Transformationsjob erstellen. Denn unser Eingangszug und Testdatensatz haben label
Als letzte Spalte müssen wir sie während der Inferenz löschen. Dazu passieren wir InputFilter
der DataProcessing
Streit. Der Code "$[:-2]"
zeigt an, dass die letzte Spalte gelöscht werden soll. Die vorhergesagte Ausgabe wird dann zur weiteren Analyse mit den Quelldaten verknüpft.
Im folgenden Code erstellen wir die Argumente für den Batch-Transformationsjob und übergeben sie dann an die create_transform_job
Funktion:
Sie können den Status des Jobs in der SageMaker-Konsole überwachen.
Visualisieren Sie die Modellleistung
Sie können nun die Leistung des besten Modells im Testdatensatz, bestehend aus Regionen aus Indien, Myanmar, Kuba und Vietnam, als Konfusionsmatrix visualisieren. Das Modell hat einen hohen Wiedererkennungswert für Pixel, die Mangroven darstellen, aber nur eine Genauigkeit von etwa 75 %. Die Genauigkeit von Nicht-Mangroven- oder anderen Pixeln liegt bei 99 % mit einem 85 %-Recall. Sie können den Wahrscheinlichkeitsgrenzwert der Modellvorhersagen optimieren, um die jeweiligen Werte je nach Anwendungsfall anzupassen.
Es ist erwähnenswert, dass die Ergebnisse eine deutliche Verbesserung gegenüber dem integrierten smileCart-Modell darstellen.
Modellvorhersagen visualisieren
Schließlich ist es nützlich, die Modellleistung in bestimmten Regionen auf der Karte zu beobachten. Im folgenden Bild ist das Mangrovengebiet an der Grenze zwischen Indien und Bangladesch rot dargestellt. Punkte, die aus dem zum Testdatensatz gehörenden Landsat-Bildpatch entnommen wurden, werden der Region überlagert, wobei jeder Punkt ein Pixel ist, von dem das Modell feststellt, dass es Mangroven darstellt. Die blauen Punkte werden vom Modell korrekt klassifiziert, während die schwarzen Punkte Fehler des Modells darstellen.
Das folgende Bild zeigt nur die Punkte, die das Modell vorhergesagt hat, keine Mangroven darzustellen, mit demselben Farbschema wie im vorherigen Beispiel. Der graue Umriss ist der Teil des Landsat-Patches, der keine Mangroven enthält. Wie aus dem Bild hervorgeht, macht das Modell keinen Fehler bei der Klassifizierung von Punkten auf dem Wasser, steht jedoch vor einer Herausforderung, wenn es Pixel, die Mangroven darstellen, von denen unterscheidet, die normales Blattwerk darstellen.
Das folgende Bild zeigt die Modellleistung in der Mangrovenregion von Myanmar.
In der folgenden Abbildung erkennt das Modell besser Mangrovenpixel.
Aufräumen
Der SageMaker-Inferenzendpunkt verursacht weiterhin Kosten, wenn er weiter ausgeführt wird. Löschen Sie den Endpunkt wie folgt, wenn Sie fertig sind:
Zusammenfassung
Diese Beitragsreihe bot Data Scientists ein End-to-End-Framework zur Lösung von GIS-Problemen. Teil 1 zeigte den ETL-Prozess und eine bequeme Möglichkeit, visuell mit den Daten zu interagieren. Teil 2 zeigte, wie man Autopilot verwendet, um die Erstellung eines benutzerdefinierten Mangroven-Klassifikators zu automatisieren.
Sie können dieses Framework verwenden, um neue Satelliten-Datasets zu erkunden, die einen reichhaltigeren Satz von Bändern enthalten, die für die Mangrovenklassifizierung nützlich sind, und das Feature-Engineering erkunden, indem Sie Domänenwissen einbeziehen.
Über die Autoren
Andrej Ivanovic ist ein angehender Master-Student der Informatik an der University of Toronto und kürzlich Absolvent des Engineering Science-Programms an der University of Toronto mit dem Hauptfach Machine Intelligence und dem Nebenfach Robotik/Mechatronik. Er interessiert sich für Computer Vision, Deep Learning und Robotik. Er hat die in diesem Beitrag vorgestellte Arbeit während seines Sommerpraktikums bei Amazon durchgeführt.
David Dong ist Data Scientist bei Amazon Web Services.
Arkajyoti Misra ist Data Scientist bei Amazon LastMile Transportation. Er setzt sich leidenschaftlich dafür ein, Computer-Vision-Techniken anzuwenden, um Probleme zu lösen, die der Erde helfen. Er arbeitet gerne mit gemeinnützigen Organisationen zusammen und ist Gründungsmitglied von ekipi.org.
- Coinsmart. Europas beste Bitcoin- und Krypto-Börse.
- Platoblockkette. Web3-Metaverse-Intelligenz. Wissen verstärkt. DEN FREIEN ZUGANG.
- CryptoHawk. Altcoin-Radar. Kostenlose Testphase.
- Quelle: https://aws.amazon.com/blogs/machine-learning/part-2-identify-mangrove-forests-using-satellite-image-features-using-amazon-sagemaker-studio-and-amazon-sagemaker- Autopilot/
- "
- 10
- 100
- a
- Über uns
- Nach
- Aktivitäten
- Algorithmus
- Algorithmen
- Alle
- Amazon
- Amazon Web Services
- unter
- Analyse
- Analytik
- analysieren
- Ein anderer
- Anwendung
- Bereich
- Argumente
- um
- automatisieren
- Automatisiert
- Im Prinzip so, wie Sie es von Google Maps kennen.
- verfügbar
- AWS
- weil
- BESTE
- Schwarz
- Körper
- Grenze
- bauen
- Building
- baut
- eingebaut
- Kandidat
- Kandidaten
- Häuser
- challenges
- Entscheidungen
- Auswählen
- Unterricht
- Einstufung
- eingestuft
- Code
- Kolonne
- Kombination
- Kombinationen
- abschließen
- Komponente
- Komponenten
- Computer
- Computerwissenschaften
- Verwirrung
- Konsul (Console)
- Behälter
- weiter
- Smartgeräte App
- Praktische
- erstellen
- erstellt
- schafft
- Erstellen
- Cuba
- Original
- technische Daten
- Datenverarbeitung
- Datenwissenschaftler
- tief
- Abhängig
- einsetzen
- Einsatz
- Einsatz
- detailliert
- Details
- DID
- anders
- Display
- Verteilung
- Tut nicht
- Domain
- Downloads
- Drop
- im
- jeder
- Erde
- Ökosystem
- Effektiv
- effizient
- Anstrengung
- End-to-End
- Endpunkt
- Entwicklung
- Enter
- Auswertung
- Beispiel
- Experiment
- Expertise
- ERKUNDEN
- Gesichter
- Fashion
- Merkmal
- Eigenschaften
- Endlich
- Vorname
- folgen
- Folgende
- folgt
- Gründung
- Unser Ansatz
- für
- voller
- Funktion
- weiter
- erzeugen
- erzeugt
- Generation
- Abschluss
- grau
- Guide
- Höhe
- hilft
- High
- Ultraschall
- Hilfe
- HTTPS
- human
- identifizieren
- Identifizierung
- Image
- wichtig
- Verbesserung
- das
- Einschließlich
- unabhängig
- Indien
- Information
- Varianten des Eingangssignals:
- Instanz
- Intelligenz
- interaktive
- interessiert
- IT
- Job
- Jobs
- beigetreten
- Behalten
- Wissen
- bekannt
- Label
- Etiketten
- grosse
- lernen
- Line
- Liste
- aus einer regionalen
- Standorte
- Standorte
- Maschine
- Maschinelles Lernen
- Dur
- um
- Karte
- Meister
- Matrix
- Materie
- Mitglied
- Metrik
- Fehler
- ML
- Modell
- für
- Überwachen
- mehr
- mehrere
- Myanmar
- Navigation
- notwendig,
- weiter
- Non-Profit-
- Notizbuch
- öffnet
- Optimierung
- Optionen
- Organisationen
- Andere
- besitzen
- Teil
- besondere
- leidenschaftlich
- Patch
- Leistung
- Leistungen
- Durchführung
- Pilot
- Points
- Punkte
- Pool
- möglich
- BLOG-POSTS
- Prognosen
- früher
- Aufgabenstellung:
- Probleme
- Prozessdefinierung
- Verarbeitung
- Programm
- vorausgesetzt
- bietet
- Gründe
- kürzlich
- Veteran
- Region
- regulär
- bleiben
- Quelle
- vertreten
- Darstellen
- Anforderung
- falls angefordert
- erfordert
- Forscher
- Downloads
- Die Ergebnisse
- Robotik
- Rollen
- Runde
- Führen Sie
- Laufen
- gleich
- Satellit
- Speichern
- Skalierung
- Schema
- Wissenschaft
- Wissenschaftler
- Wissenschaftler
- Auswahl
- Modellreihe
- Leistungen
- kompensieren
- Einstellung
- mehrere
- Teilen
- erklären
- gezeigt
- Schild
- signifikant
- Einfacher
- Größe
- So
- solide
- Lösung
- LÖSEN
- spezifisch
- Stand
- Status
- Lagerung
- speichern
- Strategie
- Schüler und Studenten
- Studio Adressen
- Fach
- Sommer
- System
- und Aufgaben
- Techniken
- AGB
- Test
- Das
- Die Quelle
- die Welt
- nach drei
- Durch
- während
- Zeit
- Top
- top 5
- toronto
- Ausbildung
- Transformieren
- Transformation
- Transformationen
- , des Transports
- für
- Universität
- -
- gewöhnlich
- Bestätigung
- Wert
- verschiedene
- Version
- Seh-
- Visualisierung
- Wasser
- Netz
- Web-Services
- während
- WHO
- ohne
- Arbeiten
- weltweit wie ausgehandelt und gekauft ausgeführt wird.
- wert
- X
- Ihr