Pădurile de mangrove sunt o parte importantă a unui ecosistem sănătos, iar activitățile umane sunt unul dintre motivele majore ale dispariției lor treptate de pe coastele din întreaga lume. Utilizarea unui model de învățare automată (ML) pentru a identifica regiunile de mangrove dintr-o imagine din satelit oferă cercetătorilor o modalitate eficientă de a monitoriza dimensiunea pădurilor în timp. În Partea 1 din această serie, am arătat cum să culegem datele satelitare într-un mod automat și să le analizăm Amazon SageMaker Studio cu vizualizare interactivă. În această postare, vă arătăm cum se utilizează Pilot automat cu Amazon SageMaker pentru a automatiza procesul de construire a unui clasificator personalizat de mangrove.
Antrenează un model cu Autopilot
Autopilot oferă o modalitate echilibrată de a construi mai multe modele și de a-l selecta pe cel mai bun. În timp ce creează mai multe combinații de diferite tehnici de preprocesare a datelor și modele ML cu efort minim, Autopilot oferă cercetătorului de date control complet asupra acestor pași componente, dacă dorește.
Puteți utiliza Autopilot folosind unul dintre SDK-urile AWS (detalii disponibile în Ghid de referință API pentru Autopilot) sau prin Studio. Utilizăm Autopilot în soluția noastră Studio, urmând pașii descriși în această secțiune:
- Pe pagina Studio Launcher, alegeți semnul plus pentru Nou experiment Autopilot.
- Pentru Conectați-vă datele, Selectați Găsiți găleată S3și introduceți numele compartimentului în care ați păstrat seturile de date de antrenament și de testare.
- Pentru Numele fișierului setului de date, introduceți numele fișierului de date de antrenament pe care l-ați creat în fișierul Pregătiți datele de antrenament secțiune în Partea 1.
- Pentru Locația datelor de ieșire (bucket S3), introduceți același nume de compartiment pe care l-ați folosit la pasul 2.
- Pentru Numele directorului setului de date, introduceți un nume de folder sub compartimentul în care doriți ca Autopilot să stocheze artefacte.
- Pentru Intrarea dvs. S3 este un fișier manifest?, alege de pe.
- Pentru Ţintă, alege etichetă.
- Pentru Implementare automată, alege de pe.
- Sub setările avansate, Pentru Tip de problemă de învățare automată, alege Clasificare binară.
- Pentru Măsură obiectivă, alege ASC.
- Pentru Alegeți cum să rulați experimentul, alege Nu, rulați un pilot pentru a crea un blocnotes cu definițiile candidaților.
- Alege Creați experiment.
Pentru mai multe informații despre crearea unui experiment, consultați Creați un experiment Amazon SageMaker Autopilot.Poate dura aproximativ 15 minute pentru a executa acest pas. - Când ați terminat, alegeți Deschideți caietul de generație de candidați, care deschide un nou blocnotes în modul numai citire.
- Alege Import notebook pentru a face caietul editabil.
- Pentru Imagine, alegeți Știința datelor.
- Pentru Nucleu, alege Python 3.
- Alege Selectați.
Acest blocnotes generat automat are explicații detaliate și oferă control complet asupra sarcinii reale de construire a modelului de urmat. O versiune personalizată a caiet, unde un clasificator este instruit folosind benzile de satelit Landsat din 2013, este disponibil în depozitul de coduri sub notebooks/mangrove-2013.ipynb
.
Cadrul de construire a modelului constă din două părți: transformarea caracteristicilor ca parte a pasului de procesare a datelor și optimizarea hiperparametrului (HPO) ca parte a pasului de selecție a modelului. Toate artefactele necesare pentru aceste sarcini au fost create în timpul experimentului Autopilot și salvate în Serviciul Amazon de stocare simplă (Amazon S3). Prima celulă de notebook descarcă acele artefacte de pe Amazon S3 în local Amazon SageMaker sistem de fișiere pentru inspecție și orice modificare necesară. Există două foldere: generated_module
și sagemaker_automl
, unde sunt stocate toate modulele și scripturile Python necesare rulării notebook-ului. Diferiții pași de transformare a caracteristicilor, cum ar fi imputarea, scalarea și PCA, sunt salvați ca generated_modules/candidate_data_processors/dpp*.py.
Autopilot creează trei modele diferite bazate pe algoritmii XGBoost, liniar Learner și multi-layer perceptron (MLP). O conductă candidată constă dintr-una dintre opțiunile de transformare a caracteristicilor, cunoscute ca data_transformer
, și un algoritm. O conductă este un dicționar Python și poate fi definită după cum urmează:
În acest exemplu, pipeline transformă datele de antrenament conform scriptului în generated_modules/candidate_data_processors/dpp5.py
și construiește un model XGBoost. Aici Autopilot oferă control complet cercetătorului de date, care poate alege transformarea caracteristicilor generate automat și pașii de selectare a modelului sau poate construi propria lor combinație.
Acum puteți adăuga conducta la un pool pentru ca Autopilot să ruleze experimentul după cum urmează:
Acesta este un pas important în care puteți decide să păstrați doar un subset de candidați sugerați de Autopilot, pe baza expertizei în materie, pentru a reduce durata totală de rulare. Pentru moment, păstrați toate sugestiile Autopilot, pe care le puteți enumera după cum urmează:
nume candidat | Algoritm | Transformator de caracteristici |
dpp0-xgboost | xgboost | dpp0.py |
dpp1-xgboost | xgboost | dpp1.py |
dpp2-liniar-învățător | liniar-învățător | dpp2.py |
dpp3-xgboost | xgboost | dpp3.py |
dpp4-xgboost | xgboost | dpp4.py |
dpp5-xgboost | xgboost | dpp5.py |
dpp6-mlp | MLP | dpp6.py |
Experimentul complet Autopilot este realizat în două părți. Mai întâi, trebuie să rulați joburile de transformare a datelor:
Acest pas ar trebui să se termine în aproximativ 30 de minute pentru toți candidații, dacă nu faceți alte modificări la dpp*.py
fișiere.
Următorul pas este construirea celui mai bun set de modele prin reglarea hiperparametrilor pentru algoritmii respectivi. Hiperparametrii sunt de obicei împărțiți în două părți: statice și reglabile. Hiperparametrii statici rămân neschimbați pe tot parcursul experimentului pentru toți candidații care au același algoritm. Acești hiperparametri sunt trecuți experimentului ca dicționar. Dacă alegeți să alegeți cel mai bun model XGBoost prin maximizarea AUC din trei runde ale unei scheme de validare încrucișată de cinci ori, dicționarul arată ca următorul cod:
Pentru hiperparametrii reglabili, trebuie să treceți un alt dicționar cu intervale și tip de scalare:
Setul complet de hiperparametri este disponibil în mangrove-2013.ipynb
caiet.
Pentru a crea un experiment în care toți cei șapte candidați pot fi testați în paralel, creați un tuner HPO cu mai multe algoritmi:
Valorile obiective sunt definite independent pentru fiecare algoritm:
Încercarea tuturor valorilor posibile ale hiperparametrilor pentru toate experimentele este o risipă; puteți adopta o strategie bayesiană pentru a crea un tuner HPO:
În setarea implicită, Autopilot alege 250 de lucrări în tuner pentru a alege cel mai bun model. Pentru acest caz de utilizare, este suficient să setați max_jobs=50
pentru a economisi timp și resurse, fără nicio penalizare semnificativă în ceea ce privește alegerea celui mai bun set de hiperparametri. În cele din urmă, trimiteți jobul HPO după cum urmează:
Procesul durează aproximativ 80 de minute pe cazuri ml.m5.4xlarge. Puteți monitoriza progresul pe consola SageMaker alegând Lucrări de reglare a hiperparametrilor în Pregătire în panoul de navigare.
Puteți vizualiza o serie de informații utile, inclusiv performanța fiecărui candidat, alegând numele postului în desfășurare.
În cele din urmă, comparați performanța modelului celor mai buni candidați, după cum urmează:
candidat | ASC | 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 |
Modelul cu cele mai bune performanțe bazat pe MLP, deși puțin mai bun decât modelele XGBoost, cu diferite opțiuni de pași de procesare a datelor, durează, de asemenea, mult mai mult timp pentru a fi antrenat. Puteți găsi detalii importante despre antrenamentul modelului MLP, inclusiv combinația de hiperparametri utilizați, după cum urmează:
TrainingJobName | mangrove-2-notebook–211021-2016-012-500271c8 |
TrainingJobStatus | Terminat |
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 |
factor_dimensiune_încorporare | 0.849226 |
straturi | 256 |
rata_de_învățare | 0.00013862 |
mini_batch_size | 317 |
tip de rețea | feed forward |
decadere_greutate | 1.29323-12 |
Creați o conductă de inferență
Pentru a genera inferențe pe date noi, trebuie să construiți o conductă de inferență pe SageMaker pentru a găzdui cel mai bun model care poate fi apelat ulterior pentru a genera inferență. Modelul pipeline SageMaker necesită trei containere ca componente: transformarea datelor, algoritmul și transformarea inversă a etichetei (dacă predicțiile numerice trebuie mapate pe etichete nenumerice). Pentru concizie, doar o parte din codul necesar este afișată în următorul fragment; codul complet este disponibil în mangrove-2013.ipynb
caiet:
După construirea containerelor model, puteți construi și implementa conducta după cum urmează:
Implementarea punctului final durează aproximativ 10 minute.
Obțineți inferențe asupra setului de date de testare folosind un punct final
După ce punctul final este implementat, îl puteți invoca cu o încărcătură utilă de caracteristici B1–B7 pentru a clasifica fiecare pixel dintr-o imagine ca mangrove (1) sau altul (0):
Detalii complete despre postprocesarea predicțiilor modelului pentru evaluare și reprezentare sunt disponibile în notebooks/model_performance.ipynb
.
Obțineți inferențe asupra setului de date de testare folosind o transformare în lot
Acum că ați creat cel mai performant model cu Autopilot, putem folosi modelul pentru inferență. Pentru a obține inferențe cu privire la seturi mari de date, este mai eficient să utilizați o transformare în lot. Să generăm predicții asupra întregului set de date (antrenament și test) și să anexăm rezultatele la caracteristici, astfel încât să putem efectua analize suplimentare pentru, de exemplu, a verifica valorile prezise vs. reale și distribuția caracteristicilor între clasele prezise.
Mai întâi, creăm un fișier manifest în Amazon S3 care indică locațiile datelor de instruire și de testare din pașii anteriori de procesare a datelor:
Acum putem crea un job de transformare în lot. Pentru că trenul nostru de intrare și setul de date de testare au label
ca ultima coloană, trebuie să o renunțăm în timpul inferenței. Pentru a face asta, trecem InputFilter
în DataProcessing
argument. Codul "$[:-2]"
indică eliminarea ultimei coloane. Ieșirea estimată este apoi asociată cu datele sursă pentru o analiză ulterioară.
În următorul cod, construim argumentele pentru jobul de transformare în lot și apoi trecem la create_transform_job
funcţie:
Puteți monitoriza starea lucrării pe consola SageMaker.
Vizualizați performanța modelului
Acum puteți vizualiza performanța celui mai bun model din setul de date de testare, constând din regiuni din India, Myanmar, Cuba și Vietnam, ca o matrice de confuzie. Modelul are o valoare mare de reamintire pentru pixelii reprezentând mangrove, dar doar aproximativ 75% precizie. Precizia pixelilor non-mangrove sau a altor pixeli este de 99% cu o reamintire de 85%. Puteți regla limita de probabilitate a predicțiilor modelului pentru a ajusta valorile respective în funcție de cazul particular de utilizare.
Este de remarcat faptul că rezultatele sunt o îmbunătățire semnificativă față de modelul smileCart încorporat.
Vizualizați predicțiile modelului
În cele din urmă, este util să observați performanța modelului pe anumite regiuni de pe hartă. În imaginea următoare, zona de mangrove de la granița India-Bangladesh este reprezentată în roșu. Punctele eșantionate din patch-ul de imagine Landsat aparținând setului de date de testare sunt suprapuse regiunii, în care fiecare punct este un pixel pe care modelul îl determină ca reprezentând mangrove. Punctele albastre sunt clasificate corect de model, în timp ce punctele negre reprezintă greșeli ale modelului.
Următoarea imagine arată doar punctele pe care modelul le-a prezis să nu reprezinte mangrove, cu aceeași schemă de culori ca exemplul precedent. Conturul gri este partea din patch-ul Landsat care nu include nicio mangrove. După cum reiese din imagine, modelul nu face nicio greșeală în clasificarea punctelor de pe apă, dar se confruntă cu o provocare atunci când distinge pixelii care reprezintă mangrove de cei care reprezintă frunzișul obișnuit.
Următoarea imagine arată performanța modelului în regiunea de mangrove din Myanmar.
În imaginea următoare, modelul face o treabă mai bună identificând pixelii de mangrove.
A curăța
Punctul final de inferență SageMaker continuă să genereze costuri dacă este lăsat să funcționeze. Ștergeți punctul final după cum urmează, când ați terminat:
Concluzie
Această serie de postări a oferit un cadru end-to-end pentru oamenii de știință de date pentru rezolvarea problemelor GIS. Partea 1 a arătat procesul ETL și o modalitate convenabilă de a interacționa vizual cu datele. Partea 2 a arătat cum să utilizați Autopilot pentru a automatiza construirea unui clasificator personalizat de mangrove.
Puteți utiliza acest cadru pentru a explora noi seturi de date satelitare care conțin un set mai bogat de benzi utile pentru clasificarea mangrovelor și pentru a explora ingineria caracteristicilor prin încorporarea cunoștințelor de domeniu.
Despre Autori
Andrei Ivanovic este un student de master în știință informatică la Universitatea din Toronto și un absolvent recent al programului de Științe Ingineriei de la Universitatea din Toronto, cu specializare în Inteligența mașinilor cu o minoră în Robotică/Mecatronică. El este interesat de viziunea computerizată, învățarea profundă și robotică. A făcut munca prezentată în această postare în timpul stagiului său de vară la Amazon.
David Dong este Data Scientist la Amazon Web Services.
Arkajyoti Misra este Data Scientist la Amazon LastMile Transportation. Este pasionat de aplicarea tehnicilor de computer Vision pentru a rezolva problemele care ajută pământul. Îi place să lucreze cu organizații non-profit și este membru fondator al ekipi.org.
- Coinsmart. Cel mai bun schimb de Bitcoin și Crypto din Europa.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. ACCES LIBER.
- CryptoHawk. Radar Altcoin. Încercare gratuită.
- Sursa: https://aws.amazon.com/blogs/machine-learning/part-2-identify-mangrove-forests-using-satellite-image-features-using-amazon-sagemaker-studio-and-amazon-sagemaker- pilot automat/
- "
- 10
- 100
- a
- Despre Noi
- Conform
- activităţi de
- Algoritmul
- algoritmi
- TOATE
- Amazon
- Amazon Web Services
- între
- analiză
- Google Analytics
- analiza
- O alta
- Aplicarea
- ZONĂ
- argumente
- în jurul
- automatizarea
- Automata
- în mod automat
- disponibil
- AWS
- deoarece
- CEL MAI BUN
- Negru
- corp
- frontieră
- construi
- Clădire
- construiește
- construit-in
- candidat
- candidaţilor
- caz
- contesta
- alegeri
- Alege
- clase
- clasificare
- clasificate
- cod
- Coloană
- combinaţie
- combinaţii
- Completă
- component
- componente
- calculator
- Informatică
- confuzie
- Consoleze
- Containere
- continuă
- Control
- Convenabil
- crea
- a creat
- creează
- Crearea
- Cuba
- personalizat
- de date
- de prelucrare a datelor
- om de știință de date
- adânc
- În funcție
- implementa
- dislocate
- desfășurarea
- detaliat
- detalii
- FĂCUT
- diferit
- Afişa
- distribuire
- Nu
- domeniu
- download-uri
- Picătură
- în timpul
- fiecare
- Pământ
- ecosistem
- Eficace
- eficient
- efort
- un capăt la altul
- Punct final
- Inginerie
- Intrați
- evaluare
- exemplu
- experiment
- expertiză
- explora
- fete
- Modă
- Caracteristică
- DESCRIERE
- În cele din urmă
- First
- urma
- următor
- urmează
- fondator
- Cadru
- din
- Complet
- funcţie
- mai mult
- genera
- generată
- generaţie
- absolvent
- gri
- ghida
- înălțime
- ajută
- Înalt
- Cum
- Cum Pentru a
- HTTPS
- uman
- identifica
- identificarea
- imagine
- important
- îmbunătățire
- include
- Inclusiv
- independent
- India
- informații
- intrare
- instanță
- Inteligență
- interactiv
- interesat
- IT
- Loc de munca
- Locuri de munca
- alăturat
- A pastra
- cunoştinţe
- cunoscut
- Etichetă
- etichete
- mare
- învăţare
- Linie
- Listă
- local
- locaţie
- Locații
- maşină
- masina de învățare
- major
- face
- Hartă
- studii de masterat
- Matrice
- materie
- membru
- Metrici
- greşeli
- ML
- model
- Modele
- monitor
- mai mult
- multiplu
- Myanmar
- Navigare
- necesar
- următor
- non-profit
- caiet
- deschide
- optimizare
- Opţiuni
- organizații
- Altele
- propriu
- parte
- special
- pasionat
- Plasture
- performanță
- spectacole
- efectuarea
- pilot
- Punct
- puncte
- piscină
- posibil
- postări
- Predictii
- precedent
- Problemă
- probleme
- proces
- prelucrare
- Program
- prevăzut
- furnizează
- motive
- recent
- reduce
- regiune
- regulat
- rămâne
- depozit
- reprezenta
- reprezentând
- solicita
- necesar
- Necesită
- cercetători
- Resurse
- REZULTATE
- robotica
- Rol
- runde
- Alerga
- funcţionare
- acelaşi
- satelit
- Economisiți
- scalare
- schemă
- Ştiinţă
- Om de stiinta
- oamenii de stiinta
- selecţie
- serie
- Servicii
- set
- instalare
- câteva
- Distribuie
- Arăta
- indicat
- semna
- semnificativ
- simplu
- Mărimea
- So
- solid
- soluţie
- REZOLVAREA
- specific
- stand
- Stare
- depozitare
- stoca
- Strategie
- student
- studio
- subiect
- de vară
- sistem
- sarcini
- tehnici de
- termeni
- test
- Sursa
- lumea
- trei
- Prin
- de-a lungul
- timp
- top
- top 5
- Toronto
- Pregătire
- Transforma
- Transformare
- transformări
- transport
- în
- universitate
- utilizare
- obișnuit
- validare
- valoare
- diverse
- versiune
- viziune
- vizualizare
- Apă
- web
- servicii web
- în timp ce
- OMS
- fără
- Apartamente
- lume
- valoare
- X
- Ta