Mangrovebossen zijn een belangrijk onderdeel van een gezond ecosysteem en menselijke activiteiten zijn een van de belangrijkste redenen voor hun geleidelijke verdwijning van kusten over de hele wereld. Het gebruik van een machine learning (ML) -model om mangrovegebieden te identificeren op basis van een satellietbeeld, geeft onderzoekers een effectieve manier om de omvang van de bossen in de loop van de tijd te volgen. In Deel 1 van deze serie hebben we laten zien hoe je satellietgegevens op een geautomatiseerde manier kunt verzamelen en analyseren in Amazon SageMaker Studio met interactieve visualisatie. In dit bericht laten we zien hoe te gebruiken Amazon SageMaker-stuurautomaat om het proces van het bouwen van een aangepaste mangroveclassificatie te automatiseren.
Een model trainen met Autopilot
Autopilot biedt een uitgebalanceerde manier om verschillende modellen te bouwen en de beste te selecteren. Terwijl het creëren van meerdere combinaties van verschillende datavoorverwerkingstechnieken en ML-modellen met minimale inspanning, biedt Autopilot, indien gewenst, volledige controle over deze componentstappen aan de datawetenschapper.
U kunt Autopilot gebruiken met een van de AWS SDK's (details beschikbaar in de API-referentiegids voor Autopilot) of via Studio. We gebruiken Autopilot in onze Studio-oplossing volgens de stappen die in deze sectie worden beschreven:
- Kies op de Studio Launcher-pagina het plusteken voor Nieuw Autopilot-experiment.
- Voor Verbind uw gegevensselecteer S3-emmer zoekenen voer de bucketnaam in waar u de trainings- en testgegevenssets hebt bewaard.
- Voor Bestandsnaam dataset, voer de naam in van het trainingsgegevensbestand dat u hebt gemaakt in de Bereid de trainingsgegevens voor sectie in Deel 1.
- Voor Uitvoergegevenslocatie (S3-bucket), voer dezelfde bucketnaam in die u in stap 2 heeft gebruikt.
- Voor Naam datasetdirectory, voer een mapnaam in onder de bucket waarin u wilt dat Autopilot artefacten opslaat.
- Voor Is uw S3-invoer een manifestbestand?, kiezen af.
- Voor doelwit, kiezen label.
- Voor Automatisch implementeren, kiezen af.
- Onder de geavanceerde instellingenvoor Type machine learning-probleem, kiezen Binaire classificatie.
- Voor Objectieve statistiek, kiezen AUC.
- Voor Kies hoe u uw experiment wilt uitvoeren, kiezen Nee, voer een pilot uit om een notitieboek te maken met kandidaatdefinities.
- Kies Creëer een experiment.
Voor meer informatie over het maken van een experiment, zie: Een Amazon SageMaker Autopilot-experiment maken.Het kan ongeveer 15 minuten duren om deze stap uit te voeren. - Als u klaar bent, kiest u Notitieblok voor kandidaat-generatie openen, waarmee een nieuwe notebook in alleen-lezen modus wordt geopend.
- Kies Notitieboek importeren om het notitieboek bewerkbaar te maken.
- Kies bij Afbeelding data Science.
- Voor pit, kiezen Python 3.
- Kies kies.
Deze automatisch gegenereerde notebook heeft gedetailleerde uitleg en biedt volledige controle over de eigenlijke modelbouwtaak die moet worden gevolgd. Een aangepaste versie van de notitieboekje, waar een classifier wordt getraind met behulp van Landsat-satellietbanden uit 2013, is beschikbaar in de coderepository onder notebooks/mangrove-2013.ipynb
.
Het modelbouwraamwerk bestaat uit twee delen: kenmerktransformatie als onderdeel van de gegevensverwerkingsstap en hyperparameteroptimalisatie (HPO) als onderdeel van de modelselectiestap. Alle benodigde artefacten voor deze taken zijn gemaakt tijdens het Autopilot-experiment en opgeslagen in Amazon eenvoudige opslagservice (Amazon S3). De eerste notebookcel downloadt die artefacten van Amazon S3 naar de lokale Amazon Sage Maker bestandssysteem voor inspectie en eventuele noodzakelijke wijzigingen. Er zijn twee mappen: generated_module
en sagemaker_automl
, waar alle Python-modules en -scripts die nodig zijn om de notebook uit te voeren, zijn opgeslagen. De verschillende functietransformatiestappen zoals imputatie, schaling en PCA worden opgeslagen als: generated_modules/candidate_data_processors/dpp*.py.
Autopilot maakt drie verschillende modellen op basis van de algoritmen XGBoost, lineaire leerling en meerlaagse perceptron (MLP). Een kandidaat-pijplijn bestaat uit een van de opties voor functietransformaties, ook wel bekend als: data_transformer
, en een algoritme. Een pijplijn is een Python-woordenboek en kan als volgt worden gedefinieerd:
In dit voorbeeld transformeert de pijplijn de trainingsgegevens volgens het script in generated_modules/candidate_data_processors/dpp5.py
en bouwt een XGBoost-model. Dit is waar Autopilot volledige controle biedt aan de datawetenschapper, die de automatisch gegenereerde functietransformatie en modelselectiestappen kan kiezen of hun eigen combinatie kan bouwen.
U kunt de pijplijn nu als volgt aan een pool toevoegen zodat Autopilot het experiment kan uitvoeren:
Dit is een belangrijke stap waarbij u kunt besluiten om alleen een subset van door Autopilot voorgestelde kandidaten te behouden, op basis van inhoudelijke expertise, om de totale doorlooptijd te verkorten. Bewaar voorlopig alle Autopilot-suggesties, die u als volgt kunt opsommen:
Naam van de kandidaat | Algoritme | Functie Transformator |
dpp0-xgboost | xgboost | dpp0.py |
dpp1-xgboost | xgboost | dpp1.py |
dpp2-lineaire leerling | lineaire leerling | dpp2.py |
dpp3-xgboost | xgboost | dpp3.py |
dpp4-xgboost | xgboost | dpp4.py |
dpp5-xgboost | xgboost | dpp5.py |
dpp6-mlp | mlp | dpp6.py |
Het volledige Autopilot-experiment bestaat uit twee delen. Eerst moet u de gegevenstransformatietaken uitvoeren:
Deze stap zou voor alle kandidaten in ongeveer 30 minuten moeten worden voltooid, als u geen verdere wijzigingen aanbrengt in de dpp*.py
bestanden.
De volgende stap is het bouwen van de beste set modellen door de hyperparameters voor de respectievelijke algoritmen af te stemmen. De hyperparameters zijn meestal verdeeld in twee delen: statisch en afstembaar. De statische hyperparameters blijven gedurende het hele experiment ongewijzigd voor alle kandidaten die hetzelfde algoritme delen. Deze hyperparameters worden als een woordenboek aan het experiment doorgegeven. Als u ervoor kiest om het beste XGBoost-model te kiezen door de AUC te maximaliseren uit drie ronden van een vijfvoudig kruisvalidatieschema, ziet het woordenboek eruit als de volgende code:
Voor de afstembare hyperparameters moet u een ander woordenboek doorgeven met bereiken en schaaltype:
De complete set hyperparameters is beschikbaar in de mangrove-2013.ipynb
notitieboekje.
Als u een experiment wilt maken waarbij alle zeven kandidaten parallel kunnen worden getest, maakt u een HPO-tuner met meerdere algoritmen:
De objectieve metrieken worden voor elk algoritme onafhankelijk gedefinieerd:
Het is verspilling om alle mogelijke waarden van hyperparameters voor alle experimenten te proberen; u kunt een Bayesiaanse strategie toepassen om een HPO-tuner te creëren:
In de standaardinstelling kiest Autopilot 250 banen in de tuner om het beste model te kiezen. Voor dit gebruik is het voldoende om in te stellen max_jobs=50
om tijd en middelen te besparen, zonder enige significante boete in termen van het kiezen van de beste set hyperparameters. Dien ten slotte de HPO-opdracht als volgt in:
Het proces duurt ongeveer 80 minuten op ml.m5.4xgrote instanties. U kunt de voortgang volgen op de SageMaker-console door te kiezen voor Taken voor het afstemmen van hyperparameters voor Trainingen in het navigatievenster.
U kunt een groot aantal nuttige informatie visualiseren, waaronder de prestaties van elke kandidaat, door de naam van de lopende baan te kiezen.
Vergelijk ten slotte de modelprestaties van de beste kandidaten als volgt:
kandidaat | AUC | looptijd (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 |
Het best presterende model op basis van MLP, hoewel marginaal beter dan de XGBoost-modellen met verschillende keuzes van gegevensverwerkingsstappen, duurt ook veel langer om te trainen. Belangrijke details over de MLP-modeltraining, inclusief de combinatie van gebruikte hyperparameters, vindt u als volgt:
TrainingJobNaam | mangrove-2-notebook–211021-2016-012-500271c8 |
TrainingJobstatus | Voltooid |
FinalObjectiveWaarde | 0.96008 |
TrainingStartTijd | 2021-10-21 20:22:55+00:00 |
TrainingEindtijd | 2021-10-21 21:08:06+00:00 |
TrainingVerstrekenTijdSeconden | 2711 |
TrainingJobDefinitieNaam | dpp6-mlp |
uitval_prob | 0.415778 |
inbedding_size_factor | 0.849226 |
Legkippen | 256 |
leertempo | 0.00013862 |
mini_batch_grootte | 317 |
netwerktype | feedforward |
gewicht_verval | 1.29323e-12 |
Een inferentiepijplijn maken
Om gevolgtrekkingen op nieuwe gegevens te genereren, moet u een inferentiepijplijn op SageMaker construeren om het beste model te hosten dat later kan worden aangeroepen om gevolgtrekkingen te genereren. Het SageMaker-pijplijnmodel vereist drie containers als componenten: gegevenstransformatie, algoritme en inverse labeltransformatie (als numerieke voorspellingen moeten worden toegewezen aan niet-numerieke labels). Kortheidshalve wordt slechts een deel van de vereiste code weergegeven in het volgende fragment; de volledige code is beschikbaar in de mangrove-2013.ipynb
notitieboekje:
Nadat de modelcontainers zijn gebouwd, kunt u de pijplijn als volgt bouwen en implementeren:
De implementatie van het eindpunt duurt ongeveer 10 minuten.
Verkrijg inferentie over de testdataset met behulp van een eindpunt
Nadat het eindpunt is geïmplementeerd, kunt u het aanroepen met een lading aan functies B1-B7 om elke pixel in een afbeelding te classificeren als mangrove (1) of andere (0):
Volledige details over het nabewerken van de modelvoorspellingen voor evaluatie en plotten zijn beschikbaar in: notebooks/model_performance.ipynb
.
Verkrijg inferentie over de testdataset met behulp van een batchtransformatie
Nu u het best presterende model met Autopilot hebt gemaakt, kunnen we het model gebruiken voor gevolgtrekkingen. Voor het verkrijgen van gevolgtrekkingen over grote gegevenssets is het efficiënter om een batchtransformatie te gebruiken. Laten we voorspellingen genereren over de gehele dataset (training en test) en de resultaten toevoegen aan de kenmerken, zodat we verdere analyses kunnen uitvoeren om bijvoorbeeld de voorspelde vs. werkelijke waarden en de verdeling van kenmerken over voorspelde klassen te controleren.
Eerst maken we een manifestbestand in Amazon S3 dat verwijst naar de locaties van de trainings- en testgegevens uit de vorige gegevensverwerkingsstappen:
Nu kunnen we een batchtransformatietaak maken. Omdat onze invoertrein en testdataset hebben: label
als de laatste kolom, moeten we deze tijdens de inferentie laten vallen. Om dat te doen, passeren we InputFilter
in de DataProcessing
argument. De code "$[:-2]"
geeft aan dat de laatste kolom moet worden verwijderd. De voorspelde output wordt vervolgens samengevoegd met de brongegevens voor verdere analyse.
In de volgende code construeren we de argumenten voor de batchtransformatietaak en geven deze door aan de create_transform_job
functie:
U kunt de status van de taak volgen op de SageMaker-console.
Modelprestaties visualiseren
U kunt nu de prestaties van het beste model op de testdataset, bestaande uit regio's uit India, Myanmar, Cuba en Vietnam, visualiseren als een verwarringsmatrix. Het model heeft een hoge terugroepwaarde voor pixels die mangroven vertegenwoordigen, maar slechts ongeveer 75% precisie. De precisie van niet-mangrove of andere pixels staat op 99% met een terugroepactie van 85%. U kunt de waarschijnlijkheidsgrens van de modelvoorspellingen afstemmen om de respectieve waarden aan te passen, afhankelijk van het specifieke gebruik.
Het is vermeldenswaard dat de resultaten een aanzienlijke verbetering zijn ten opzichte van het ingebouwde smileCart-model.
Modelvoorspellingen visualiseren
Ten slotte is het handig om de prestaties van het model op specifieke regio's op de kaart te bekijken. In de volgende afbeelding is het mangrovegebied in de grens tussen India en Bangladesh in rood weergegeven. Punten die zijn bemonsterd uit de Landsat-beeldpatch die bij de testgegevensset hoort, worden over het gebied heen gelegd, waarbij elk punt een pixel is waarvan het model bepaalt dat het mangroven vertegenwoordigt. De blauwe punten worden door het model correct geclassificeerd, terwijl de zwarte punten fouten door het model vertegenwoordigen.
De volgende afbeelding toont alleen de punten die volgens het model geen mangroven vertegenwoordigen, met hetzelfde kleurenschema als in het voorgaande voorbeeld. De grijze omtrek is het deel van de Landsat-patch dat geen mangroven bevat. Zoals blijkt uit de afbeelding, maakt het model geen enkele fout bij het classificeren van punten op water, maar staat het voor een uitdaging bij het onderscheiden van pixels die mangroven vertegenwoordigen van die die normaal gebladerte vertegenwoordigen.
De volgende afbeelding toont de prestaties van een model in de mangroveregio van Myanmar.
In de volgende afbeelding kan het model mangrovepixels beter identificeren.
Opruimen
Het SageMaker-inferentie-eindpunt blijft kosten maken als het actief blijft. Verwijder het eindpunt als volgt wanneer u klaar bent:
Conclusie
Deze reeks berichten bood een end-to-end raamwerk voor datawetenschappers voor het oplossen van GIS-problemen. Deel 1 toonde het ETL-proces en een handige manier om visueel met de gegevens om te gaan. Deel 2 liet zien hoe Autopilot kan worden gebruikt om het bouwen van een aangepaste mangroveclassificatie te automatiseren.
U kunt dit raamwerk gebruiken om nieuwe satellietdatasets te verkennen die een rijkere reeks banden bevatten die nuttig zijn voor mangroveclassificatie en om feature-engineering te verkennen door domeinkennis op te nemen.
Over de auteurs
Andrej Ivanovic is een inkomende masterstudent Computerwetenschappen aan de Universiteit van Toronto en recent afgestudeerd aan het Engineering Science-programma aan de Universiteit van Toronto, met als hoofdvak Machine Intelligence met een minor Robotics/Mechatronics. Hij is geïnteresseerd in computervisie, deep learning en robotica. Hij deed het werk dat in deze post wordt gepresenteerd tijdens zijn zomerstage bij Amazon.
David Dong is een datawetenschapper bij Amazon Web Services.
Arkajyoti Misra is een datawetenschapper bij Amazon LastMile Transportation. Hij is gepassioneerd door het toepassen van Computer Vision-technieken om problemen op te lossen die de aarde helpen. Hij werkt graag met non-profitorganisaties en is een van de oprichters van ekipi.org.
- Coinsmart. Europa's beste Bitcoin- en crypto-uitwisseling.
- Platoblockchain. Web3 Metaverse Intelligentie. Kennis versterkt. GRATIS TOEGANG.
- CryptoHawk. Altcoin-radar. Gratis proefversie.
- Bron: https://aws.amazon.com/blogs/machine-learning/part-2-identify-mangrove-forests-using-satellite-image-features-using-amazon-sagemaker-studio-and-amazon-sagemaker- automatische piloot/
- "
- 10
- 100
- a
- Over
- Volgens
- activiteiten
- algoritme
- algoritmen
- Alles
- Amazone
- Amazon Web Services
- te midden van
- analyse
- analytics
- analyseren
- Nog een
- Het toepassen van
- GEBIED
- argumenten
- rond
- automatiseren
- geautomatiseerde
- webmaster.
- Beschikbaar
- AWS
- omdat
- BEST
- Zwart
- lichaam
- grens
- bouw
- Gebouw
- bouwt
- ingebouwd
- kandidaat
- kandidaten
- geval
- uitdagen
- keuzes
- Kies
- klassen
- classificatie
- geklasseerd
- code
- Kolom
- combinatie van
- combinaties
- compleet
- bestanddeel
- componenten
- computer
- Computer Science
- verwarring
- troosten
- containers
- blijft
- onder controle te houden
- gemakkelijk
- en je merk te creëren
- aangemaakt
- creëert
- Wij creëren
- Cuba
- gewoonte
- gegevens
- gegevensverwerking
- data scientist
- deep
- Afhankelijk
- implementeren
- ingezet
- inzet
- gedetailleerd
- gegevens
- DEED
- anders
- Display
- distributie
- Nee
- domein
- downloads
- Val
- gedurende
- elk
- aarde
- ecosysteem
- effectief
- doeltreffend
- inspanning
- eind tot eind
- Endpoint
- Engineering
- Enter
- evaluatie
- voorbeeld
- experiment
- expertise
- Verken
- gezichten
- Mode
- Kenmerk
- Voordelen
- Tot slot
- Voornaam*
- volgen
- volgend
- volgt
- oprichten
- Achtergrond
- oppompen van
- vol
- functie
- verder
- voortbrengen
- gegenereerde
- generatie
- afstuderen
- grijs
- gids
- Hoogte
- helpt
- Hoge
- Hoe
- How To
- HTTPS
- menselijk
- identificeren
- het identificeren van
- beeld
- belangrijk
- verbetering
- omvatten
- Inclusief
- onafhankelijk
- Indië
- informatie
- invoer
- instantie
- Intelligentie
- interactieve
- geïnteresseerd
- IT
- Jobomschrijving:
- Vacatures
- toegetreden
- Houden
- kennis
- bekend
- label
- labels
- Groot
- leren
- Lijn
- Lijst
- lokaal
- plaats
- locaties
- machine
- machine learning
- groot
- maken
- kaart
- master's
- Matrix
- Materie
- lid
- Metriek
- fouten
- ML
- model
- modellen
- monitor
- meer
- meervoudig
- Myanmar
- Navigatie
- noodzakelijk
- volgende
- non-profit
- notitieboekje
- opent
- optimalisatie
- Opties
- organisaties
- Overige
- het te bezitten.
- deel
- bijzonder
- hartstochtelijk
- Patch
- prestatie
- optredens
- uitvoerend
- piloot
- punt
- punten
- zwembad
- mogelijk
- Berichten
- Voorspellingen
- vorig
- probleem
- problemen
- verwerking
- Programma
- mits
- biedt
- redenen
- recent
- verminderen
- regio
- regelmatig
- blijven
- bewaarplaats
- vertegenwoordigen
- vertegenwoordigen
- te vragen
- nodig
- vereist
- onderzoekers
- Resources
- Resultaten
- robotica
- Rol
- rondes
- lopen
- lopend
- dezelfde
- satelliet
- Bespaar
- scaling
- schema
- Wetenschap
- Wetenschapper
- wetenschappers
- selectie
- -Series
- Diensten
- reeks
- het instellen van
- verscheidene
- Delen
- tonen
- getoond
- teken
- aanzienlijke
- Eenvoudig
- Maat
- So
- solide
- oplossing
- OPLOSSEN
- specifiek
- staan
- Status
- mediaopslag
- shop
- Strategie
- Student
- studio
- onderwerpen
- zomer
- system
- taken
- technieken
- termen
- proef
- De
- De Bron
- de wereld
- drie
- Door
- overal
- niet de tijd of
- top
- top 5
- toronto
- Trainingen
- Transformeren
- Transformatie
- transformaties
- vervoer
- voor
- universiteit-
- .
- doorgaans
- bevestiging
- waarde
- divers
- versie
- visie
- visualisatie
- Water
- web
- webservices
- en
- WIE
- zonder
- Mijn werk
- wereld
- waard
- X
- Your