Mangroveskove er en vigtig del af et sundt økosystem, og menneskelige aktiviteter er en af hovedårsagerne til deres gradvise forsvinden fra kyststrækninger rundt om i verden. Brug af en maskinlæringsmodel (ML) til at identificere mangroveregioner fra et satellitbillede giver forskere en effektiv måde at overvåge skovenes størrelse over tid. I del 1 i denne serie viste vi, hvordan man indsamler satellitdata på en automatiseret måde og analyserer dem Amazon SageMaker Studio med interaktiv visualisering. I dette indlæg viser vi, hvordan du bruger Amazon SageMaker Autopilot at automatisere processen med at bygge en brugerdefineret mangrove-klassifikator.
Træn en model med autopilot
Autopilot giver en afbalanceret måde at bygge flere modeller på og vælge den bedste. Mens du skaber flere kombinationer af forskellige dataforbehandlingsteknikker og ML-modeller med minimal indsats, giver Autopilot dataforskeren fuldstændig kontrol over disse komponenttrin, hvis det ønskes.
Du kan bruge autopilot ved at bruge et af AWS SDK'erne (detaljer tilgængelige i API referencevejledning til autopilot) eller gennem Studio. Vi bruger Autopilot i vores Studio-løsning ved at følge de trin, der er beskrevet i dette afsnit:
- På Studio Launcher-siden skal du vælge plustegnet for Nyt autopilot-eksperiment.
- Til Tilslut dine data, Vælg Find S3 spand, og indtast det spandnavn, hvor du opbevarede trænings- og testdatasættene.
- Til Datasæt filnavn, indtast navnet på den træningsdatafil, du oprettede i Forbered træningsdataene afsnit i del 1.
- Til Outputdataplacering (S3-bøtte), indtast det samme spandnavn, som du brugte i trin 2.
- Til Datasætbiblioteksnavn, indtast et mappenavn under den bøtte, hvor du vil have autopiloten til at gemme artefakter.
- Til Er din S3-input en manifestfil?, vælg af.
- Til mål, vælg label.
- Til Automatisk implementering, vælg af.
- Under Avancerede indstillinger, For Maskinlæringsproblemtype, vælg Binær klassifikation.
- Til Objektiv metrik, vælg AUC.
- Til Vælg, hvordan dit eksperiment skal køres, vælg Nej, kør en pilot for at oprette en notesbog med kandidatdefinitioner.
- Vælg Opret eksperiment.
For mere information om oprettelse af et eksperiment, se Opret et Amazon SageMaker Autopilot-eksperiment.Det kan tage omkring 15 minutter at køre dette trin. - Når du er færdig, skal du vælge Åbn kandidatgenereringsnotesbog, som åbner en ny notesbog i skrivebeskyttet tilstand.
- Vælg Importer notesbog for at gøre notesbogen redigerbar.
- Vælg for billede data, Science.
- Til kernel, vælg Python 3.
- Vælg Type.
Denne autogenererede notesbog har detaljerede forklaringer og giver fuld kontrol over den faktiske modelbygningsopgave, der skal følges. En tilpasset version af notesbog, hvor en klassifikator er trænet i Landsat-satellitbånd fra 2013, er tilgængelig i kodelageret under notebooks/mangrove-2013.ipynb
.
Modelbygningsrammen består af to dele: funktionstransformation som en del af databehandlingstrinnet og hyperparameteroptimering (HPO) som en del af modeludvælgelsestrinnet. Alle de nødvendige artefakter til disse opgaver blev oprettet under autopiloteksperimentet og gemt i Amazon Simple Storage Service (Amazon S3). Den første notebook-celle downloader disse artefakter fra Amazon S3 til den lokale Amazon SageMaker filsystem til inspektion og eventuelle nødvendige ændringer. Der er to mapper: generated_module
, sagemaker_automl
, hvor alle Python-moduler og scripts, der er nødvendige for at køre notesbogen, er gemt. De forskellige funktionstransformationstrin som imputation, skalering og PCA gemmes som generated_modules/candidate_data_processors/dpp*.py.
Autopilot opretter tre forskellige modeller baseret på XGBoost, lineær indlærer og multi-layer perceptron (MLP) algoritmer. En kandidatpipeline består af en af funktionstransformationsmulighederne, kendt som data_transformer
, og en algoritme. En pipeline er en Python-ordbog og kan defineres som følger:
I dette eksempel transformerer pipelinen træningsdataene i henhold til scriptet ind generated_modules/candidate_data_processors/dpp5.py
og bygger en XGBoost-model. Det er her, Autopilot giver fuldstændig kontrol til dataforskeren, som kan vælge de automatisk genererede funktionstransformations- og modeludvælgelsestrin eller bygge deres egen kombination.
Du kan nu tilføje pipelinen til en pulje, så Autopilot kan køre eksperimentet som følger:
Dette er et vigtigt skridt, hvor du kan beslutte kun at beholde en delmængde af kandidater foreslået af Autopilot, baseret på emneekspertise, for at reducere den samlede kørselstid. Behold nu alle autopilotforslag, som du kan liste som følger:
Kandidatnavn | Algoritme | Feature Transformer |
dpp0-xgboost | xgboost | dpp0.py |
dpp1-xgboost | xgboost | dpp1.py |
dpp2-lineær-learner | lineær-lærer | dpp2.py |
dpp3-xgboost | xgboost | dpp3.py |
dpp4-xgboost | xgboost | dpp4.py |
dpp5-xgboost | xgboost | dpp5.py |
dpp6-mlp | MLP | dpp6.py |
Det fulde autopiloteksperiment udføres i to dele. Først skal du køre datatransformationsjob:
Dette trin bør afsluttes på cirka 30 minutter for alle kandidaterne, hvis du ikke foretager yderligere ændringer i dpp*.py
filer.
Det næste trin er at bygge det bedste sæt modeller ved at justere hyperparametrene for de respektive algoritmer. Hyperparametrene er normalt opdelt i to dele: statisk og tunbar. De statiske hyperparametre forbliver uændrede gennem hele eksperimentet for alle kandidater, der deler den samme algoritme. Disse hyperparametre sendes til eksperimentet som en ordbog. Hvis du vælger at vælge den bedste XGBoost-model ved at maksimere AUC fra tre runder af et femdobbelt krydsvalideringsskema, ser ordbogen ud som følgende kode:
For de justerbare hyperparametre skal du videregive en anden ordbog med intervaller og skaleringstype:
Det komplette sæt hyperparametre er tilgængeligt i mangrove-2013.ipynb
notesbog.
For at lave et eksperiment, hvor alle syv kandidater kan testes parallelt, skal du oprette en multi-algoritme HPO-tuner:
De objektive målinger er defineret uafhængigt for hver algoritme:
At prøve alle mulige værdier af hyperparametre for alle eksperimenterne er spild; du kan vedtage en Bayesiansk strategi for at skabe en HPO-tuner:
I standardindstillingen vælger autopilot 250 job i tuneren for at vælge den bedste model. Til denne brugssituation er det tilstrækkeligt at indstille max_jobs=50
for at spare tid og ressourcer uden nogen væsentlig bøde i forhold til at vælge det bedste sæt hyperparametre. Indsend endelig HPO-jobbet som følger:
Processen tager omkring 80 minutter på ml.m5.4xstore instanser. Du kan overvåge fremskridt på SageMaker-konsollen ved at vælge Hyperparameter tuning job under Kurser i navigationsruden.
Du kan visualisere en lang række nyttige oplysninger, herunder hver enkelt kandidats præstation, ved at vælge navnet på det igangværende job.
Sammenlign endelig modelpræstationen for de bedste kandidater som følger:
kandidat | AUC | run_time (r) |
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 |
Den bedste model baseret på MLP, selvom den er marginalt bedre end XGBoost-modellerne med forskellige valg af databehandlingstrin, tager også meget længere tid at træne. Du kan finde vigtige detaljer om MLP-modeltræningen, herunder kombinationen af anvendte hyperparametre, som følger:
TræningJobnavn | mangrove-2-notebook–211021-2016-012-500271c8 |
TræningJobStatus | Afsluttet |
FinalObjectiveValue | 0.96008 |
Træningsstarttid | 2021-10-21 20:22:55+00:00 |
Træningssluttid | 2021-10-21 21:08:06+00:00 |
TrainingElapsedTimeSeconds | 2711 |
TrainingJobDefinitionName | dpp6-mlp |
dropout_prob | 0.415778 |
embedding_size_factor | 0.849226 |
lag | 256 |
learning_rate | 0.00013862 |
mini_batch_size | 317 |
netværkstype | feedforward |
vægt_henfald | 1.29323e-12 |
Opret en slutningspipeline
For at generere inferens på nye data, skal du konstruere en inferenspipeline på SageMaker for at være vært for den bedste model, der kan kaldes senere for at generere inferens. SageMaker-pipelinemodellen kræver tre containere som dens komponenter: datatransformation, algoritme og omvendt etikettransformation (hvis numeriske forudsigelser skal kortlægges på ikke-numeriske etiketter). For kortheds skyld vises kun en del af den påkrævede kode i følgende uddrag; den komplette kode er tilgængelig i mangrove-2013.ipynb
notesbog:
Når modelbeholderne er bygget, kan du konstruere og implementere rørledningen som følger:
Slutpunktsimplementeringen tager omkring 10 minutter at fuldføre.
Få konklusioner om testdatasættet ved hjælp af et slutpunkt
Når slutpunktet er implementeret, kan du aktivere det med en nyttelast af funktioner B1–B7 for at klassificere hver pixel i et billede som enten mangrove (1) eller andet (0):
Fuldstændige detaljer om efterbehandling af modelforudsigelserne til evaluering og plotning er tilgængelige i notebooks/model_performance.ipynb
.
Få konklusioner om testdatasættet ved hjælp af en batchtransformation
Nu hvor du har skabt den bedst ydende model med autopilot, kan vi bruge modellen til slutninger. For at få konklusioner om store datasæt er det mere effektivt at bruge en batchtransformation. Lad os generere forudsigelser på hele datasættet (træning og test) og tilføje resultaterne til funktionerne, så vi kan udføre yderligere analyse for for eksempel at kontrollere de forudsagte vs. faktiske værdier og fordelingen af funktioner blandt forudsagte klasser.
Først opretter vi en manifestfil i Amazon S3, der peger på placeringen af trænings- og testdata fra de tidligere databehandlingstrin:
Nu kan vi oprette et batch-transformationsjob. Fordi vores inputtog og testdatasæt har label
som den sidste kolonne skal vi droppe den under inferens. For at gøre det passerer vi InputFilter
i DataProcessing
argument. Koden "$[:-2]"
angiver at droppe den sidste kolonne. Det forudsagte output sættes derefter sammen med kildedataene for yderligere analyse.
I den følgende kode konstruerer vi argumenterne for batchtransformationsjobbet og sender derefter til create_transform_job
fungere:
Du kan overvåge status for jobbet på SageMaker-konsollen.
Visualiser modellens ydeevne
Du kan nu visualisere ydeevnen af den bedste model på testdatasættet, bestående af regioner fra Indien, Myanmar, Cuba og Vietnam, som en forvirringsmatrix. Modellen har en høj genkaldelsesværdi for pixels, der repræsenterer mangrover, men kun omkring 75 % præcision. Præcisionen af ikke-mangrove eller andre pixels står på 99 % med en genkaldelse på 85 %. Du kan justere sandsynlighedsgrænsen for modelforudsigelserne for at justere de respektive værdier afhængigt af den særlige brugssituation.
Det er værd at bemærke, at resultaterne er en væsentlig forbedring i forhold til den indbyggede smileCart-model.
Visualiser modelforudsigelser
Endelig er det nyttigt at observere modellens ydeevne på specifikke områder på kortet. På det følgende billede er mangroveområdet i grænsen mellem Indien og Bangladesh afbildet med rødt. Punkter, der er samplet fra Landsat-billedplasteret, der tilhører testdatasættet, overlejres på området, hvor hvert punkt er en pixel, som modellen bestemmer repræsenterer mangrover. De blå punkter er klassificeret korrekt af modellen, mens de sorte punkter repræsenterer fejl i modellen.
Det følgende billede viser kun de punkter, som modellen forudsagde ikke at repræsentere mangrover, med samme farveskema som det foregående eksempel. Det grå omrids er den del af Landsat-området, der ikke indeholder nogen mangrover. Som det fremgår af billedet, laver modellen ingen fejl ved at klassificere punkter på vand, men står over for en udfordring, når den skal skelne pixels, der repræsenterer mangrover, fra dem, der repræsenterer almindeligt løv.
Følgende billede viser modellens ydeevne på Myanmars mangroveregion.
På det følgende billede klarer modellen et bedre stykke arbejde med at identificere mangrovepixel.
Ryd op
SageMaker-slutningsendepunktet fortsætter med at pådrage sig omkostninger, hvis det efterlades. Slet slutpunktet som følger, når du er færdig:
Konklusion
Denne serie af indlæg gav en ende-til-ende-ramme for datavidenskabsfolk til at løse GIS-problemer. del 1 viste ETL-processen og en bekvem måde at visuelt interagere med dataene. Del 2 viste, hvordan man bruger autopilot til at automatisere bygningen af en brugerdefineret mangrove-klassificering.
Du kan bruge denne ramme til at udforske nye satellitdatasæt, der indeholder et rigere sæt bånd, der er nyttige til mangroveklassificering, og udforske funktionsteknologi ved at inkorporere domæneviden.
Om forfatterne
Andrei Ivanovic er en kommende Master of Computer Science-studerende ved University of Toronto og nyuddannet fra Engineering Science-programmet ved University of Toronto, med hovedfag i Machine Intelligence med en Robotics/Mekatronik-bifag. Han er interesseret i computersyn, deep learning og robotteknologi. Han udførte arbejdet præsenteret i dette indlæg under sit sommerpraktik hos Amazon.
David Dong er dataforsker hos Amazon Web Services.
Arkajyoti Misra er dataforsker hos Amazon LastMile Transportation. Han brænder for at anvende Computer Vision-teknikker til at løse problemer, der hjælper jorden. Han elsker at arbejde med non-profit organisationer og er stiftende medlem af ekipi.org.
- Coinsmart. Europas bedste Bitcoin og Crypto Exchange.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. FRI ADGANG.
- CryptoHawk. Altcoin radar. Gratis prøveversion.
- Kilde: 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
- Om
- Ifølge
- aktiviteter
- algoritme
- algoritmer
- Alle
- Amazon
- Amazon Web Services
- blandt
- analyse
- analytics
- analysere
- En anden
- Anvendelse
- OMRÅDE
- argumenter
- omkring
- automatisere
- Automatiseret
- automatisk
- til rådighed
- AWS
- fordi
- BEDSTE
- Sort
- krop
- grænse
- bygge
- Bygning
- bygger
- indbygget
- kandidat
- kandidater
- tilfælde
- udfordre
- valg
- Vælg
- klasser
- klassificering
- klassificeret
- kode
- Kolonne
- kombination
- kombinationer
- fuldføre
- komponent
- komponenter
- computer
- Datalogi
- forvirring
- Konsol
- Beholdere
- fortsætter
- kontrol
- Praktisk
- skabe
- oprettet
- skaber
- Oprettelse af
- Cuba
- skik
- data
- databehandling
- dataforsker
- dyb
- Afhængigt
- indsætte
- indsat
- implementering
- detaljeret
- detaljer
- DID
- forskellige
- Skærm
- fordeling
- Er ikke
- domæne
- downloads
- Drop
- i løbet af
- hver
- jorden
- økosystem
- Effektiv
- effektiv
- indsats
- ende til ende
- Endpoint
- Engineering
- Indtast
- evaluering
- eksempel
- eksperiment
- ekspertise
- udforske
- ansigter
- Mode
- Feature
- Funktionalitet
- Endelig
- Fornavn
- følger
- efter
- følger
- stiftende
- Framework
- fra
- fuld
- funktion
- yderligere
- generere
- genereret
- generation
- eksamen
- grå
- vejlede
- højde
- hjælper
- Høj
- Hvordan
- How To
- HTTPS
- menneskelig
- identificere
- identificere
- billede
- vigtigt
- omfatter
- Herunder
- uafhængigt
- Indien
- oplysninger
- indgang
- instans
- Intelligens
- interaktiv
- interesseret
- IT
- Job
- Karriere
- sluttede
- Holde
- viden
- kendt
- etiket
- Etiketter
- stor
- læring
- Line (linje)
- Liste
- lokale
- placering
- placeringer
- maskine
- machine learning
- større
- lave
- kort
- herres
- Matrix
- Matter
- medlem
- Metrics
- fejl
- ML
- model
- modeller
- Overvåg
- mere
- flere
- Myanmar
- Navigation
- nødvendig
- næste
- non-profit
- notesbog
- åbner
- optimering
- Indstillinger
- organisationer
- Andet
- egen
- del
- særlig
- lidenskabelige
- patch
- ydeevne
- forestillinger
- udfører
- pilot
- Punkt
- punkter
- pool
- mulig
- Indlæg
- Forudsigelser
- tidligere
- Problem
- problemer
- behandle
- forarbejdning
- Program
- forudsat
- giver
- årsager
- nylige
- reducere
- region
- fast
- forblive
- Repository
- repræsentere
- repræsenterer
- anmode
- påkrævet
- Kræver
- forskere
- Ressourcer
- Resultater
- robotteknik
- roller
- runder
- Kør
- kører
- samme
- satellit
- Gem
- skalering
- Ordningen
- Videnskab
- Videnskabsmand
- forskere
- valg
- Series
- Tjenester
- sæt
- indstilling
- flere
- Del
- Vis
- vist
- underskrive
- signifikant
- Simpelt
- Størrelse
- So
- solid
- løsninger
- SOLVE
- specifikke
- stå
- Status
- opbevaring
- butik
- Strategi
- studerende
- Studio
- emne
- sommer
- systemet
- opgaver
- teknikker
- vilkår
- prøve
- The Source
- verdenen
- tre
- Gennem
- hele
- tid
- top
- top 5
- toronto
- Kurser
- Transform
- Transformation
- transformationer
- transport
- under
- universitet
- brug
- sædvanligvis
- validering
- værdi
- forskellige
- udgave
- vision
- visualisering
- Vand
- web
- webservices
- mens
- WHO
- uden
- Arbejde
- world
- værd
- X
- Din