Mangroveskogar är en viktig del av ett hälsosamt ekosystem, och mänskliga aktiviteter är en av huvudorsakerna till att de gradvis försvinner från kuster runt om i världen. Att använda en maskininlärningsmodell (ML) för att identifiera mangroveregioner från en satellitbild ger forskare ett effektivt sätt att övervaka skogarnas storlek över tid. I del 1 i den här serien visade vi hur man samlar in satellitdata på ett automatiserat sätt och analyserar det Amazon SageMaker Studio med interaktiv visualisering. I det här inlägget visar vi hur man använder Amazon SageMaker autopilot för att automatisera processen att bygga en anpassad mangroveklassificerare.
Träna en modell med autopilot
Autopilot ger ett balanserat sätt att bygga flera modeller och välja den bästa. Samtidigt som man skapar flera kombinationer av olika dataförbehandlingstekniker och ML-modeller med minimal ansträngning, ger Autopilot fullständig kontroll över dessa komponentstegen till dataforskaren, om så önskas.
Du kan använda autopilot med en av AWS SDK:er (detaljer finns i API-referensguide för autopilot) eller via Studio. Vi använder autopilot i vår Studio-lösning genom att följa stegen som beskrivs i det här avsnittet:
- På sidan Studio Launcher väljer du plustecknet för Nytt autopilotexperiment.
- För Anslut dina data, Välj Hitta S3 hink, och ange bucket-namnet där du förvarade tränings- och testdatauppsättningarna.
- För Datauppsättningsfilnamn, ange namnet på träningsdatafilen du skapade i Förbered träningsdata avsnitt i del 1.
- För Utdataplats (S3-hink), ange samma hinknamn som du använde i steg 2.
- För Datauppsättningskatalognamn, ange ett mappnamn under hinken där du vill att autopiloten ska lagra artefakter.
- För Är din S3-inmatning en manifestfil?väljer off.
- För Måletväljer etikett.
- För Automatisk distributionväljer off.
- Enligt Avancerade inställningar, För Problemtyp för maskininlärningväljer Binär klassificering.
- För Objektiv mätvärdeväljer AUC.
- För Välj hur du vill köra ditt experimentväljer Nej, kör en pilot för att skapa en anteckningsbok med kandidatdefinitioner.
- Välja Skapa experiment.
För mer information om att skapa ett experiment, se Skapa ett Amazon SageMaker Autopilot-experiment.Det kan ta cirka 15 minuter att köra detta steg. - När du är klar väljer du Öppna anteckningsbok för kandidatgenerering, som öppnar en ny anteckningsbok i skrivskyddat läge.
- Välja Importera anteckningsbok för att göra anteckningsboken redigerbar.
- För Bild, välj Data Science.
- För Kärnaväljer python 3.
- Välja Välja.
Denna automatiskt genererade anteckningsbok har detaljerade förklaringar och ger fullständig kontroll över själva modellbyggandet. En anpassad version av anteckningsbok, där en klassificerare tränas med Landsat-satellitband från 2013, finns tillgänglig i kodförrådet under notebooks/mangrove-2013.ipynb
.
Modellbyggnadsramverket består av två delar: funktionstransformation som en del av databearbetningssteget och hyperparameteroptimering (HPO) som en del av modellvalssteget. Alla nödvändiga artefakter för dessa uppgifter skapades under autopilotexperimentet och sparades i Amazon enkel lagringstjänst (Amazon S3). Den första bärbara cellen laddar ner dessa artefakter från Amazon S3 till den lokala Amazon SageMaker filsystem för inspektion och eventuella nödvändiga ändringar. Det finns två mappar: generated_module
och sagemaker_automl
, där alla Python-moduler och skript som behövs för att köra anteckningsboken lagras. De olika funktionstransformationsstegen som imputering, skalning och PCA sparas som generated_modules/candidate_data_processors/dpp*.py.
Autopilot skapar tre olika modeller baserade på algoritmerna XGBoost, linjär inlärare och multi-layer perceptron (MLP). En kandidatpipeline består av ett av funktionstransformationsalternativen, känd som data_transformer
, och en algoritm. En pipeline är en Python-ordbok och kan definieras enligt följande:
I det här exemplet omvandlar pipelinen träningsdata enligt skriptet in generated_modules/candidate_data_processors/dpp5.py
och bygger en XGBoost-modell. Det är här Autopilot ger fullständig kontroll till dataforskaren, som kan välja de automatiskt genererade funktionstransformations- och modellvalsstegen eller bygga sin egen kombination.
Du kan nu lägga till pipelinen i en pool för att Autopilot ska köra experimentet enligt följande:
Detta är ett viktigt steg där du kan bestämma dig för att bara behålla en delmängd av kandidater som föreslås av Autopilot, baserat på ämnesexpertis, för att minska den totala körtiden. För nu, behåll alla autopilotförslag, som du kan lista enligt följande:
kandidatens namn | Algoritm | Funktionstransformator |
dpp0-xgboost | xgboost | dpp0.py |
dpp1-xgboost | xgboost | dpp1.py |
dpp2-linear-learner | linjär-inlärare | dpp2.py |
dpp3-xgboost | xgboost | dpp3.py |
dpp4-xgboost | xgboost | dpp4.py |
dpp5-xgboost | xgboost | dpp5.py |
dpp6-mlp | MLP | dpp6.py |
Det fullständiga autopilotexperimentet görs i två delar. Först måste du köra datatransformationsjobben:
Detta steg bör slutföras på cirka 30 minuter för alla kandidater, om du inte gör några ytterligare ändringar i dpp*.py
filer.
Nästa steg är att bygga den bästa uppsättningen modeller genom att justera hyperparametrarna för respektive algoritm. Hyperparametrarna är vanligtvis uppdelade i två delar: statisk och avstämbar. De statiska hyperparametrarna förblir oförändrade under hela experimentet för alla kandidater som delar samma algoritm. Dessa hyperparametrar skickas till experimentet som en ordbok. Om du väljer att välja den bästa XGBoost-modellen genom att maximera AUC från tre omgångar av ett femfaldigt korsvalideringsschema, ser ordboken ut som följande kod:
För de avstämbara hyperparametrarna måste du skicka en annan ordbok med intervall och skalningstyp:
Den kompletta uppsättningen hyperparametrar är tillgänglig i mangrove-2013.ipynb
anteckningsbok.
För att skapa ett experiment där alla sju kandidaterna kan testas parallellt, skapa en HPO-tuner med flera algoritmer:
De objektiva mätvärdena definieras oberoende för varje algoritm:
Att prova alla möjliga värden på hyperparametrar för alla experiment är slösaktigt; du kan använda en Bayesiansk strategi för att skapa en HPO-tuner:
I standardinställningen väljer autopilot 250 jobb i tunern för att välja den bästa modellen. För detta användningsfall räcker det att ställa in max_jobs=50
för att spara tid och resurser, utan några betydande straff när det gäller att välja den bästa uppsättningen hyperparametrar. Slutligen, skicka in HPO-jobbet enligt följande:
Processen tar cirka 80 minuter på ml.m5.4xlarge instanser. Du kan övervaka framstegen på SageMaker-konsolen genom att välja Hyperparameter tuning jobb under Utbildning i navigeringsfönstret.
Du kan visualisera en mängd användbar information, inklusive resultatet för varje kandidat, genom att välja namnet på det pågående jobbet.
Slutligen, jämför modellprestandan för de bästa kandidaterna enligt följande:
kandidat | AUC | run_time (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 |
Den topppresterande modellen baserad på MLP, även om den är marginellt bättre än XGBoost-modellerna med olika val av databehandlingssteg, tar också mycket längre tid att träna. Du kan hitta viktig information om MLP-modellutbildningen, inklusive kombinationen av hyperparametrar som används, enligt följande:
TrainingJobName | mangrove-2-notebook–211021-2016-012-500271c8 |
UtbildningJobbstatus | Avslutade |
FinalObjectiveValue | 0.96008 |
Träningsstarttid | 2021-10-21 20:22:55+00:00 |
Training EndTime | 2021-10-21 21:08:06+00:00 |
TrainingElapsedTimeSeconds | 2711 |
TrainingJobDefinitionName | dpp6-mlp |
dropout_prob | 0.415778 |
inbäddningsstorleksfaktor | 0.849226 |
skikt | 256 |
learning_rate | 0.00013862 |
mini_batch_size | 317 |
nätverkstyp | framkoppling |
vikt_förfall | 1.29323e-12 |
Skapa en slutledningspipeline
För att generera inferens på ny data måste du konstruera en inferenspipeline på SageMaker för att vara värd för den bästa modellen som kan anropas senare för att generera inferens. SageMakers pipelinemodell kräver tre behållare som dess komponenter: datatransformation, algoritm och omvänd etiketttransformation (om numeriska förutsägelser behöver mappas till icke-numeriska etiketter). För korthetens skull visas endast en del av den obligatoriska koden i följande kodavsnitt; hela koden finns tillgänglig i mangrove-2013.ipynb
anteckningsbok:
Efter att modellbehållarna har byggts kan du konstruera och distribuera pipelinen enligt följande:
Slutpunktsimplementeringen tar cirka 10 minuter att slutföra.
Få slutsatser om testdatauppsättningen med hjälp av en slutpunkt
Efter att slutpunkten har distribuerats kan du anropa den med en nyttolast av funktioner B1–B7 för att klassificera varje pixel i en bild som antingen mangrove (1) eller annan (0):
Fullständig information om efterbearbetning av modellförutsägelser för utvärdering och plottning finns i notebooks/model_performance.ipynb
.
Få slutsatser om testdatauppsättningen med hjälp av en batchtransform
Nu när du har skapat den bäst presterande modellen med autopilot kan vi använda modellen för slutledning. För att få slutsatser om stora datamängder är det mer effektivt att använda en batchtransform. Låt oss generera förutsägelser på hela datamängden (träning och test) och bifoga resultaten till funktionerna, så att vi kan utföra ytterligare analys för att till exempel kontrollera de förutspådda vs. faktiska värdena och fördelningen av funktioner mellan förutsagda klasser.
Först skapar vi en manifestfil i Amazon S3 som pekar på platserna för utbildningen och testdata från de tidigare databearbetningsstegen:
Nu kan vi skapa ett batchtransformeringsjobb. Eftersom vårt indatatåg och testdataset har label
som den sista kolumnen måste vi släppa den under slutledning. För att göra det passerar vi InputFilter
i DataProcessing
argument. Koden "$[:-2]"
anger att den sista kolumnen ska släppas. Den förutsagda utdatan sammanfogas sedan med källdata för vidare analys.
I följande kod konstruerar vi argumenten för batchtransformeringsjobbet och skickar sedan vidare till create_transform_job
fungera:
Du kan övervaka jobbets status på SageMaker-konsolen.
Visualisera modellens prestanda
Du kan nu visualisera prestandan för den bästa modellen på testdatauppsättningen, bestående av regioner från Indien, Myanmar, Kuba och Vietnam, som en förvirringsmatris. Modellen har ett högt återkallningsvärde för pixlar som representerar mangrove, men bara cirka 75 % precision. Precisionen för icke-mangrove eller andra pixlar ligger på 99 % med en återkallelse på 85 %. Du kan ställa in sannolikhetsgränsen för modellförutsägelserna för att justera respektive värden beroende på det specifika användningsfallet.
Det är värt att notera att resultaten är en betydande förbättring jämfört med den inbyggda smileCart-modellen.
Visualisera modellförutsägelser
Slutligen är det användbart att observera modellens prestanda på specifika regioner på kartan. På följande bild är mangroveområdet i gränsen mellan Indien och Bangladesh avbildat i rött. Punkter som samplas från Landsat-bildlappen som tillhör testdatauppsättningen överlagras på regionen, där varje punkt är en pixel som modellen bestämmer representerar mangrove. De blå punkterna klassificeras korrekt av modellen, medan de svarta punkterna representerar misstag av modellen.
Följande bild visar endast de punkter som modellen förutspådde att inte representera mangrove, med samma färgschema som föregående exempel. Den grå konturen är den del av Landsat-lappen som inte innehåller några mangroveträd. Som framgår av bilden gör modellen inga misstag med att klassificera punkter på vatten, utan står inför en utmaning när den särskiljer pixlar som representerar mangrove från de som representerar vanligt lövverk.
Följande bild visar modellens prestanda i Myanmars mangroveregion.
I följande bild gör modellen ett bättre jobb med att identifiera mangrovepixlar.
Städa upp
SageMaker slutpunkten fortsätter att dra på sig kostnader om den lämnas igång. Ta bort slutpunkten enligt följande när du är klar:
Slutsats
Den här serien av inlägg gav ett ramverk för datavetare för att lösa GIS-problem. del 1 visade ETL-processen och ett bekvämt sätt att visuellt interagera med datan. Del 2 visade hur man använder autopilot för att automatisera att bygga en anpassad mangroveklassificerare.
Du kan använda det här ramverket för att utforska nya satellitdatauppsättningar som innehåller en rikare uppsättning band användbara för mangroveklassificering och utforska funktionsteknik genom att införliva domänkunskap.
Om författarna
Andrei Ivanovic är en tillträdande masterstudent i datavetenskap vid University of Toronto och nyutexaminerad från Engineering Science-programmet vid University of Toronto, med huvudämne i Machine Intelligence med en biroll inom Robotics/Mekatronik. Han är intresserad av datorseende, djupinlärning och robotik. Han gjorde det arbete som presenterades i det här inlägget under sin sommarpraktik på Amazon.
David Dong är dataforskare på Amazon Web Services.
Arkajyoti Misra är en dataforskare på Amazon LastMile Transportation. Han brinner för att tillämpa datorseendetekniker för att lösa problem som hjälper jorden. Han älskar att arbeta med ideella organisationer och är en av grundarna av ekipi.org.
- Myntsmart. Europas bästa bitcoin- och kryptobörs.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. FRI TILLGÅNG.
- CryptoHawk. Altcoin radar. Gratis provperiod.
- Källa: 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
- Enligt
- aktiviteter
- algoritm
- algoritmer
- Alla
- amason
- Amazon Web Services
- bland
- analys
- analytics
- analysera
- Annan
- Tillämpa
- OMRÅDE
- argument
- runt
- automatisera
- Automatiserad
- automatiskt
- tillgänglig
- AWS
- därför att
- BÄST
- Svart
- kropp
- gränsen
- SLUTRESULTAT
- Byggnad
- bygger
- inbyggd
- kandidat
- kandidater
- Vid
- utmanar
- val
- Välja
- klasser
- klassificering
- klassificerad
- koda
- Kolumn
- kombination
- kombinationer
- fullborda
- komponent
- komponenter
- dator
- Datavetenskap
- förvirring
- Konsol
- Behållare
- fortsätter
- kontroll
- Bekväm
- skapa
- skapas
- skapar
- Skapa
- Kuba
- beställnings
- datum
- databehandling
- datavetare
- djup
- beroende
- distribuera
- utplacerade
- utplacering
- detaljerad
- detaljer
- DID
- olika
- Visa
- fördelning
- inte
- domän
- Nedladdningar
- Drop
- under
- varje
- jord
- ekosystemet
- Effektiv
- effektiv
- ansträngning
- början till slut
- Slutpunkt
- Teknik
- ange
- utvärdering
- exempel
- experimentera
- expertis
- utforska
- ytorna
- Mode
- Leverans
- Funktioner
- Slutligen
- Förnamn
- följer
- efter
- följer
- grundande
- Ramverk
- från
- full
- fungera
- ytterligare
- generera
- genereras
- generering
- uppgradera
- grå
- styra
- höjd
- hjälper
- Hög
- Hur ser din drömresa ut
- How To
- HTTPS
- humant
- identifiera
- identifiera
- bild
- med Esport
- förbättring
- innefattar
- Inklusive
- oberoende av
- indien
- informationen
- ingång
- exempel
- Intelligens
- interaktiva
- intresserad
- IT
- Jobb
- Lediga jobb
- fogade
- Ha kvar
- kunskap
- känd
- etikett
- Etiketter
- Large
- inlärning
- linje
- Lista
- lokal
- läge
- platser
- Maskinen
- maskininlärning
- större
- göra
- karta
- master
- Matris
- Materia
- medlem
- Metrics
- misstag
- ML
- modell
- modeller
- Övervaka
- mer
- multipel
- Myanmar
- Navigering
- nödvändigt för
- Nästa
- ideell organisation
- anteckningsbok
- öppnas
- optimering
- Tillbehör
- organisationer
- Övriga
- egen
- del
- särskilt
- brinner
- Lappa
- prestanda
- föreställningar
- utför
- Föraren
- Punkt
- poäng
- poolen
- möjlig
- inlägg
- Förutsägelser
- föregående
- Problem
- problem
- process
- bearbetning
- Program
- förutsatt
- ger
- skäl
- senaste
- minska
- region
- regelbunden
- förblir
- Repository
- representerar
- representerar
- begära
- Obligatorisk
- Kräver
- forskare
- Resurser
- Resultat
- robotik
- Roll
- omgångar
- Körning
- rinnande
- Samma
- satellit
- Save
- skalning
- ordningen
- Vetenskap
- Forskare
- vetenskapsmän
- Val
- Serier
- Tjänster
- in
- inställning
- flera
- Dela
- show
- visas
- signera
- signifikant
- Enkelt
- Storlek
- So
- fast
- lösning
- LÖSA
- specifik
- stå
- status
- förvaring
- lagra
- Strategi
- student
- studio
- ämne
- sommar
- system
- uppgifter
- tekniker
- villkor
- testa
- Smakämnen
- källan
- världen
- tre
- Genom
- hela
- tid
- topp
- topp 5
- toronto
- Utbildning
- Förvandla
- Transformation
- transformationer
- transport
- under
- universitet
- användning
- vanligen
- godkännande
- värde
- olika
- version
- syn
- visualisering
- Vatten
- webb
- webbservice
- medan
- VEM
- utan
- Arbete
- världen
- värt
- X
- Din