Ciao a tutti! Sono Vincenzo Lomonaco, ricercatore all’Università di Pisa.
Nella puntata di oggi discuteremo di Automated Machine Learning, AutoML, un’intera branca di ricerca nel mondo dell’intelligenza artificiale per l’ottimizzazione automatica delle soluzioni basate su apprendimento automatico.
A che punto siamo? Quali sono le metodologie allo stato dell’arte che lo consentono e riusciremo a sostituire, almeno parzialmente, il ruolo del data scientist con una macchina? Scopriamolo insieme in questa puntata di Le Voci dell’AI.
Ma partiamo dalle basi. AutoML, acronimo di Automated Machine Learning, rappresenta un insieme di tecniche e strumenti tools che automatizzano il processo di creazione, selezione e ottimizzazione di modelli di machine learning.
Il suo obiettivo principale è rendere l’accesso al machine learning più semplice, eliminando molte delle competenze tecniche avanzate richieste tradizionalmente e tutte le frizioni che sussistono nella creazione e gestione di questi modelli di AI.
L’AutoML può gestire varie fasi del flusso di lavoro del machine learning, tra cui la pulizia dei dati, la selezione di caratteristiche o features, la scelta degli algoritmi, la configurazione dei parametri e la valutazione delle prestazioni del modello in funzione del compito o problema che vorremo risolvere. Utilizzando tecniche come la ricerca iperparametrica automatica, l’ingegneria delle caratteristiche, la selezione dei modelli, l’AutoML permette agli utenti di ottenere modelli altamente performanti con il minimo intervento umano.
Certo, tutto questo ha un costo che è spesso legato a l’utilizzo di risorse significative dal punto di vista computazionale.
L’AutoML è particolarmente utile infatti in contesti aziendali dove quello che manca sono in realtà le risorse umane specializzate che possono gestire questi processi.
Piattaforme come AutoML Google Cloud, H20.ai e auto-sklearn offrono interfacce user friendly e strumenti che consentono anche ai non esperti di sfruttare la potenza e le possibilità applicative del machine learning.
L’automazione di questi processi, quindi, non solo accelera lo sviluppo di modelli che soddisfano le nostre esigenze prestazionali, ma riduce anche il rischio di errori umani, portando a soluzioni più accurate ed affidabili.
In termini storiografici, direi, l’AutoML ha iniziato a prendere forma come una vera e propria disciplina all’inizio del 2010 e uno dei primi significativi sviluppi è stato l’introduzione di strumenti come AutoWeka, sviluppato nel linguaggio di programmazione Java, pensate, molto poco comune oggigiorno per lo sviluppo di soluzioni di AI.
Questo nel 2013, che combinava la ricerca iperparametrica automatizzata con la selezione del modello.
Un’altra pietra miliare è stata l’introduzione di Auto-Sklearn nel 2015, che ha integrato l’apprendimento automatico già implementato in varie forme dentro la libreria scikit-learn, con la ricerca automatizzata di modelli.
Nel 2018 Google ha ulteriormente rivoluzionato il campo dell’AutoML con l’introduzione di Cloud AutoML, che ha permesso anche agli utenti senza conoscenze approfondite di machine learning, di creare modelli avanzati con una esperienza di utilizzo di tipo enterprise per la prima volta, invece che di ricerca e sviluppo, come accaduto nelle precedenti proposte. Altri importanti sviluppi includono l’evoluzione di una piattaforma che offre soluzioni di AutoML complete e l’integrazione di tecniche di AutoML in ambienti di sviluppo come Jupiter Notebook.
Guardando al futuro, ci si auspica che l’AutoML continui a evolversi, rendendo il machine learning sempre più intuitivo e accessibile, con l’obiettivo di ridurre ulteriormente la necessità di interventi umani, migliorare l’efficienza dei processi e democratizzare, se vogliamo, l’uso dell’intelligenza artificiale a un pubblico più ampio, più esteso, sostanzialmente automatizzando i compiti un po’ più noiosi e farraginosi che oggi richiedono l’impiego di data scientist e personale specializzato.
Come abbiamo detto, le metodologie allo stato dell’arte di AutoML comprendono una serie di tecniche avanzate finalizzate a ottimizzare, automatizzare il processo di sviluppo di modelli di machine learning.
Tra queste, la ricerca iperparametrica automatica è fondamentale, la principale, se vogliamo, utilizzando algoritmi come la grid search (ricerca a griglia), la random search (ricerca casuale) e l’ottimizzazione bayesiana per trovare la configurazione ottimale dei parametri di un modello che ci consente di apprendere qualcosa di meglio che sia in grado poi di generalizzare su dati mai visti in precedenza. Un po’ l’obiettivo fondamentale dell’apprendimento automatico.
Un’altra metodologia chiave è l’ingegneria delle caratteristiche automatizzata, che prevede la trasformazione dei nostri dati in caratteristiche di più alto livello che possono favorire il processo di apprendimento.
La selezione dei modelli, infine, è un’altra dimensione, altrettanto importante e tramite tecniche di ensemble learning e metalearning permette di combinare magari anche più modelli per ottenere una maggiore robustezza e accuratezza.
Ma focalizziamoci quindi sulla ricerca di parametri che, come abbiamo detto, è un passo cruciale nel processo di sviluppo di modelli di machine learning.
Questo perché gli iperparametri influenzano significativamente le prestazioni del modello che abbiamo creato.
Gli iperparametri non sono altro che dei parametri esterni al modello che non vengono appresi dai dati, come il tasso di apprendimento in rete, il numero di alberi in una foresta casuale – Random Forest o i parametri del kernel di una kernel machine – macchina vettore di supporto.
La scelta dei parametri spetta a noi data scientist, spetta a un AI designer esterno o può essere effettuata automaticamente attraverso un processo di autoanalisi per garantirci migliori prestazioni e capacità di generalizzazione del modello.
Tuttavia, trovare la combinazione giusta può essere complesso e dispendioso in termini di tempo, perché lo spazio degli iperparametri è spesso vasto e non lineare.
Due delle tecniche più comuni per affrontare questo problema che abbiamo menzionato precedentemente e di cui vi volevo parlare più nel dettaglio, oggi sono la Grid Search e la Random Search. La Grid Search esplora sistematicamente un insieme predefinito di valori per ogni iperparametro, valutando ogni combinazione possibile.
Questo approccio è esaustivo, ma può diventare rapidamente impraticabile con un numero elevato di iper parametri e valori da testare per ciascuno di essi poiché il numero di combinazioni, come sappiamo, cresce esponenzialmente.
La Random Search invece, campione casualmente le combinazioni di iperparametri da uno spazio di ricerca definito.
Sebbene meno sistematica, la Random Search ha dimostrato di essere sorprendentemente efficace poiché esplora più ampiamente lo spazio dati per parametri in meno tempo rispetto alla Grid Search.
Entrambe le tecniche in realtà sono fondamentali, sono strumenti di ottimizzazione dei parametri che tutti noi data scientist utilizziamo ogni giorno con la Random Search che spesso offre un compromesso migliore tra efficienza e performance.
In questa immagine vediamo una rappresentazione grafica bidimensionale della differenza che sussiste tra Grid Search sulla sinistra e Random Search sulla destra.
In particolare per ogni grafico sulle ordinate abbiamo i valori di un parametro meno importante, un iperparametro che incide poco sulle performance della nostra soluzione alla fine dell’addestramento, mentre sulle ascisse abbiamo un parametro, un iperparametro che incide particolarmente, come vediamo da questa distribuzione dell’accuratezza del modello evidenziata qui in verde.
Se ipotizziamo di effettuare una ricerca uniforme, vediamo che in questo caso, provando tutte le combinazioni di valori discreti in sei punti, non siamo in grado di scegliere gli iparametri che massimizzano le performance finali del modello.
Nel secondo caso, invece, sulla destra quello che succede con la ricerca randomica è che abbiamo più probabilità di scoprire soluzioni più vantaggiose con lo stesso numero di punti che in sostanza costituiscono selezioni specifiche, combinazioni dei due iperparametri e di conseguenza diverse esecuzioni del processo di apprendimento.
In questa puntata abbiamo affrontato il concetto dell’automazione del processo di apprendimento automatico, dalla cura dei dati al design dell’algoritmo, sino alla scelta degli iperparametri che governano il processo di training.
In particolare, abbiamo approfondito due diversi modi di effettuare una ricerca degli iperparametri, grid search e random search.
Queste tecniche, insieme a molte altre, fanno parte di soluzioni correntemente usate in modo molto pervasivo nella ricerca e soluzioni di mercato del futuro.
Ci aspettiamo un significativo miglioramento nell’automazione di questi processi per rendere la creazione e gestione di soluzioni di AI ad appannaggio di aziende anche di piccole e medie dimensioni che non possono oggi investire risorse umane qualificate.
Ma siamo, direi ancora lontani dall’efficacia di umani esperti e data scientist che vedremo difficilmente rimpiazzati nel breve termine.
Ciao e alla prossima puntata di Le Voci dell’AI!