Mangroveskoger er en viktig del av et sunt økosystem, og menneskelige aktiviteter er en av hovedårsakene til at de gradvis forsvinner fra kystlinjer rundt om i verden. Å bruke en maskinlæringsmodell (ML) for å identifisere mangroveregioner fra et satellittbilde gir forskere en effektiv måte å overvåke størrelsen på skogene over tid. I Del 1 av denne serien viste vi hvordan man samler satellittdata på en automatisert måte og analyserer dem Amazon SageMaker Studio med interaktiv visualisering. I dette innlegget viser vi hvordan du bruker Amazon SageMaker Autopilot å automatisere prosessen med å bygge en tilpasset mangroveklassifisering.
Tren en modell med autopilot
Autopilot gir en balansert måte å bygge flere modeller på og velge den beste. Mens du lager flere kombinasjoner av forskjellige dataforbehandlingsteknikker og ML-modeller med minimal innsats, gir Autopilot full kontroll over disse komponenttrinnene til dataforskeren, hvis ønskelig.
Du kan bruke autopilot ved å bruke en av AWS SDK-ene (detaljer tilgjengelig i API-referanseveiledning for autopilot) eller gjennom Studio. Vi bruker Autopilot i Studio-løsningen vår ved å følge trinnene som er skissert i denne delen:
- På Studio Launcher-siden velger du plusstegnet for Nytt autopiloteksperiment.
- Til Koble til dataene dine, plukke ut Finn S3 bøtte, og skriv inn bøttenavnet der du oppbevarte trenings- og testdatasettene.
- Til Datasettfilnavn, skriv inn navnet på treningsdatafilen du opprettet i Forbered treningsdataene delen i Del 1.
- Til Utdataplassering (S3-bøtte), skriv inn det samme bøttenavnet du brukte i trinn 2.
- Til Datasettkatalognavn, skriv inn et mappenavn under bøtten der du vil at autopiloten skal lagre artefakter.
- Til Er S3-inndata en manifestfil?, velg Av.
- Til Target, velg etikett.
- Til Automatisk distribusjon, velg Av.
- Under Avanserte innstillingerFor Problemtype for maskinlæring, velg Binær klassifisering.
- Til Objektiv metrikk, velg AUC.
- Til Velg hvordan eksperimentet skal kjøres, velg Nei, kjør en pilot for å lage en notatbok med kandidatdefinisjoner.
- Velg Lag eksperiment.
For mer informasjon om å lage et eksperiment, se Lag et Amazon SageMaker Autopilot-eksperiment.Det kan ta omtrent 15 minutter å kjøre dette trinnet. - Når du er ferdig, velg Åpne notatbok for kandidatgenerering, som åpner en ny notatbok i skrivebeskyttet modus.
- Velg Importer notatbok for å gjøre notatboken redigerbar.
- Velg for bilde data Science.
- Til Kernel, velg Python 3.
- Velg Plukke ut.
Denne automatisk genererte notatboken har detaljerte forklaringer og gir full kontroll over selve modellbyggingsoppgaven som skal følges. En tilpasset versjon av bærbare, hvor en klassifiserer er trent ved bruk av Landsat-satellittbånd fra 2013, er tilgjengelig i kodelageret under notebooks/mangrove-2013.ipynb
.
Rammeverket for modellbygging består av to deler: funksjonstransformasjon som en del av databehandlingstrinnet, og hyperparameteroptimalisering (HPO) som en del av modellvalgtrinnet. Alle nødvendige artefakter for disse oppgavene ble opprettet under autopiloteksperimentet og lagret i Amazon enkel lagringstjeneste (Amazon S3). Den første bærbare cellen laster ned disse artefaktene fra Amazon S3 til den lokale Amazon SageMaker filsystem for inspeksjon og eventuelle nødvendige endringer. Det er to mapper: generated_module
og sagemaker_automl
, der alle Python-modulene og skriptene som er nødvendige for å kjøre notatboken er lagret. De forskjellige funksjonstransformasjonstrinnene som imputering, skalering og PCA lagres som generated_modules/candidate_data_processors/dpp*.py.
Autopiloten lager tre forskjellige modeller basert på XGBoost, lineær innlærer og multi-layer perceptron (MLP) algoritmer. En kandidatpipeline består av et av funksjonstransformasjonsalternativene, kjent som data_transformer
, og en algoritme. En pipeline er en Python-ordbok og kan defineres som følger:
I dette eksemplet transformerer pipelinen treningsdataene i henhold til skriptet inn generated_modules/candidate_data_processors/dpp5.py
og bygger en XGBoost-modell. Det er her Autopilot gir full kontroll til dataforskeren, som kan velge de automatisk genererte funksjonstransformasjonene og modellvalgtrinnene eller bygge sin egen kombinasjon.
Du kan nå legge til rørledningen til et basseng for at autopilot skal kjøre eksperimentet som følger:
Dette er et viktig skritt der du kan bestemme deg for å beholde bare et undersett av kandidater foreslått av Autopilot, basert på fagekspertise, for å redusere den totale kjøretiden. For nå, behold alle autopilotforslag, som du kan liste opp som følger:
kandidat navn | Algoritme | Funksjonstransformator |
dpp0-xgboost | xgboost | dpp0.py |
dpp1-xgboost | xgboost | dpp1.py |
dpp2-lineær-lærer | 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 fullstendige autopiloteksperimentet gjøres i to deler. Først må du kjøre datatransformasjonsjobbene:
Dette trinnet bør fullføres på omtrent 30 minutter for alle kandidatene, hvis du ikke gjør flere endringer i dpp*.py
filer.
Det neste trinnet er å bygge det beste settet med modeller ved å justere hyperparametrene for de respektive algoritmene. Hyperparametrene er vanligvis delt inn i to deler: statisk og justerbar. De statiske hyperparametrene forblir uendret gjennom eksperimentet for alle kandidater som deler samme algoritme. Disse hyperparametrene sendes til eksperimentet som en ordbok. Hvis du velger å velge den beste XGBoost-modellen ved å maksimere AUC fra tre runder med et femdobbelt kryssvalideringsskjema, ser ordboken ut som følgende kode:
For de justerbare hyperparametrene må du sende en annen ordbok med områder og skaleringstype:
Det komplette settet med hyperparametre er tilgjengelig i mangrove-2013.ipynb
bærbare.
For å lage et eksperiment der alle syv kandidatene kan testes parallelt, lag en multi-algoritme HPO-tuner:
De objektive beregningene er definert uavhengig for hver algoritme:
Å prøve alle mulige verdier av hyperparametre for alle eksperimentene er bortkastet; du kan bruke en Bayesiansk strategi for å lage en HPO-tuner:
I standardinnstillingen velger autopilot 250 jobber i tuneren for å velge den beste modellen. For dette brukstilfellet er det tilstrekkelig å stille inn max_jobs=50
for å spare tid og ressurser, uten noen betydelig straff når det gjelder å velge det beste settet med hyperparametere. Til slutt, send inn HPO-jobben som følger:
Prosessen tar ca. 80 minutter på ml.m5.4xstore forekomster. Du kan overvåke fremdriften på SageMaker-konsollen ved å velge Hyperparameter tuning jobber etter Kurs i navigasjonsruten.
Du kan visualisere en rekke nyttig informasjon, inkludert ytelsen til hver kandidat, ved å velge navnet på jobben som pågår.
Til slutt, sammenligne modellytelsen til de beste kandidatene som følger:
kandidat | AUC | kjøretid (er) |
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 beste modellen basert på MLP, selv om den er marginalt bedre enn XGBoost-modellene med ulike valg av databehandlingstrinn, tar også mye lengre tid å trene. Du kan finne viktige detaljer om MLP-modellopplæringen, inkludert kombinasjonen av hyperparametre som brukes, som følger:
TrainingJobName | mangrove-2-notebook–211021-2016-012-500271c8 |
TreningJobbstatus | Terminado |
FinalObjectiveValue | 0.96008 |
TrainingStartTime | 2021-10-21 20:22:55+00:00 |
TrainingEndTime | 2021-10-21 21:08:06+00:00 |
TrainingElapsedTimeSeconds | 2711 |
TrainingJobDefinitionName | dpp6-mlp |
dropout_prob | 0.415778 |
faktor for innebyggingsstørrelse | 0.849226 |
lag | 256 |
learning_rate | 0.00013862 |
mini_batch_size | 317 |
nettverkstype | mate frem |
vekt_forfall | 1.29323e-12 |
Lag en slutningspipeline
For å generere inferens på nye data, må du konstruere en inferenspipeline på SageMaker for å være vert for den beste modellen som kan kalles senere for å generere inferens. SageMaker-pipelinemodellen krever tre beholdere som komponenter: datatransformasjon, algoritme og invers etiketttransformasjon (hvis numeriske spådommer må tilordnes til ikke-numeriske etiketter). For korthets skyld vises bare en del av den nødvendige koden i følgende kodebit; den komplette koden er tilgjengelig i mangrove-2013.ipynb
bærbare:
Etter at modellbeholderne er bygget, kan du konstruere og distribuere rørledningen som følger:
Sluttpunktdistribusjonen tar omtrent 10 minutter å fullføre.
Få konklusjon om testdatasettet ved hjelp av et endepunkt
Etter at endepunktet er distribuert, kan du påkalle det med en nyttelast av funksjoner B1–B7 for å klassifisere hver piksel i et bilde som enten mangrove (1) eller annen (0):
Fullstendige detaljer om etterbehandling av modellprediksjonene for evaluering og plotting er tilgjengelig i notebooks/model_performance.ipynb
.
Få slutning om testdatasettet ved hjelp av en batchtransformasjon
Nå som du har laget den best ytelse modellen med autopilot, kan vi bruke modellen for slutning. For å få slutninger om store datasett, er det mer effektivt å bruke en batchtransformasjon. La oss generere spådommer på hele datasettet (trening og test) og legge til resultatene til funksjonene, slik at vi kan utføre ytterligere analyse for for eksempel å sjekke predikerte vs. faktiske og fordelingen av funksjoner blant predikerte klasser.
Først lager vi en manifestfil i Amazon S3 som peker på plasseringene til trenings- og testdataene fra de forrige databehandlingstrinnene:
Nå kan vi lage en batch-transformeringsjobb. Fordi vårt inputtog og testdatasett har label
som den siste kolonnen, må vi slippe den under inferens. For å gjøre det, passerer vi InputFilter
i DataProcessing
argument. Koden "$[:-2]"
indikerer å slippe den siste kolonnen. Den forutsagte utgangen slås deretter sammen med kildedataene for videre analyse.
I den følgende koden konstruerer vi argumentene for batch-transformeringsjobben og sender deretter til create_transform_job
funksjon:
Du kan overvåke statusen til jobben på SageMaker-konsollen.
Visualiser modellens ytelse
Du kan nå visualisere ytelsen til den beste modellen på testdatasettet, bestående av regioner fra India, Myanmar, Cuba og Vietnam, som en forvirringsmatrise. Modellen har en høy gjenkallingsverdi for piksler som representerer mangrover, men bare omtrent 75 % presisjon. Presisjonen til ikke-mangrove eller andre piksler står på 99 % med en tilbakekalling på 85 %. Du kan justere sannsynlighetsavskjæringen for modellprediksjonene for å justere de respektive verdiene avhengig av den spesielle brukssaken.
Det er verdt å merke seg at resultatene er en betydelig forbedring i forhold til den innebygde smileCart-modellen.
Visualiser modellspådommer
Til slutt er det nyttig å observere modellens ytelse på spesifikke områder på kartet. I det følgende bildet er mangroveområdet i grensen mellom India og Bangladesh avbildet i rødt. Punkter samplet fra Landsat-bildelappen som tilhører testdatasettet, legges over regionen, der hvert punkt er en piksel som modellen bestemmer å representere mangrover. De blå punktene klassifiseres riktig av modellen, mens de svarte punktene representerer feil av modellen.
Følgende bilde viser bare punktene som modellen spådde å ikke representere mangrover, med samme fargeskjema som det foregående eksempelet. Det grå omrisset er den delen av Landsat-flekken som ikke inkluderer noen mangrover. Som det fremgår av bildet, gjør ikke modellen noen feil ved å klassifisere punkter på vann, men står overfor en utfordring når den skiller piksler som representerer mangrover fra de som representerer vanlig løvverk.
Følgende bilde viser modellytelse på Myanmars mangroveregion.
I det følgende bildet gjør modellen en bedre jobb med å identifisere mangrove-piksler.
Rydd opp
SageMaker-slutningsendepunktet fortsetter å pådra seg kostnader hvis det kjøres. Slett endepunktet på følgende måte når du er ferdig:
konklusjonen
Denne serien med innlegg ga et ende-til-ende-rammeverk for dataforskere for å løse GIS-problemer. Del 1 viste ETL-prosessen og en praktisk måte å visuelt samhandle med dataene. Del 2 viste hvordan man bruker autopilot til å automatisere bygging av en tilpasset mangroveklassifisering.
Du kan bruke dette rammeverket til å utforske nye satellittdatasett som inneholder et rikere sett med bånd som er nyttige for mangroveklassifisering og utforske funksjonsteknikk ved å inkorporere domenekunnskap.
Om forfatterne
Andrei Ivanovic er en innkommende mastergrad i informatikkstudent ved University of Toronto og nyutdannet ved Engineering Science-programmet ved University of Toronto, med hovedfag i Machine Intelligence med en robotikk/mekatronikk-fagfag. Han er interessert i datasyn, dyp læring og robotikk. Han utførte arbeidet som ble presentert i dette innlegget under sitt sommerpraksis hos Amazon.
David Dong er dataforsker hos Amazon Web Services.
Arkajyoti Misra er dataforsker hos Amazon LastMile Transportation. Han brenner for å bruke Computer Vision-teknikker for å løse problemer som hjelper jorden. Han elsker å jobbe med ideelle organisasjoner og er et grunnleggende medlem av ekipi.org.
- Myntsmart. Europas beste Bitcoin og Crypto Exchange.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. FRI TILGANG.
- CryptoHawk. Altcoin Radar. Gratis prøveperiode.
- 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 oss
- Ifølge
- Aktiviteter
- algoritme
- algoritmer
- Alle
- Amazon
- Amazon Web Services
- blant
- analyse
- analytics
- analysere
- En annen
- påføring
- AREA
- argumenter
- rundt
- automatisere
- Automatisert
- automatisk
- tilgjengelig
- AWS
- fordi
- BEST
- Svart
- kroppen
- grensen
- bygge
- Bygning
- bygger
- innebygd
- kandidat
- kandidater
- saken
- utfordre
- valg
- Velg
- klasser
- klassifisering
- klassifisert
- kode
- Kolonne
- kombinasjon
- kombinasjoner
- fullføre
- komponent
- komponenter
- datamaskin
- informatikk
- forvirring
- Konsoll
- Containere
- fortsetter
- kontroll
- Praktisk
- skape
- opprettet
- skaper
- Opprette
- Cuba
- skikk
- dato
- databehandling
- dataforsker
- dyp
- avhengig
- utplassere
- utplassert
- distribusjon
- detaljert
- detaljer
- gJORDE
- forskjellig
- Vise
- distribusjon
- ikke
- domene
- nedlastinger
- Drop
- under
- hver enkelt
- jord
- økosystem
- Effektiv
- effektiv
- innsats
- ende til ende
- Endpoint
- Ingeniørarbeid
- Enter
- evaluering
- eksempel
- eksperiment
- ekspertise
- utforske
- ansikter
- Mote
- Trekk
- Egenskaper
- Endelig
- Først
- følge
- etter
- følger
- grunnleggelsen
- Rammeverk
- fra
- fullt
- funksjon
- videre
- generere
- generert
- generasjonen
- oppgradere
- grå
- veilede
- høyde
- hjelper
- Høy
- Hvordan
- Hvordan
- HTTPS
- menneskelig
- identifisere
- identifisering
- bilde
- viktig
- forbedring
- inkludere
- Inkludert
- uavhengig av hverandre
- india
- informasjon
- inngang
- f.eks
- Intelligens
- interaktiv
- interessert
- IT
- Jobb
- Jobb
- ble med
- Hold
- kunnskap
- kjent
- Etiketten
- etiketter
- stor
- læring
- linje
- Liste
- lokal
- plassering
- steder
- maskin
- maskinlæring
- større
- gjøre
- kart
- mestere
- Matrix
- Saken
- medlem
- Metrics
- feil
- ML
- modell
- modeller
- Overvåke
- mer
- flere
- Myanmar
- Navigasjon
- nødvendig
- neste
- non-profit
- bærbare
- åpner
- optimalisering
- alternativer
- organisasjoner
- Annen
- egen
- del
- Spesielt
- lidenskapelig
- patch
- ytelse
- forestillinger
- utfører
- pilot
- Point
- poeng
- basseng
- mulig
- innlegg
- Spådommer
- forrige
- Problem
- problemer
- prosess
- prosessering
- program
- forutsatt
- gir
- grunner
- nylig
- redusere
- region
- regelmessig
- forbli
- Repository
- representere
- representerer
- anmode
- påkrevd
- Krever
- forskere
- Ressurser
- Resultater
- robotikk
- Rolle
- runder
- Kjør
- rennende
- samme
- satellitt
- Spar
- skalering
- ordningen
- Vitenskap
- Forsker
- forskere
- utvalg
- Serien
- Tjenester
- sett
- innstilling
- flere
- Del
- Vis
- vist
- undertegne
- signifikant
- Enkelt
- Størrelse
- So
- solid
- løsning
- LØSE
- spesifikk
- stå
- status
- lagring
- oppbevare
- Strategi
- Student
- studio
- emne
- sommer
- system
- oppgaver
- teknikker
- vilkår
- test
- De
- Kilden
- verden
- tre
- Gjennom
- hele
- tid
- topp
- top 5
- toronto
- Kurs
- Transform
- Transformation
- transformasjoner
- transport
- etter
- universitet
- bruke
- vanligvis
- validering
- verdi
- ulike
- versjon
- syn
- visualisering
- Vann
- web
- webtjenester
- mens
- HVEM
- uten
- Arbeid
- verden
- verdt
- X
- Din