Le foreste di mangrovie sono una parte importante di un ecosistema sano e le attività umane sono una delle ragioni principali della loro graduale scomparsa dalle coste di tutto il mondo. L'utilizzo di un modello di apprendimento automatico (ML) per identificare le regioni di mangrovie da un'immagine satellitare offre ai ricercatori un modo efficace per monitorare le dimensioni delle foreste nel tempo. In Parte 1 di questa serie, abbiamo mostrato come raccogliere i dati satellitari in modo automatizzato e analizzarli Amazon Sage Maker Studio con visualizzazione interattiva. In questo post, mostriamo come utilizzare Pilota automatico Amazon SageMaker per automatizzare il processo di creazione di un classificatore di mangrovie personalizzato.
Addestra un modello con il pilota automatico
Il pilota automatico fornisce un modo equilibrato per costruire diversi modelli e selezionare quello migliore. Durante la creazione di più combinazioni di diverse tecniche di preelaborazione dei dati e modelli ML con il minimo sforzo, Autopilot fornisce al data scientist il controllo completo su questi passaggi dei componenti, se lo desidera.
Puoi utilizzare Autopilot utilizzando uno degli SDK AWS (dettagli disponibili in Guida di riferimento dell'API per il pilota automatico) o tramite Studio. Utilizziamo Autopilot nella nostra soluzione Studio seguendo i passaggi descritti in questa sezione:
- Nella pagina Studio Launcher, scegli il segno più per Nuovo esperimento di pilota automatico.
- Nel Collega i tuoi dati, selezionare Trova il secchio S3e inserisci il nome del bucket in cui hai conservato i set di dati di addestramento e test.
- Nel Nome del file del set di dati, inserisci il nome del file di dati di allenamento che hai creato nel file Prepara i dati di allenamento sezione in Parte 1.
- Nel Posizione dei dati di output (secchio S3), inserisci lo stesso nome del bucket utilizzato nel passaggio 2.
- Nel Nome della directory del set di dati, inserisci un nome di cartella sotto il bucket in cui desideri che Autopilot memorizzi gli artefatti.
- Nel Il tuo S3 ha inserito un file manifest?scegli sconto.
- Nel Targetscegli etichetta.
- Nel Distribuzione automaticascegli sconto.
- Sotto il impostazioni avanzate, Per Tipo di problema di apprendimento automaticoscegli Classificazione binaria.
- Nel Metrica oggettivascegli AUC.
- Nel Scegli come eseguire il tuo esperimentoscegli No, esegui un pilota per creare un taccuino con le definizioni dei candidati.
- Scegli Crea esperimento.
Per ulteriori informazioni sulla creazione di un esperimento, fare riferimento a Crea un esperimento Amazon SageMaker Autopilot.L'esecuzione di questo passaggio potrebbe richiedere circa 15 minuti. - Al termine, scegli Notebook aperto per la generazione di candidati, che apre un nuovo notebook in modalità di sola lettura.
- Scegli Importa taccuino per rendere modificabile il taccuino.
- Per Immagine, scegli Science Data.
- Nel noccioloscegli Python 3.
- Scegli Seleziona.
Questo taccuino generato automaticamente contiene spiegazioni dettagliate e fornisce il controllo completo sull'effettiva attività di costruzione del modello da seguire. Una versione personalizzata del taccuino, dove un classificatore viene addestrato utilizzando le bande satellitari Landsat dal 2013, è disponibile nel repository del codice sotto notebooks/mangrove-2013.ipynb
.
Il framework di costruzione del modello è costituito da due parti: la trasformazione delle caratteristiche come parte della fase di elaborazione dei dati e l'ottimizzazione degli iperparametri (HPO) come parte della fase di selezione del modello. Tutti gli artefatti necessari per queste attività sono stati creati durante l'esperimento Autopilot e salvati Servizio di archiviazione semplice Amazon (Amazon S3). La prima cella del notebook scarica quegli artefatti da Amazon S3 al locale Amazon Sage Maker file system per l'ispezione e le eventuali modifiche necessarie. Ci sono due cartelle: generated_module
ed sagemaker_automl
, dove sono archiviati tutti i moduli e gli script Python necessari per eseguire il notebook. I vari passaggi di trasformazione delle funzionalità come imputazione, ridimensionamento e PCA vengono salvati come generated_modules/candidate_data_processors/dpp*.py.
Autopilot crea tre diversi modelli basati sugli algoritmi XGBoost, Linear Learner e Multi-layer Perceptron (MLP). Una pipeline candidata è costituita da una delle opzioni di trasformazione delle funzionalità, note come data_transformer
e un algoritmo. Una pipeline è un dizionario Python e può essere definita come segue:
In questo esempio, la pipeline trasforma i dati di addestramento in base allo script in generated_modules/candidate_data_processors/dpp5.py
e costruisce un modello XGBoost. È qui che Autopilot fornisce il controllo completo al data scientist, che può scegliere la trasformazione delle funzionalità generate automaticamente e i passaggi di selezione del modello o creare la propria combinazione.
È ora possibile aggiungere la pipeline a un pool affinché Autopilot esegua l'esperimento come segue:
Questo è un passaggio importante in cui puoi decidere di mantenere solo un sottoinsieme di candidati suggeriti da Autopilot, in base all'esperienza in materia, per ridurre il tempo di esecuzione totale. Per ora, mantieni tutti i suggerimenti di Autopilot, che puoi elencare come segue:
Nome del candidato | Algoritmo | Caratteristica Trasformatore |
dpp0-xgboost | xgboost | dpp0.py |
dpp1-xgboost | xgboost | dpp1.py |
dpp2-lineare-studente | discente lineare | dpp2.py |
dpp3-xgboost | xgboost | dpp3.py |
dpp4-xgboost | xgboost | dpp4.py |
dpp5-xgboost | xgboost | dpp5.py |
dpp6-mlp | mlp | dpp6.py |
L'intero esperimento dell'autopilota viene eseguito in due parti. Innanzitutto, è necessario eseguire i lavori di trasformazione dei dati:
Questo passaggio dovrebbe essere completato in circa 30 minuti per tutti i candidati, se non si apportano ulteriori modifiche al dpp*.py
File.
Il passaggio successivo consiste nel costruire il miglior set di modelli ottimizzando gli iperparametri per i rispettivi algoritmi. Gli iperparametri sono generalmente divisi in due parti: static e sintonizzabile. Gli iperparametri statici rimangono invariati durante l'esperimento per tutti i candidati che condividono lo stesso algoritmo. Questi iperparametri vengono passati all'esperimento come dizionario. Se scegli di scegliere il miglior modello XGBoost massimizzando l'AUC da tre round di uno schema di convalida incrociata quintuplicato, il dizionario avrà l'aspetto del codice seguente:
Per gli iperparametri sintonizzabili, devi passare un altro dizionario con intervalli e tipo di ridimensionamento:
Il set completo di iperparametri è disponibile in mangrove-2013.ipynb
taccuino.
Per creare un esperimento in cui tutti e sette i candidati possono essere testati in parallelo, crea un sintonizzatore HPO multi-algoritmo:
Le metriche obiettivo sono definite indipendentemente per ciascun algoritmo:
Provare tutti i possibili valori degli iperparametri per tutti gli esperimenti è uno spreco; puoi adottare una strategia bayesiana per creare un sintonizzatore HPO:
Nell'impostazione predefinita, Autopilot seleziona 250 lavori nel sintonizzatore per scegliere il modello migliore. Per questo caso d'uso, è sufficiente impostare max_jobs=50
per risparmiare tempo e risorse, senza alcuna penalizzazione significativa in termini di scelta del miglior set di iperparametri. Infine, invia il lavoro HPO come segue:
Il processo richiede circa 80 minuti su istanze ml.m5.4xlarge. Puoi monitorare i progressi sulla console SageMaker scegliendo Lavori di ottimizzazione degli iperparametri per Training nel pannello di navigazione.
Puoi visualizzare una serie di informazioni utili, inclusa la performance di ogni candidato, scegliendo il nome del lavoro in corso.
Infine, confronta le prestazioni del modello dei migliori candidati come segue:
candidato | 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 |
Il modello più performante basato su MLP, sebbene leggermente migliore dei modelli XGBoost con varie scelte di fasi di elaborazione dei dati, richiede anche molto più tempo per l'addestramento. È possibile trovare dettagli importanti sull'addestramento del modello MLP, inclusa la combinazione di iperparametri utilizzati, come segue:
FormazioneJobName | mangrove-2-notebook–211021-2016-012-500271c8 |
FormazioneJobStatus | Completato |
Valore Obiettivo Finale | 0.96008 |
TrainingStartTime | 2021-10-21 20:22:55+00:00 |
FormazioneEndTime | 2021-10-21 21:08:06+00:00 |
TrainingElapsedTimeSeconds | 2711 |
TrainingJobDefinitionName | dpp6-mlp |
dropout_prob | 0.415778 |
fattore_dimensione_incorporamento | 0.849226 |
galline ovaiole | 256 |
tasso_di_apprendimento | 0.00013862 |
dimensione_batch_minima | 317 |
tipo di rete | feedforward |
peso_decadimento | 1.29323e-12 mila |
Crea una pipeline di inferenza
Per generare l'inferenza su nuovi dati, devi costruire una pipeline di inferenza su SageMaker per ospitare il miglior modello che può essere chiamato in seguito per generare l'inferenza. Il modello di pipeline SageMaker richiede tre contenitori come componenti: trasformazione dei dati, algoritmo e trasformazione inversa dell'etichetta (se è necessario mappare le previsioni numeriche su etichette non numeriche). Per brevità, nello snippet seguente viene mostrata solo una parte del codice richiesto; il codice completo è disponibile nella mangrove-2013.ipynb
taccuino:
Dopo aver creato i contenitori del modello, puoi costruire e distribuire la pipeline come segue:
Il completamento della distribuzione dell'endpoint richiede circa 10 minuti.
Ottieni l'inferenza sul set di dati di test usando un endpoint
Dopo che l'endpoint è stato distribuito, puoi richiamarlo con un payload di funzionalità B1–B7 per classificare ogni pixel in un'immagine come mangrovia (1) o altro (0):
I dettagli completi sulla postelaborazione delle previsioni del modello per la valutazione e la stampa sono disponibili in notebooks/model_performance.ipynb
.
Ottieni l'inferenza sul set di dati di test usando una trasformazione batch
Ora che hai creato il modello con le prestazioni migliori con Autopilot, possiamo utilizzare il modello per l'inferenza. Per ottenere l'inferenza su set di dati di grandi dimensioni, è più efficiente usare una trasformazione batch. Generiamo previsioni sull'intero set di dati (formazione e test) e aggiungiamo i risultati alle funzionalità, in modo da poter eseguire ulteriori analisi per, ad esempio, controllare le previsioni rispetto a quelle effettive e la distribuzione delle funzionalità tra le classi previste.
Innanzitutto, creiamo un file manifest in Amazon S3 che punta alle posizioni dei dati di addestramento e test delle precedenti fasi di elaborazione dei dati:
Ora possiamo creare un processo di trasformazione batch. Perché il nostro treno di input e il set di dati di test hanno label
come ultima colonna, dobbiamo rilasciarla durante l'inferenza. Per farlo, passiamo InputFilter
nel DataProcessing
discussione. Il codice "$[:-2]"
indica di eliminare l'ultima colonna. L'output previsto viene quindi unito ai dati di origine per ulteriori analisi.
Nel codice seguente, costruiamo gli argomenti per il processo di trasformazione batch e quindi li passiamo a create_transform_job
funzione:
È possibile monitorare lo stato del lavoro sulla console SageMaker.
Visualizza le prestazioni del modello
È ora possibile visualizzare le prestazioni del miglior modello sul set di dati di test, costituito da regioni di India, Myanmar, Cuba e Vietnam, come matrice di confusione. Il modello ha un alto valore di richiamo per i pixel che rappresentano le mangrovie, ma solo circa il 75% di precisione. La precisione dei pixel non mangrovie o di altro tipo è del 99% con un richiamo dell'85%. È possibile ottimizzare il limite di probabilità delle previsioni del modello per regolare i rispettivi valori in base al caso d'uso particolare.
Vale la pena notare che i risultati sono un miglioramento significativo rispetto al modello smileCart integrato.
Visualizza le previsioni del modello
Infine, è utile osservare le prestazioni del modello su regioni specifiche della mappa. Nell'immagine seguente, l'area di mangrovie al confine tra India e Bangladesh è raffigurata in rosso. I punti campionati dalla patch dell'immagine Landsat appartenenti al set di dati di test sono sovrapposti alla regione, dove ogni punto è un pixel che il modello determina rappresentare le mangrovie. I punti blu sono classificati correttamente dal modello, mentre i punti neri rappresentano errori del modello.
L'immagine seguente mostra solo i punti che il modello prevede non rappresentino le mangrovie, con la stessa combinazione di colori dell'esempio precedente. Il contorno grigio è la parte della macchia Landsat che non include le mangrovie. Come è evidente dall'immagine, il modello non commette alcun errore classificando i punti sull'acqua, ma affronta una sfida nel distinguere i pixel che rappresentano le mangrovie da quelli che rappresentano il fogliame regolare.
L'immagine seguente mostra le prestazioni del modello nella regione delle mangrovie del Myanmar.
Nell'immagine seguente, il modello fa un lavoro migliore nell'identificare i pixel delle mangrovie.
ripulire
L'endpoint di inferenza SageMaker continua a essere soggetto a costi se lasciato in esecuzione. Elimina l'endpoint come segue quando hai finito:
Conclusione
Questa serie di post ha fornito un framework end-to-end per i data scientist per la risoluzione dei problemi GIS. Parte 1 ha mostrato il processo ETL e un modo conveniente per interagire visivamente con i dati. La parte 2 ha mostrato come utilizzare Autopilot per automatizzare la creazione di un classificatore di mangrovie personalizzato.
Puoi utilizzare questo framework per esplorare nuovi set di dati satellitari contenenti un set più ricco di bande utili per la classificazione delle mangrovie ed esplorare l'ingegneria delle funzionalità incorporando la conoscenza del dominio.
Informazioni sugli autori
Andrej Ivanovic è uno studente in ingresso di un Master in Informatica presso l'Università di Toronto e un neolaureato del programma di Scienze dell'Ingegneria presso l'Università di Toronto, con una specializzazione in Machine Intelligence con una specializzazione in Robotica/Meccatronica. Si interessa di computer vision, deep learning e robotica. Ha svolto il lavoro presentato in questo post durante il suo stage estivo presso Amazon.
David Dong è un Data Scientist presso Amazon Web Services.
Arkajyoti Misura è un Data Scientist presso Amazon LastMile Transportation. È appassionato di applicare le tecniche di Computer Vision per risolvere problemi che aiutano la terra. Ama lavorare con organizzazioni no-profit ed è un membro fondatore di ekipi.org.
- Coinsmart. Il miglior scambio di bitcoin e criptovalute d'Europa.
- Platoblockchain. Web3 Metaverse Intelligence. Conoscenza amplificata. ACCESSO LIBERO.
- Criptofalco. Radar Altcoin. Prova gratuita.
- Fonte: https://aws.amazon.com/blogs/machine-learning/part-2-identify-mangrove-forests-using-satellite-image-features-using-amazon-sagemaker-studio-and-amazon-sagemaker- autopilota/
- "
- 10
- 100
- a
- Chi siamo
- Secondo
- attività
- algoritmo
- Algoritmi
- Tutti
- Amazon
- Amazon Web Services
- tra
- .
- analitica
- analizzare
- Un altro
- AMMISSIONE
- RISERVATA
- argomenti
- in giro
- automatizzare
- Automatizzata
- automaticamente
- disponibile
- AWS
- perché
- MIGLIORE
- Nero
- stile di vita
- sistema
- costruire
- Costruzione
- costruisce
- incassato
- candidato
- i candidati
- Custodie
- Challenge
- scelte
- Scegli
- classi
- classificazione
- classificato
- codice
- Colonna
- combinazione
- combinazioni
- completamento di una
- componente
- componenti
- computer
- Informatica
- confusione
- consolle
- Tecnologie Container
- continua
- di controllo
- Comodo
- creare
- creato
- crea
- Creazione
- Cuba
- costume
- dati
- elaborazione dati
- scienziato di dati
- deep
- Dipendente
- schierare
- schierato
- deployment
- dettagliati
- dettagli
- DID
- diverso
- Dsiplay
- distribuzione
- non
- dominio
- download
- Cadere
- durante
- ogni
- terra
- ecosistema
- Efficace
- efficiente
- sforzo
- da un capo all'altro
- endpoint
- Ingegneria
- entrare
- valutazione
- esempio
- esperimento
- competenza
- esplora
- facce
- Moda
- caratteristica
- Caratteristiche
- Infine
- Nome
- seguire
- i seguenti
- segue
- fondazione
- Contesto
- da
- pieno
- function
- ulteriormente
- generare
- generato
- ELETTRICA
- laurea
- grigio
- guida
- altezza
- aiuta
- Alta
- Come
- Tutorial
- HTTPS
- umano
- identificare
- identificazione
- Immagine
- importante
- miglioramento
- includere
- Compreso
- indipendentemente
- India
- informazioni
- ingresso
- esempio
- Intelligence
- interattivo
- interessato
- IT
- Lavoro
- Offerte di lavoro
- congiunto
- mantenere
- conoscenze
- conosciuto
- Discografica
- per il tuo brand
- grandi
- apprendimento
- linea
- Lista
- locale
- località
- posizioni
- macchina
- machine learning
- maggiore
- make
- carta geografica
- master
- Matrice
- Importanza
- membro
- Metrica
- errori
- ML
- modello
- modelli
- Monitorare
- Scopri di più
- multiplo
- Myanmar
- Navigazione
- necessaria
- GENERAZIONE
- senza scopo di lucro
- taccuino
- apre
- ottimizzazione
- Opzioni
- organizzazioni
- Altro
- proprio
- parte
- particolare
- appassionato
- Toppa
- performance
- prestazioni
- esecuzione
- pilota
- punto
- punti
- pool
- possibile
- Post
- Previsioni
- precedente
- Problema
- problemi
- processi
- lavorazione
- Programma
- purché
- fornisce
- motivi
- recente
- ridurre
- regione
- Basic
- rimanere
- deposito
- rappresentare
- che rappresenta
- richiesta
- necessario
- richiede
- ricercatori
- Risorse
- Risultati
- robotica
- Ruolo
- round
- Correre
- running
- stesso
- satellitare
- Risparmi
- scala
- schema
- Scienze
- Scienziato
- scienziati
- prodotti
- Serie
- Servizi
- set
- regolazione
- alcuni
- Condividi
- mostrare attraverso le sue creazioni
- mostrato
- segno
- significativa
- Un'espansione
- Taglia
- So
- solido
- soluzione
- RISOLVERE
- specifico
- stare in piedi
- Stato dei servizi
- conservazione
- Tornare al suo account
- Strategia
- studente
- studio
- soggetto
- estate
- sistema
- task
- tecniche
- condizioni
- test
- I
- L’ORIGINE
- il mondo
- tre
- Attraverso
- per tutto
- tempo
- top
- top 5
- toronto
- Training
- Trasformare
- Trasformazione
- trasformazioni
- trasporti
- per
- Università
- uso
- generalmente
- convalida
- APPREZZIAMO
- vario
- versione
- visione
- visualizzazione
- Water
- sito web
- servizi web
- while
- OMS
- senza
- Lavora
- mondo
- valore
- X
- Trasferimento da aeroporto a Sharm