Apprendimento automatico automatizzato o AutoML spiegato

Le due maggiori barriere all'uso dell'apprendimento automatico (sia l'apprendimento automatico classico che l'apprendimento profondo) sono le competenze e le risorse informatiche. Puoi risolvere il secondo problema investendo denaro, sia per l'acquisto di hardware accelerato (come computer con GPU di fascia alta) o per il noleggio di risorse di elaborazione nel cloud (come istanze con GPU collegate, TPU e FPGA).

D'altra parte, risolvere il problema delle abilità è più difficile. I data scientist spesso hanno stipendi elevati e possono ancora essere difficili da reclutare. Google è stata in grado di formare molti dei suoi dipendenti sul proprio framework TensorFlow, ma la maggior parte delle aziende ha a malapena persone sufficientemente qualificate per costruire da sole modelli di machine learning e deep learning, tanto meno insegnare agli altri come.

Cos'è AutoML?

Il machine learning automatizzato, o AutoML, mira a ridurre o eliminare la necessità di data scientist qualificati per creare modelli di machine learning e deep learning. Invece, un sistema AutoML consente di fornire i dati di addestramento etichettati come input e di ricevere un modello ottimizzato come output.

Ci sono diversi modi per farlo. Un approccio consiste nell'addestrare semplicemente ogni tipo di modello sui dati e scegliere quello che funziona meglio. Un perfezionamento di questo sarebbe costruire uno o più modelli di insieme che combinano gli altri modelli, che a volte (ma non sempre) danno risultati migliori.

Una seconda tecnica consiste nell'ottimizzazione degli iperparametri (spiegati di seguito) del modello o dei modelli migliori per addestrare un modello ancora migliore. L'ingegneria delle funzionalità (spiegata anche di seguito) è una preziosa aggiunta a qualsiasi formazione sui modelli. Un modo per dequalificare il deep learning consiste nell'utilizzare il transfer learning, essenzialmente personalizzando un modello generale ben addestrato per dati specifici.

Cos'è l'ottimizzazione degli iperparametri?

Tutti i modelli di machine learning hanno parametri, ovvero i pesi per ogni variabile o caratteristica nel modello. Questi sono solitamente determinati dalla retro-propagazione degli errori, più l'iterazione sotto il controllo di un ottimizzatore come la discesa del gradiente stocastico.

La maggior parte dei modelli di machine learning ha anche iperparametri impostati al di fuori del ciclo di addestramento. Questi includono spesso il tasso di apprendimento, il tasso di abbandono e parametri specifici del modello come il numero di alberi in una foresta casuale.

L'ottimizzazione degli iperparametri o l'ottimizzazione degli iperparametri (HPO) è un modo automatico per eseguire lo sweep o la ricerca in uno o più iperparametri di un modello per trovare l'insieme che risulta nel modello addestrato al meglio. Ciò può richiedere molto tempo, poiché è necessario addestrare nuovamente il modello (il ciclo interno) per ogni set di valori dell'iperparametro nello sweep (il ciclo esterno). Se si addestrano molti modelli in parallelo, è possibile ridurre il tempo necessario a scapito dell'utilizzo di più hardware.

Cos'è l'ingegneria delle funzionalità?

Una caratteristica è una proprietà misurabile individuale o caratteristica di un fenomeno osservato. Il concetto di "caratteristica" è correlato a quello di variabile esplicativa, che viene utilizzato in tecniche statistiche come la regressione lineare. Un vettore di caratteristiche combina tutte le caratteristiche di una singola riga in un vettore numerico. L'ingegnerizzazione delle funzionalità è il processo per trovare il miglior set di variabili e la migliore codifica e normalizzazione dei dati per l'input al processo di addestramento del modello.

Parte dell'arte della scelta delle caratteristiche consiste nello scegliere un insieme minimo di variabili indipendenti che spieghino il problema. Se due variabili sono altamente correlate, è necessario combinarle in una singola funzione o eliminarne una. A volte le persone eseguono l'analisi delle componenti principali (PCA) per convertire le variabili correlate in un insieme di variabili linearmente non correlate.

Per utilizzare i dati categoriali per la classificazione della macchina, è necessario codificare le etichette di testo in un'altra forma. Esistono due codifiche comuni.

