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[1].

Optuna
software
Logo
Logo
GenereAutomazione dello sviluppo
SviluppatorePreferred Networks
Data prima versione14 gennaio 2020
Ultima versione16 giugno 2025
Sistema operativoMultipiattaforma
LinguaggioPython
LicenzaMIT
(licenza libera)
Linguainglese
Sito weboptuna.org/

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[2], manufatturiero[3], medicina[4], and robotica[5]. La versione beta di Optuna è stata pubblicata alla fine del 2018, mentre la prima versione stabile è stata annunciata a gennaio 2020[1].

Ottimizzazione degli iperparametri

modifica
 
Ottimizzazione degli iperparametri usando la ricerca a griglia

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[1].

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.)[6].

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[1].

Caratteristiche

modifica

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[1].

 
Ottimizzazione degli iperparametri usando Stimatori Parzen a Struttura ad Albero

Campionamento

modifica

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[7], il tree-structured parzen estimator (TPE), ovvero un metodo di ottimizzazione basato sul modello che stima la funzione obiettivo e seleziona i migliori iperparametri[8], e la ricerca casuale, un approccio di ottimizzazione di base utilizzato per il benchmarking[9].

Interruzione anticipata

modifica
 
Ottimizzazione Bayesiana di una funzione (nero) con un processo gaussiano (viola). Tre funzioni di acquisizione (blu).

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[10][11].

Scalabilità

modifica

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[12].

Integrazione con librerie di terze parti

modifica

Optuna può essere integrata con librerie e framework di ML[1]:

  • Catboost
  • Dask
  • fastai
  • Keras
  • LightGBM
  • MLflow
  • PyTorch
  • PyTorch Ignite
  • PyTorch Lightning
  • TensorBoard
  • TensorFlow
  • tf.keras
  • Weights & Biases
  • XGBoost

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[13].

Applicazioni

modifica

Optuna è stato realizzato per essere agnostico rispetto al tipo di framework, quindi può essere utilizzato con qualunque tipo di framework di ML o DL[1].

 
Processo tradizionale per l'ottimizzazione degli iperparametri per l'allenamento di foreste casuali utilizzando Optuna

Machine learning

modifica

Optuna può essere utilizzato per ottimizzare gli iperparametri di modelli di ML. Alcuni esempi sono:

  • Foresta casuale (in inglese random forest (RF)): numero di alberi, profondità massima e campioni minimi per foglia[14].
  • Macchine a vettori di supporto (in inglese support vector machines (SVM)): regularization parameter (C), kernel type (e.g., linear, radial basis function), and gamma (gamma)[16].
  • K-nearest neighbors (KNN): number of neighbors (k), metriche di distanza (ad esempio, Euclidea o Manhattan), e funzione di peso[17] .
  • Regressione lineare e logistica: alpha nella regressione Ridge o C in nella regressione logistica[18].

Deep learning

modifica

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:

  • Reti neurali convoluzionali (in inglese convolutional neural networks (CNNs)), per la classificazione di immagini, riconoscimento di oggetti, e segmentazione semantica[20].
  • Transformers, per compiti di elaborazione del linguaggio naturale (in inglese natural language processing (NLP)) come la classificazione dei testi, l'analisi del sentiment e la traduzione automatica[22].

Optuna ha trovato applicazione in vari studi di ricerca e implementazioni industriali in diversi ambiti applicativi[2][3][4][5].

Medicina

modifica

Nel settore sanitario, Optuna viene sfruttato per l'analisi delle immagini per ottimizzare i modelli DL per il rilevamento dei tumori[23][24], per l'identificazione delle malattie[25], per l'esecuzione della segmentazione semantica multi-organo[26] 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[27]. Trova applicazione anche nella genomica, per l'analisi dei dati per prevedere le malattie genetiche e per l'identificazione di variazioni genetiche[28].

Finanza

modifica

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[29][30]. 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[30].

Sistemi autonomi

modifica

Optuna viene utilizzato nei sistemi autonomi in tempo reale per la robotica[5] 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[31] o per affrontare il problema degli attacchi informatici nella rete dovuti a potenziali vulnerabilità che potrebbero verificarsi[32][33].

Elaborazione del Linguaggio Naturale

modifica

Optuna può essere applicato anche in NLP, ad esempio per classificare un testo scritto in categorie (ad esempio, spam vs. non spam, topic modeling)[34]. 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[35].

Apprendimento per rinforzo

