Informazioni su Machine Learning automatizzato

SI APPLICA A: Python SDK azure-ai-ml v2 (corrente)

Machine Learning automatizzato, noto anche come ML automatizzato o AutoML, è il processo che consente di automatizzare le attività ripetitive e dispendiose in termini di tempo legate allo sviluppo di modelli di Machine Learning. Consente a data scientist, analisti e sviluppatori di creare modelli di Machine Learning con scalabilità, efficienza e produttività elevate, garantendo al tempo stesso la qualità del modello. ML automatizzato in Azure Machine Learning è basato su un'analisi approfondita svolta dalla divisione Microsoft Research.

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'iterazione tramite gli algoritmi di Machine Learning abbinati alle selezioni di funzionalità, in cui ogni iterazione produce un modello con un punteggio di training. Migliore è il punteggio per la metrica che si vuole ottimizzare, migliore è il modello considerato "adatto" ai dati. Il servizio si arresterà quando raggiunge 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:

  1. Identificare il problema di Machine Learning da risolvere: classificazione, previsione, regressione, visione artificiale o NLP.

  2. Scegliere se si vuole un'esperienza code-first o un'esperienza Web senza codice: gli utenti che preferiscono un'esperienza code-first possono usare l’Azure Machine Learning SDKv2 o il 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/senza codice possono usare l'interfaccia Web in Azure Machine Learning Studio all'indirizzo https://ml.azure.com. Introduzione a Esercitazione: creare un modello di classificazione con ML automatizzato in Azure Machine Learning.

  3. Specificare l'origine dei dati di training etichettati: è possibile trasferire i dati in Azure Machine Learning in molti modi diversi.

  4. Configurare i parametri di Machine Learning automatizzato che determinano il numero di iterazioni su modelli diversi, le impostazioni degli iperparametri, la definizione delle funzionalità/pre-elaborazione avanzata e le metriche da esaminare quando si determina il modello migliore.

  5. Inviare il processo di training.

  6. Esaminare i risultati

La figura seguente illustra questo processo. Automated Machine learning

È possibile esaminare anche 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

Applicare Machine Learning automatizzato in modo che Azure Machine Learning esegua il training e l'ottimizzazione di un modello usando la metrica di destinazione specificata. Machine Learning automatizzato democratizza il processo di sviluppo di modelli di Machine Learning e consente agli utenti, indipendentemente dalla loro esperienza di data science, di identificare una pipeline di Machine Learning end-to-end per eventuali problemi.

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
  • Utilizzare 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. Altre informazioni sulle opzioni di definizione delle funzionalità. È anche possibile trovare l'elenco degli algoritmi supportati da AutoML qui.

L'obiettivo principale dei modelli di classificazione è quello di stimare le categorie in cui rientreranno 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à. È anche possibile trovare l'elenco degli algoritmi supportati da AutoML qui.

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 prezzo dell'automobile in base a caratteristiche come, chilometraggio dei gas, classificazione di sicurezza e così via.

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. È possibile usare Machine Learning automatizzato per combinare tecniche e approcci e ottenere una previsione della serie temporale consigliata e di alta qualità. È possibile trovare l'elenco degli algoritmi supportati da AutoML qui.

Un esperimento di serie temporale automatizzato viene considerato un problema di regressione multivariata. 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 di numerosi modelli tramite raggruppamento
  • Convalida incrociata dell'origine in sequenza
  • Ritardi configurabili
  • Funzionalità di aggregazione della finestra mobile

Vedere un esempio di attività di previsione e Machine Learning automatizzato in questi notebook Python: Domanda elettrica.

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à è possibile:

  • Integrare senza problemi con 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.

La creazione di modelli AutoML per le attività di visione è supportata tramite l'SDK Azure Machine Learning di Python. I processi, i modelli e gli output della sperimentazione risultanti sono accessibili dall'interfaccia utente dello studio di Azure Machine Learning.

Informazioni su come configurare il training AutoML per i modelli di visione artificiale.

Computer vision tasks examples. Image from: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf Immagine 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 gli 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. La creazione di modelli NLP con training automatizzato di Ml è supportata tramite Azure Machine Learning Python SDK. I processi, i modelli e gli output della sperimentazione risultanti sono accessibili dall'interfaccia utente dello studio di Azure Machine Learning.

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 funzionalità è una funzionalità sperimentale in anteprima 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 caratteristiche

La progettazione delle funzionalità è il processo di utilizzo della 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 vengono applicate per semplificare la definizione delle funzionalità Collettivamente, queste tecniche e progettazione di caratteristiche sono definite caratteristiche.

Per gli esperimenti automatizzati di Machine Learning, la definizione delle funzionalità viene applicata automaticamente, ma può anche essere personalizzata 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.

Nota

I passaggi di definizione delle funzionalità di Machine Learning automatizzato (normalizzazione delle funzionalità, gestione dei dati mancanti, conversione dei valori di testo in formato numerico e così via) diventano parte del modello sottostante. Quando si usa il modello per le previsioni, gli stessi passaggi di definizione delle funzionalità applicati durante il training vengono automaticamente applicati ai dati di input.

Personalizzare la definizione delle funzionalità

Sono disponibili anche altre tecniche di progettazione delle funzionalità, ad esempio la codifica e le trasformazioni.

Abilitare questa impostazione con:

  • Studio di Azure Machine Learning: abilitare Automatic featurization (Definizione delle funzionalità automatica) nella sezione View additional configuration (Visualizza configurazione aggiuntiva) con 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 dell'insieme migliora i risultati di Machine Learning e le prestazioni predittive combinando più modelli rispetto all'uso di 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).
  • Sovrapposizione: combina modelli eterogenei ed esegue il training di un metamodello 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'insieme Caruana con l'inizializzazione dell'insieme ordinato viene usato per decidere quali modelli usare nell'insieme. 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'insieme esistente, l'insieme viene aggiornato in modo da 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 creare un modello Python e convertirlo nel formato ONNX. Quando i modelli sono nel formato ONNX, possono essere eseguiti in un'ampia gamma di 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

Sono disponibili più risorse per iniziare a usare AutoML.

Esercitazioni/procedure

Le esercitazioni sono esempi introduttivi end-to-end di scenari AutoML.

Gli articoli sulle procedure forniscono dettagli aggiuntivi sulle funzionalità offerte da Machine Learning automatizzato. ad esempio:

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.

Nota

Le funzionalità di Machine Learning automatizzato sono disponibili anche in altre soluzioni Microsoft, ad esempio ML.NET, HDInsight, Power BI e SQL Server