Uno è la codifica dell'etichetta , il che significa che ogni valore dell'etichetta di testo viene sostituito con un numero. L'altra è una codifica a caldo , il che significa che ogni valore dell'etichetta di testo viene trasformato in una colonna con un valore binario (1 o 0). La maggior parte dei framework di machine learning ha funzioni che eseguono la conversione per te. In generale, è preferibile la codifica one-hot, poiché la codifica dell'etichetta a volte può confondere l'algoritmo di apprendimento automatico facendogli credere che la colonna codificata sia ordinata.

Per utilizzare i dati numerici per la regressione della macchina, di solito è necessario normalizzare i dati. Altrimenti, i numeri con intervalli maggiori potrebbero tendere a dominare la distanza euclidea tra i vettori delle caratteristiche, i loro effetti potrebbero essere amplificati a scapito degli altri campi e l'ottimizzazione della discesa più ripida potrebbe avere difficoltà a convergere. Esistono diversi modi per normalizzare e standardizzare i dati per l'apprendimento automatico, tra cui normalizzazione min-max, normalizzazione media, standardizzazione e adattamento alla lunghezza dell'unità. Questo processo è spesso chiamato ridimensionamento delle funzionalità .

Alcune delle trasformazioni che le persone usano per costruire nuove caratteristiche o ridurre la dimensionalità dei vettori di caratteristiche sono semplici. Ad esempio, sottrarre Year of Birthda Year of Deathe si costruisce Age at Death, che è una variabile indipendente principale per tutta la vita e l'analisi della mortalità. In altri casi, la costruzione delle caratteristiche potrebbe non essere così ovvia.

Cos'è il transfer learning?

L'apprendimento del trasferimento è talvolta chiamato apprendimento automatico personalizzato e talvolta AutoML (principalmente da Google). Invece di partire da zero durante l'addestramento dei modelli dai dati, Google Cloud AutoML implementa l'apprendimento automatico del trasferimento profondo (il che significa che parte da una rete neurale profonda esistente addestrata su altri dati) e la ricerca dell'architettura neurale (il che significa che trova la giusta combinazione di extra livelli di rete) per la traduzione delle coppie linguistiche, la classificazione del linguaggio naturale e la classificazione delle immagini.

Questo è un processo diverso da quello che di solito si intende per AutoML e non copre tutti i casi d'uso. D'altra parte, se hai bisogno di un modello di deep learning personalizzato in un'area supportata, il transfer learning spesso produrrà un modello superiore.

Implementazioni di AutoML

Esistono molte implementazioni di AutoML che puoi provare. Alcuni sono servizi a pagamento e alcuni sono codice sorgente gratuito. Gli elenchi seguenti non sono in alcun modo completi o definitivi.

Servizi AutoML

Tutti i tre grandi servizi cloud hanno una sorta di AutoML. Amazon SageMaker esegue l'ottimizzazione degli iperparametri ma non prova automaticamente più modelli né esegue l'ingegneria delle funzionalità. Azure Machine Learning ha sia AutoML, che passa attraverso funzionalità e algoritmi, sia l'ottimizzazione degli iperparametri, che in genere esegui con il miglior algoritmo scelto da AutoML. Google Cloud AutoML, come ho discusso in precedenza, è un deep transfer learning per la traduzione di coppie linguistiche, la classificazione del linguaggio naturale e la classificazione delle immagini.

Diverse aziende più piccole offrono anche servizi AutoML. Ad esempio, DataRobot, che afferma di aver inventato AutoML, ha una solida reputazione nel mercato. E mentre dotData ha una piccola quota di mercato e un'interfaccia utente mediocre, ha forti capacità di progettazione delle funzionalità e copre molti casi d'uso aziendali. H2O.ai Driverless AI, che ho esaminato nel 2017, può aiutare un data scientist a realizzare modelli come un master Kaggle, eseguendo l'ingegneria delle funzionalità, gli sweep degli algoritmi e l'ottimizzazione degli iperparametri in modo unificato.

Framework AutoML

AdaNet è un framework leggero basato su TensorFlow per l'apprendimento automatico di modelli di alta qualità con il minimo intervento di un esperto. Auto-Keras è una libreria software open source per l'apprendimento automatico automatizzato, sviluppata presso Texas A&M, che fornisce funzioni per la ricerca automatica dell'architettura e degli iperparametri dei modelli di deep learning. NNI (Neural Network Intelligence) è un toolkit di Microsoft per aiutare gli utenti a progettare e mettere a punto modelli di machine learning (ad es. Iperparametri), architetture di rete neurale o parametri di un sistema complesso in modo efficiente e automatico.

Puoi trovare altri progetti AutoML e un elenco abbastanza completo e aggiornato di documenti su AutoML su GitHub.