modifica

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[36].

  1. ^ a b c d e f g Takuya Akiba, Optuna: A Next-generation Hyperparameter Optimization Framework, in Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, Association for Computing Machinery, 25 luglio 2019, pp. 2623–2631, DOI:10.1145/3292500.3330701.
  2. ^ a b Zhaofei Wang, An Approach to Truck Driving Risk Identification: A Machine Learning Method Based on Optuna Optimization, in IEEE Access, vol. 13, 2025, pp. 42723–42732, DOI:10.1109/ACCESS.2025.3547445.
  3. ^ a b Yifan Li, Optuna-DFNN: An Optuna framework driven deep fuzzy neural network for predicting sintering performance in big data, in Alexandria Engineering Journal, vol. 97, 1º giugno 2024, pp. 100–113, DOI:10.1016/j.aej.2024.04.026.
  4. ^ a b Chayut Pinichka, Comparative analysis of SWAT and SWAT coupled with XGBoost model using Optuna hyperparameter optimization for nutrient simulation: A case study in the Upper Nan River basin, Thailand, in Journal of Environmental Management, vol. 388, 1º luglio 2025, p. 126053, DOI:10.1016/j.jenvman.2025.126053.
  5. ^ a b c Jiancong Huang, Hyperparameter Auto-Tuning in Self-Supervised Robotic Learning, in IEEE Robotics and Automation Letters, vol. 6, n. 2, 8 marzo 2021, pp. 3537–3544, DOI:10.1109/LRA.2021.3064509.
  6. ^ Li Yang, On hyperparameter optimization of machine learning algorithms: Theory and practice, in Neurocomputing, vol. 415, 20 novembre 2020, pp. 295–316, DOI:10.1016/j.neucom.2020.07.061.
  7. ^ Ahad Hasan Tanim, Bayes_Opt-SWMM: A Gaussian process-based Bayesian optimization tool for real-time flood modeling with SWMM, in Environmental Modelling & Software, vol. 179, 1º agosto 2024, p. 106122, DOI:10.1016/j.envsoft.2024.106122.
  8. ^ (EN) Yoshihiko Ozaki, Multiobjective Tree-Structured Parzen Estimator, in Journal of Artificial Intelligence Research, vol. 73, 8 aprile 2022, pp. 1209–1250, DOI:10.1613/jair.1.13188.
  9. ^ James Bergstra, Random search for hyper-parameter optimization, in J. Mach. Learn. Res., vol. 13, null, 1º febbraio 2012, pp. 281–305.
  10. ^ (EN) Martin Wistuba, Hyperparameter Search Space Pruning – A New Component for Sequential Model-Based Hyperparameter Optimization, in Machine Learning and Knowledge Discovery in Databases, Springer International Publishing, 2015, pp. 104–119, DOI:10.1007/978-3-319-23525-7_7.
  11. ^ Takuya Akiba, Optuna: A Next-generation Hyperparameter Optimization Framework, in Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, Association for Computing Machinery, 25 luglio 2019, pp. 2623–2631, DOI:10.1145/3292500.3330701.
  12. ^ Juan Parra-Ullauri, Federated Hyperparameter Optimisation with Flower and Optuna, in Proceedings of the 38th ACM/SIGAPP Symposium on Applied Computing, Association for Computing Machinery, 7 giugno 2023, pp. 1209–1216, DOI:10.1145/3555776.3577847.
  13. ^ (EN) Hussain Almarzooq, Automating hyperparameter optimization in geophysics with Optuna: A comparative study, in Geophysical Prospecting, vol. 72, n. 5, 21 maggio 2024, pp. 1778–1788, DOI:10.1111/1365-2478.13484.
  14. ^ (EN) Lior Rokach, Decision Trees, Springer US, 2005, pp. 165–192, DOI:10.1007/0-387-25465-x_9.
  15. ^ Shyam R, Competitive Analysis of the Top Gradient Boosting Machine Learning Algorithms, in 2020 2nd International Conference on Advances in Computing, Communication Control and Networking (ICACCCN), 18 dicembre 2020, pp. 191–196, DOI:10.1109/ICACCCN51052.2020.9362840.
  16. ^ Derek A. Pisner, Chapter 6 - Support vector machine, Academic Press, 1º gennaio 2020, pp. 101–121.
  17. ^ Zhongheng Zhang, Introduction to machine learning: k-nearest neighbors, in Annals of Translational Medicine, vol. 4, n. 11, 14 giugno 2016, p. 218, DOI:10.21037/atm.2016.03.37.
  18. ^ G. Tripepi, Linear and logistic regression analysis, in Kidney International, vol. 73, n. 7, 1º aprile 2008, pp. 806–810, DOI:10.1038/sj.ki.5002787.
  19. ^ Feng-Jen Yang, An Implementation of Naive Bayes Classifier, in 2018 International Conference on Computational Science and Computational Intelligence (CSCI), 12 dicembre 2018, pp. 301–306, DOI:10.1109/CSCI46756.2018.00065.
  20. ^ Zewen Li, A Survey of Convolutional Neural Networks: Analysis, Applications, and Prospects, in IEEE Transactions on Neural Networks and Learning Systems, vol. 33, n. 12, 10 giugno 2021, pp. 6999–7019, DOI:10.1109/TNNLS.2021.3084827.
  21. ^ (EN) Anthony L. Caterini, Recurrent Neural Networks, Springer International Publishing, 23 marzo 2018, pp. 59–79, DOI:10.1007/978-3-319-75304-1_5.
  22. ^ Anthony Gillioz, Overview of the Transformer-based Models for NLP Tasks, in 2020 15th Conference on Computer Science and Information Systems (FedCSIS), 6 settembre 2020, pp. 179–183, DOI:10.15439/2020F20.
  23. ^ R. Bhuvanya, OptNet: Innovative Model for Early Lung Cancer Diagnosis integrating TabNet and Optuna, in 2024 International Conference on Electronic Systems and Intelligent Computing (ICESIC), 22 novembre 2024, pp. 174–179, DOI:10.1109/ICESIC61777.2024.10846378.
  24. ^ Prabhat Kumar Sahu, Optimized Breast Cancer Classification Using PCA-LASSO Feature Selection and Ensemble Learning Strategies With Optuna Optimization, in IEEE Access, vol. 13, 7 febbraio 2025, pp. 35645–35661, DOI:10.1109/ACCESS.2025.3539746.
  25. ^ (EN) P. Deepan, Maximizing Accuracy in Alzheimer’s Disease Prediction: A Optuna Hyper Parameter Optimization Strategy Using MRI Images, Springer Nature Switzerland, 2024, pp. 77–91, DOI:10.1007/978-3-031-75771-6_5.
  26. ^ (EN) Thavavel Vaiyapuri, An Optuna-Based Metaheuristic Optimization Framework for Biomedical Image Analysis, in Engineering, Technology & Applied Science Research, vol. 15, n. 4, 1º agosto 2025, pp. 24382–24389, DOI:10.48084/etasr.11234.
  27. ^ Polipireddy Srinivas, hyOPTXg: OPTUNA hyper-parameter optimization framework for predicting cardiovascular disease using XGBoost, in Biomedical Signal Processing and Control, vol. 73, 1º marzo 2022, p. 103456, DOI:10.1016/j.bspc.2021.103456.
  28. ^ (EN) Zijie Shen, GSCtool: A Novel Descriptor that Characterizes the Genome for Applying Machine Learning in Genomics, in Advanced Intelligent Systems, vol. 5, n. 12, 2023, p. 2300426, DOI:10.1002/aisy.202300426.
  29. ^ Hongyi Shui, Stock weighted average price prediction based on feature engineering and Lightgbm model, in Proceedings of the 2024 International Conference on Digital Society and Artificial Intelligence, Association for Computing Machinery, 26 agosto 2024, pp. 336–340, DOI:10.1145/3677892.3677945.
  30. ^ a b Deepak Garg, Leveraging Financial Data and Risk Management in Banking sector using Machine Learning, in 2024 IEEE 9th International Conference for Convergence in Technology (I2CT), 5 aprile 2024, pp. 1–6, DOI:10.1109/I2CT61223.2024.10544336.
  31. ^ (EN) Soheil Rezashoar, A hybrid algorithm based on machine learning (LightGBM-Optuna) for road accident severity classification (case study: United States from 2016 to 2020), in Innovative Infrastructure Solutions, vol. 9, n. 8, 26 luglio 2024, p. 319, DOI:10.1007/s41062-024-01626-y.
  32. ^ (EN) Jayesh Jha, MILCCDE: A Metaheuristic Improved Decision-Based Ensemble Framework for Intrusion Detection in Autonomous Vehicles, in Sustainable Computing and Intelligent Systems, Springer Nature, 2025, pp. 255–267, DOI:10.1007/978-981-96-3311-1_21.
  33. ^ Nishank Parekh, Network Intrusion Detection System Using Optuna, in 2024 International Conference on IoT Based Control Networks and Intelligent Systems (ICICNIS), 17 dicembre 2024, pp. 312–318, DOI:10.1109/ICICNIS64247.2024.10823298.
  34. ^ Nadya Alinda Rahmi, The Use of Hyperparameter Tuning in Model Classification: A Scientific Work Area Identification, in JOIV : International Journal on Informatics Visualization, vol. 8, n. 4, 31 dicembre 2024, p. 2181, DOI:10.62527/joiv.8.4.3092.
  35. ^ Akmar Efendi, Improvement of Machine Learning Algorithms with Hyperparameter Tuning on Various Datasets, in 2024 International Conference on Future Technologies for Smart Society (ICFTSS), 7 agosto 2024, pp. 75–79, DOI:10.1109/ICFTSS61109.2024.10691354.
  36. ^ B Ravi Kiran, Deep Reinforcement Learning for Autonomous Driving: A Survey, in IEEE Transactions on Intelligent Transportation Systems, vol. 23, n. 6, 9 febbraio 2021, pp. 4909–4926, DOI:10.1109/TITS.2021.3054625.

Bibliografia

modifica

Voci correlate

modifica

Collegamenti esterni

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica