| Optuna software | |
|---|---|
| Genere | Automazione dello sviluppo |
| Sviluppatore | Preferred Networks |
| Data prima versione | 14 gennaio 2020 |
| Ultima versione | 16 giugno 2025 |
| Sistema operativo | Multipiattaforma |
| Linguaggio | Python |
| Licenza | MIT (licenza libera) |
| Lingua | inglese |
| Sito web | optuna.org/ |
Optuna è un framework open source realizzato in Python per l'ottimizzazione di modelli di apprendimento automatico (in inglese machine learning (ML)). Realizzato per automatizzare il processo di scelta degli iperparametri al fine di ottimizzare le prestazioni, Optuna può essere integrato con librerie quali PyTorch, scikit-learn, e TensorFlow.
Optuna è stato introdotto nel 2018 by Preferred Networks (PFN), una startup giapponese che lavora su applicazioni pratiche di apprendimento profondo (in inglese deep learning (DL)), sviluppando tecnologie e librerie con applicazioni che variano tra diversi settori, tra cui trasporti, manufatturiero, medicina, and robotica. La versione beta di Optuna è stata pubblicata alla fine del 2018, mentre la prima versione stabile è stata annunciata a gennaio 2020.

L'ottimizzazione degli iperparametri è il processo che viene comunemente utilizzato quando si allenano modelli di apprendimento automatico per migliorarne le prestazioni e catturare lo schema dei dati. Si è osservato che tale processo è rilevante quando si ha a che fare con problemi su larga scala o a risorse limitate, in quanto migliora l'accuratezza del problema, riduce l'overfitting e diminuisce il tempo dell'allenamento.
L'ottimizzazione degli iperparametri riguarda l'identificazione della configurazione ottimale dei parametri che da definirsi prima che l'allenamento inizi, e che quindi non vengono definiti durante l'allenamento dei dati stessi. Questi valori possono essere, per esempio, il learning rate, il numero di strati (in inglese layers) o di neuroni, l'intensità della regolarizzazione, la profondità dell'albero, e altri che dipendono dal tipo di algoritmo (classificazione, regressione, clustering, ecc.).
Questo può migliorare la generalizzazione del modello e le sue prestazioni su diversi set di dati. Si è visto che una sfida rilevante si presenta quando lo spazio degli iperparametri aumenta, in quanto il processo può diventare computazionalmente costoso. Esistono metodi (come la ricerca a griglia, la ricerca casuale o l'ottimizzazione bayesiana) che semplificano questo processo di esplorazione dello spazio degli iperparametri.
Optuna è progettato per ottimizzare gli iperparametri del modello. Consente di effettuare ricerche in spazi ampi e di interrompere l'allenamento quando i risultati non mostrano miglioramenti significativi del modello, nonché di parallelizzare le ricerche degli iperparametri su più processi. Optuna è modulabile, e consente quindi di definire diverse configurazioni per la ricerca degli iperparametri. Questo rende il processo personalizzabile, in quanto è possibile scegliere quali iperparametri ottimizzare e con quale modalità in fase di esecuzione. Ciò significa che i valori da esplorare per gli iperparametri (cioè lo spazio di ricerca) possono essere definiti durante la scrittura del codice, anziché in anticipo.

Optuna sfrutta algoritmi consolidati per eseguire l'ottimizzazione degli iperparametri per il loro campionamento. I campionatori riducono progressivamente lo spazio di ricerca. Esempi sono gli algoritmi basati sul processo gaussiano, un processo per modellare la funzione obiettivo, il tree-structured parzen estimator (TPE), ovvero un metodo di ottimizzazione basato sul modello che stima la funzione obiettivo e seleziona i migliori iperparametri, e la ricerca casuale, un approccio di ottimizzazione di base utilizzato per il benchmarking.

Optuna include una funzione di interruzione anticipata (in inglese pruning), che viene sfruttata per interrompere l'allenamento quando i risultati non mostrano miglioramenti significativi nel modello, evitando così computazioni inutili. Viene utilizzato per modelli con lunghi tempi di addestramento, al fine di risparmiare tempo e risorse computazionali. Optuna sfrutta tecniche come gli algoritmi di pruning basati sulla mediana o su soglie.
Optuna è progettato per scalare con risorse di calcolo distribuite, supportando l'esecuzione in parallelo. Questa funzione consente agli utenti di eseguire prove di ottimizzazione su più processori o macchine.
Optuna può essere integrata con librerie e framework di ML:
Optuna è inoltre dotato di una dashboard per la visualizzazione in tempo reale. Permette di monitorare, attraverso grafici e tabelle, il processo di ottimizzazione e l'importanza degli iperparametri.
Optuna è stato realizzato per essere agnostico rispetto al tipo di framework, quindi può essere utilizzato con qualunque tipo di framework di ML o DL.

Optuna può essere utilizzato per ottimizzare gli iperparametri di modelli di ML. Alcuni esempi sono:
Optuna può essere utilizzato anche durante l'allenamento di modelli di DL. Può essere utilizzato durante l'allenamento di reti neurali (in inglese neural netowrks (NN)), per ottimizzare learning rate, batch size, e il numero di strati nascosti. Per esempio, può essere utilizzato per:
Optuna ha trovato applicazione in vari studi di ricerca e implementazioni industriali in diversi ambiti applicativi.
Nel settore sanitario, Optuna viene sfruttato per l'analisi delle immagini per ottimizzare i modelli DL per il rilevamento dei tumori, per l'identificazione delle malattie, per l'esecuzione della segmentazione semantica multi-organo e per l'analisi di immagini radiologiche. Può essere sfruttato anche per la previsione delle malattie, in particolare per migliorare l'accuratezza dei modelli predittivi per la diagnosi e gli esiti dei trattamenti. Trova applicazione anche nella genomica, per l'analisi dei dati per prevedere le malattie genetiche e per l'identificazione di variazioni genetiche.
Optuna viene utilizzato per ottimizzare i modelli anche nel settore finanziario per il trading algoritmico. Data la sua capacità di gestire ampi intervalli di parametri e strutture di modelli complessi, viene utilizzato per prevedere i movimenti del mercato. In particolare, viene sfruttato per l'analisi e la previsione del rischio finanziario. I temi trattati sono i rischi di credito, di mercato e operativi.
Optuna viene utilizzato nei sistemi autonomi in tempo reale per la robotica per supportare il processo decisionale in ambienti dinamici. Viene sfruttato anche nel contesto delle auto a guida autonoma per ottimizzare il modello per la navigazione in sicurezza in ambienti complessi. Ad esempio, Optuna può essere utilizzato in scenari in cui è necessario valutare il tasso e la gravità degli incidenti o per affrontare il problema degli attacchi informatici nella rete dovuti a potenziali vulnerabilità che potrebbero verificarsi.
Optuna può essere applicato anche in NLP, ad esempio per classificare un testo scritto in categorie (ad esempio, spam vs. non spam, topic modeling). Un altro compito è l'analisi del sentimenti in un testo, particolarmente sfruttato per l'analisi dei contenuti dei social media e delle recensioni dei clienti.
Per quanto riguarda l'apprendimento per rinforzo (in inglese reinforced learning (RF), Optuna viene utilizzato nel gaiming e negli ambienti virtuali per migliorare le prestazioni del modello, nella robotica per ottimizzare i processi decisionali nei sistemi di esecuzione e navigazione, e nel campo dei veicoli autonomi per ottimizzare i modelli di RF al fine di ottenere una maggiore sicurezza e una strategia di navigazione più efficiente.