Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
SI APPLICA A:
SDK Python azure-ai-ml v2 (corrente)
Machine Learning automatizzato, noto anche come Machine Learning automatizzato o AutoML, automatizza le attività iterative e dispendiose in termini di tempo dello sviluppo di modelli di Machine Learning. Con ML automatizzato, data scientist, analisti e sviluppatori possono creare modelli di Machine Learning su larga scala con efficienza e produttività, mantenendo al contempo la qualità del modello. ML automatizzato in Azure Machine Learning si basa su un'analisi approfondita da parte della divisione Microsoft Research.
- Per i clienti con esperienza nell’uso del codice, installare Azure Machine Learning Python SDK. Introduzione a Esercitazione: eseguire il training di un modello di rilevamento oggetti (anteprima) con AutoML e Python.
Come funziona AutoML?
Durante il training, Azure Machine Learning crea numerose pipeline in parallelo che tentano di usare diversi algoritmi e parametri per conto dell'utente. Il servizio esegue l'interazione degli algoritmi di Machine Learning associati alle selezioni di funzionalità. Ogni iterazione produce un modello con un punteggio di training. Migliore è il punteggio per la metrica che si vuole ottimizzare, migliore sarà il modello più adatto ai dati. Il processo viene arrestato una volta che soddisfa i criteri di uscita definiti nell'esperimento.
Con Azure Machine Learning, è possibile progettare ed eseguire gli esperimenti di training di Machine Learning automatizzato con i passaggi seguenti:
Identificare il problema di apprendimento automatico da risolvere: classificazione, previsione, regressione, visione artificiale o elaborazione del linguaggio naturale.
Scegliere un'esperienza code-first oppure un'esperienza no-code in uno studio web: gli utenti che preferiscono un'esperienza code-first possono usare Azure Machine Learning SDKv2 o Azure Machine Learning CLIv2. Introduzione a Esercitazione: Eseguire il training di un modello di rilevamento oggetti con AutoML e Python. Gli utenti che preferiscono un'esperienza limitata o senza codice possono usare l’interfaccia Web in studio di Azure Machine Learning all'indirizzo https://ml.azure.com. Introduzione a Esercitazione: creare un modello di classificazione con ML automatizzato in Azure Machine Learning.
Specificare l'origine dei dati di training etichettati: trasferire i dati in Azure Machine Learning in molti modi diversi.
Configurare i parametri di Machine Learning automatizzati: impostare il numero di iterazioni su modelli diversi, impostazioni degli iperparametri, opzioni avanzate di pre-elaborazione e definizione delle caratteristiche e le metriche da valutare quando si determina il modello migliore.
Inviare il processo di training.
Esaminare i risultati.
La figura seguente illustra questo processo.
È possibile anche esaminare le informazioni registrate del processo, che contengono le metriche raccolte durante il processo. Il processo di training genera un oggetto Python serializzato (file .pkl) che contiene il modello e la pre-elaborazione dei dati.
Mentre la creazione di modelli è automatica, è anche possibile ottenere informazioni sull'importanza delle funzionalità per i modelli generati.
Quando usare AutoML: classificazione, regressione, previsione, visione artificiale e NLP
Usare il Machine Learning automatizzato quando si desidera che Azure Machine Learning esegua il training e l'ottimizzazione di un modello utilizzando la metrica obiettivo specificata. Machine Learning automatizzato democratizza il processo di sviluppo di modelli di Machine Learning e consente agli utenti, indipendentemente dalle proprie competenze di data science, di identificare una pipeline di Machine Learning end-to-end per qualsiasi problema.
I professionisti e gli sviluppatori di ML di tutti i settori possono usare Machine Learning automatizzato per:
- Implementare soluzioni di Machine Learning senza una conoscenza approfondita della programmazione
- Risparmiare tempo e risorse
- Applicare le procedure consigliate di data science
- Fornire efficaci soluzioni ai problemi
Classificazione
La classificazione è un tipo di apprendimento supervisionato in cui i modelli imparano a usare i dati di training e applicano tali informazioni ai nuovi dati. Azure Machine Learning offre funzionalità specifiche per queste attività, ad esempio la definizione delle funzionalità del testo per la rete neurale profonda per la classificazione. Per altre informazioni sulle opzioni di definizione delle funzionalità, vedere Definizione delle funzionalità dei dati. È inoltre possibile trovare l'elenco degli algoritmi supportati da AutoML nella sezione Algoritmi supportati.
L'obiettivo principale dei modelli di classificazione è quello di stimare le categorie in cui rientrano i nuovi dati in base alle informazioni sui dati di training. Esempi di classificazione comuni includono rilevamento delle frodi, riconoscimento della grafia e rilevamento degli oggetti.
Vedere un esempio di attività di classificazione e sull'uso di Machine Learning automatizzato in questi notebook Python: marketing bancario.
Regressione
Analogamente alla classificazione, anche quelle di regressione sono attività di apprendimento supervisionato comuni. Azure Machine Learning offre funzionalità specifiche per i problemi di regressione. Altre informazioni sulle opzioni di definizione delle funzionalità. È inoltre possibile trovare l'elenco degli algoritmi supportati da AutoML nella sezione Algoritmi supportati.
Diversamente dalla classificazione, dove i valori di output stimati sono categorici, i modelli di regressione stimano i valori di output numerici in base a predittori indipendenti. Nella regressione l'obiettivo è di stabilire la relazione tra le variabili indipendenti del predittore stimando il modo in cui una variabile influisce sulle altre. Ad esempio, il modello può predire il prezzo dell'automobile in base a caratteristiche come chilometri con un litro e classificazione di sicurezza.
Vedere un esempio di attività di regressione e sull'uso di Machine Learning automatizzato per le previsioni in questi notebook Python: Prestazioni hardware.
Previsione della serie temporale
La compilazione di previsioni è parte integrante di qualsiasi azienda, sia che si tratti di ricavi, scorte, vendite o richieste dei clienti. Usare ML automatizzato per combinare tecniche e approcci e ottenere una previsione di serie temporali di alta qualità consigliata. Per un elenco degli algoritmi supportati da AutoML, vedere Algoritmi supportati.
Un esperimento di serie temporali automatizzato considera il problema come un problema di regressione multivariato. I valori della serie temporale precedente vengono "trasformati tramite Pivot" per diventare dimensioni aggiuntive per il regressore insieme ad altri predittori. Questo approccio, a differenza dei metodi classici della serie temporale, ha il vantaggio di incorporare naturalmente più variabili contestuali e la relazione tra loro durante il training. Machine Learning automatizzato apprende un modello singolo, ma spesso con rami interni, per tutti gli elementi del set di dati e degli orizzonti di stima. Maggiori sono quindi i dati disponibili per la stima dei parametri del modello e più probabile diventa la generalizzazione per la serie non visibile.
La configurazione avanzata della previsione include:
- Rilevamento festività e definizione delle funzionalità
- Strumenti di apprendimento della serie temporale e della rete neurale profonda (Auto-ARIMA, Prophet, ForecastTCN)
- Supporto per molti modelli tramite raggruppamento
- Convalida incrociata dell'origine in sequenza
- Ritardi configurabili
- Funzionalità di aggregazione della finestra mobile
Per un esempio di previsione e machine learning automatizzato, vedere questo notebook Python: Domanda di energia.
Visione artificiale
Il supporto per le attività di visione artificiale consente di generare facilmente modelli sottoposti a training sui dati delle immagini per scenari come la classificazione delle immagini e il rilevamento degli oggetti.
Con questa funzionalità puoi:
- Integrare facilmente la funzionalità di etichettatura dei dati di Azure Machine Learning.
- Usare i dati etichettati per la generazione di modelli di immagine.
- Ottimizzare le prestazioni del modello specificando l'algoritmo del modello e ottimizzando gli iperparametri.
- Scaricare o distribuire il modello risultante come servizio Web in Azure Machine Learning.
- Rendere operativo su larga scala, sfruttando le funzionalità di MLOps e ML Pipelines.
È possibile creare modelli AutoML per le attività di visione usando Azure Machine Learning Python SDK. È possibile accedere ai processi di sperimentazione, ai modelli e agli output risultanti dall'interfaccia utente di Azure Machine Learning Studio.
Informazioni su come configurare il training di AutoML per modelli di visione artificiale.
Immagine tratta da: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf
ML automatizzato per le immagini supporta le attività di visione dei computer seguenti:
| Attività | Descrizione |
|---|---|
| Classificazione immagini in più classi | Attività in cui un'immagine viene classificata con una sola etichetta di un set di classi, ad esempio ogni immagine viene classificata come immagine di un gatto, di un cane o di una papera. |
| Classificazione immagini con più etichette | Attività in cui un'immagine può avere una o più etichette di un set di etichette, ad esempio un'immagine può essere etichettata sia con "gatto" che con "cane". |
| Rilevamento di oggetti | Attività per identificare gli oggetti in un'immagine e individuare ogni oggetto con un rettangolo di selezione, ad esempio individuare tutti i cani e i gatti in un'immagine e disegnare un rettangolo di selezione intorno a ognuno. |
| Segmentazione delle istanze | Attività per identificare oggetti in un'immagine a livello di pixel, disegnando un poligono intorno a ogni oggetto nell'immagine. |
Elaborazione del linguaggio naturale: NLP
Il supporto per le attività di elaborazione del linguaggio naturale (NLP) in Machine Learning automatizzato consente di generare facilmente modelli sottoposti a training sui dati di testo per la classificazione del testo e gli scenari di riconoscimento di entità denominati. È possibile creare modelli NLP con training automatizzato di ML tramite Azure Machine Learning Python SDK. È possibile accedere ai processi di sperimentazione, ai modelli e agli output risultanti dall'interfaccia utente di Azure Machine Learning Studio.
La funzionalità NLP supporta:
- Training NLP della rete neurale profonda end-to-end con i modelli BERT con training preliminare più recente
- Integrazione perfetta con etichettatura dei dati di Azure Machine Learning
- Usare i dati etichettati per la generazione di modelli NLP
- Supporto multilingue con 104 lingue
- Training distribuito con Horovod
Informazioni su come configurare il training AutoML per i modelli NLP.
Training, convalida e test dei dati
Con ML automatizzato è possibile fornire i dati di training per eseguire il training dei modelli di Machine Learning ed è possibile specificare il tipo di convalida del modello da eseguire. Machine Learning automatizzato esegue la convalida del modello come parte del training. Ovvero, ML automatizzato usa dati di convalida per ottimizzare gli iperparametri del modello in base all'algoritmo applicato per trovare la combinazione più adatta ai dati di training. Tuttavia, gli stessi dati di convalida vengono usati per ogni iterazione dell'ottimizzazione, che introduce distorsioni di valutazione del modello poiché il modello continua a migliorare e adattarsi ai dati di convalida.
Per verificare che tale distorsione non venga applicata al modello consigliato finale, ML automatizzato supporta l'uso di dati di test per valutare il modello finale consigliato da ML automatizzato alla fine dell'esperimento. Quando si forniscono dati di test come parte della configurazione dell'esperimento AutoML, questo modello consigliato viene testato per impostazione predefinita alla fine dell'esperimento (anteprima).
Importante
Il test dei modelli con un set di dati di test per valutare i modelli generati è una funzionalità di anteprima. Questa è una funzionalità di anteprima sperimentale e può cambiare in qualsiasi momento.
Informazioni su come configurare esperimenti AutoML per usare i dati di test (anteprima) con l'SDK o con Studio di Azure Machine Learning.
Progettazione delle funzioni
La progettazione delle funzionalità usa la conoscenza del dominio dei dati per creare funzionalità che consentono agli algoritmi di Machine Learning di apprendere meglio. In Azure Machine Learning, le tecniche di ridimensionamento e normalizzazione consentono di gestire la progettazione delle funzionalità. Collettivamente, queste tecniche di ingegneria delle funzionalità prendono il nome di definizione delle funzionalità.
Per gli esperimenti di Machine Learning automatizzati, la definizione delle funzionalità avviene automaticamente, ma è anche possibile personalizzarla in base ai dati. Altre informazioni sulle funzionalità incluse (SDK v1) e sul modo in cui AutoML aiuta aprevenire l'overfitting e i sbilanciati nei modelli dell’utente.
Note
I passaggi di definizione delle funzionalità di Machine Learning automatizzati, ad esempio la normalizzazione delle funzionalità, la gestione dei dati mancanti e la conversione del testo in numeri, diventano parte del modello sottostante. Quando si usa il modello per le stime, gli stessi passaggi di definizione delle caratteristiche applicati durante il training vengono applicati automaticamente ai dati di input.
Personalizzare la definizione delle funzionalità
È anche possibile usare altre tecniche di progettazione delle funzionalità, ad esempio la codifica e le trasformazioni.
Abilitare questa impostazione con:
Studio di Azure Machine Learning: abilitare Definizione delle funzionalità automatica nella sezione Visualizza configurazione aggiuntivacon questi passaggi.
Python SDK: specificare la definizione delle funzionalità nell'oggetto processo AutoML. Altre informazioni sull'abilitazione delle funzionalità.
Modelli ensemble
Machine Learning automatizzato supporta i modelli Ensemble, che sono abilitati per impostazione predefinita. L'apprendimento completo migliora i risultati di Machine Learning e le prestazioni predittive combinando più modelli invece di usare modelli singoli. Le iterazioni dell'insieme vengono visualizzate come iterazioni finali del processo. Machine Learning automatizzato usa i metodi Ensemble di voto e sovrapposizione per combinare i modelli:
- Voto: stima in base alla media ponderata delle probabilità della classe stimata (per le attività di classificazione) o alle destinazioni di regressione stimate (per le attività di regressione).
- Stacking: combina modelli eterogenei ed esegue il training di un metamodelle in base all'output dei singoli modelli. I metamodelli predefiniti correnti sono LogisticRegression per le attività di classificazione ed ElasticNet per le attività di regressione/previsione.
L'algoritmo di selezione dell'ensemble Caruana con inizializzazione dell'insieme ordinato decide quali modelli usare all'interno dell'ensemble. A un livello elevato, questo algoritmo inizializza l'insieme con un massimo di cinque modelli con i punteggi individuali migliori e verifica che questi modelli siano entro il 5% di soglia del punteggio migliore per evitare un insieme iniziale scadente. Per ogni iterazione dell'insieme, viene aggiunto un nuovo modello all'insieme esistente e viene calcolato il punteggio risultante. Se un nuovo modello migliora il punteggio dell'aggregato esistente, l'aggregato viene aggiornato per includere il nuovo modello.
Per la modifica delle impostazioni dell'insieme predefinite in Machine Learning automatizzato, vedere la Pacchetto AutoML.
Machine Learning automatizzato e ONNX
Con Azure Machine Learning, è possibile usare Machine Learning automatizzato per compilare un modello Python e convertirlo nel formato ONNX. Una volta che i modelli sono in formato ONNX, è possibile eseguirli in varie piattaforme e dispositivi. Altre informazioni sull'accelerazione dei modelli di Machine Learning con ONNX.
Vedere come eseguire la conversione nel formato ONNX in questo esempio di notebook Jupyter. Informazioni sugli algoritmi supportati in ONNX.
Il runtime di ONNX supporta anche C#, quindi è possibile usare il modello creato automaticamente nelle app C# senza la necessità di ricodificare o di una delle latenze di rete introdotte dagli endpoint REST. Altre informazioni sull'uso di un modello ONNX AutoML in un'applicazione .NET con ML.NET e inferenza di modelli ONNX con l'API C# di runtime ONNX.
Passaggi successivi
Usare le risorse seguenti per iniziare a usare AutoML.
Esercitazioni e articoli guida
Le esercitazioni sono esempi introduttivi end-to-end di scenari di Machine Learning automatizzato.
Per un'esperienza Code First, seguire Esercitazione: Addestrare un modello di rilevamento oggetti con AutoML e Python.
Per un'esperienza con poco o senza codice, vedere l'esercitazione: Eseguire il training di un modello di classificazione senza codice AutoML in studio di Azure Machine Learning.
Gli articoli sulle procedure forniscono maggiori dettagli sulle funzionalità offerte da Machine Learning automatizzato. Ad esempio,
Configurare le impostazioni per esperimenti di training automatico
Informazioni su come eseguire il training dei modelli di visione del computer con Python.
Informazioni su come visualizzare il codice generato dai modelli di Machine Learning automatizzati (SDK v1).
Esempi di Jupyter Notebook
Esaminare esempi di codice e casi d'uso dettagliati nel repository di notebook GitHub per esempi di Machine Learning automatizzato.
Informazioni di riferimento su Python SDK
Approfondire l'esperienza dei modelli di progettazione e delle specifiche delle classi SDK con la documentazione di riferimento della classe processo AutoML.
Note
Le funzionalità di Machine Learning automatizzato sono disponibili anche in altre soluzioni Microsoft, ad esempio ML.NET, HDInsight, Power BI e SQL Server.