Nell'apprendimento automatico, l'ottimizzazione degli iperparametri, o tuning, consiste nella scelta di un insieme di valori ottimali per gli iperparametri di un algoritmo di apprendimento. Un iperparametro è un parametro il cui valore viene utilizzato per controllare il processo di apprendimento, da configurare prima dell'inizio di tale processo[1][2].
L'ottimizzazione degli iperparametri determina l'insieme di valori degli iperparametri in grado di produrre un modello ottimale rispetto a una funzione obiettivo predefinita, tipicamente una funzione di perdita (loss) da minimizzare, su un insieme di dati disponibili. La funzione obiettivo accetta un insieme di iperparametri e restituisce il valore associato. Spesso si adotta la convalida incrociata per la stima delle prestazioni dell'algoritmo, scegliendo quindi l'insieme di valori per gli iperparametri che massimizzano tali stime[3].
Approcci
modifica
Ricerca su griglia
modificaIl metodo tradizionale per l'ottimizzazione degli iperparametri è la ricerca su griglia, detta anche sweep dei parametri, che consiste semplicemente in una ricerca esaustiva attraverso un sottoinsieme specificato manualmente dello spazio degli iperparametri di un algoritmo di apprendimento. La ricerca su griglia deve essere guidata da una metrica di valutazione delle prestazioni, tipicamente misurata tramite convalida incrociata sull'insieme di addestramento o valutazione su un insieme di convalida tenuto da parte (hold-out)[1].
Poiché lo spazio degli iperparametri di un modello può includere spazi di valori continui o discreti ma non limitati per alcuni di essi, potrebbe rendersi necessario impostare manualmente delle limitazioni e la discretizzazione di tali domini prima di applicare la ricerca sulla griglia.
Ad esempio, un tipico classificatore SVM a margini non rigidi che si avvalga di un kernel RBF ha almeno due iperparametri che devono essere ottimizzati per prestazioni ottimali su dati non osservati: la costante di regolarizzazione e l'iperparametro del kernel . Entrambi sono continui, quindi per eseguire la ricerca sulla griglia, si seleziona un insieme finito di valori "ragionevoli" per ciascuno come, ad esempio:
Con ricerca su griglia si addestra quindi una SVM con ciascuna coppia nel prodotto cartesiano di questi due insiemi e se ne valutano le prestazioni su un insieme di convalida tenuto da parte (o tramite convalida incrociata interna sull'insieme di addestramento, nel qual caso vengono addestrate più SVM per coppia). Infine, l'algoritmo restituisce le impostazioni che hanno ottenuto il punteggio più alto nella procedura di convalida.
La ricerca su griglia è soggetta alla cosiddetta "maledizione della dimensionalità", ma ha il vantaggio di essere perfettamente parallelizzabile perché le impostazioni degli iperparametri da valutare sono in genere indipendenti fra loro[3].
Ricerca Casuale
modifica
La ricerca casuale sostituisce l'enumerazione esaustiva di tutte le combinazioni con la loro selezione casuale. Ciò si applica semplicemente all'impostazione discreta sopra descritta, ma si generalizza anche a spazi continui e misti (note le relative distribuzioni). Un vantaggio rispetto alla ricerca su griglia è che la ricerca casuale può esplorare molti più valori rispetto alla ricerca su griglia nel caso di iperparametri continui. Essa può superare le prestazioni della ricerca su griglia, soprattutto quando solo un piccolo numero di iperparametri influisce sulle prestazioni finali dell'algoritmo di apprendimento automatico[3]. In tal caso, si dice che il problema di ottimizzazione ha una bassa dimensionalità intrinseca[4]. Anche la ricerca casuale è perfettamente parallelizzabile e inoltre consente di avvalersi di conoscenza pregressa specificando la/le distribuzione/i da cui campionare. Nonostante la sua semplicità, la ricerca casuale rimane una delle importanti tecniche di base con cui confrontare le prestazioni di nuovi metodi di ottimizzazione degli iperparametri.
Ottimizzazione Bayesiana
modificaL'ottimizzazione bayesiana è un metodo di ottimizzazione globale per funzioni black-box rumorose. Applicato all'ottimizzazione degli iperparametri, costruisce un modello probabilistico della funzione che mappa i valori degli iperparametri all'obiettivo valutato su un insieme di convalida. Valutando una configurazione di iperparametri promettente basata sul modello corrente e poi aggiornandola iterativamente, l'ottimizzazione bayesiana mira a raccogliere osservazioni che rivelino quante più informazioni possibili su questa funzione e, in particolare, sulla posizione dell'ottimo. Essa cerca di bilanciare la fase di esplorazione (iperparametri il cui risultato è più incerto) e quella di sfruttamento (iperparametri attesi vicini all'ottimo). Nella pratica, è stato dimostrato che l'ottimizzazione bayesiana[5][6][7][8][9] ottiene risultati migliori con un minor numero di valutazioni rispetto alla ricerca su griglia e alla ricerca casuale, grazie alla sua capacità di valutare la qualità degli esperimenti prima di eseguirli.
Ottimizzazione basata su gradiente
modificaPer algoritmi di apprendimento specifici, è possibile calcolare il gradiente rispetto agli iperparametri e quindi ottimizzare gli iperparametri utilizzando la discesa di gradiente. L'utilizzo di tali tecniche si è focalizzato dapprima sulle reti neurali[10]. Dopodiché, questi metodi sono stati estesi ad altri modelli come le macchine a vettori di supporto[11] o la regressione logistica[12].
Un approccio diverso per ottenere un gradiente rispetto agli iperparametri consiste nel differenziare i passi di un algoritmo di ottimizzazione iterativo utilizzando la differenziazione automatica[13][14]. Un lavoro più recente in questa direzione utilizza il teorema delle funzioni implicite per calcolare gli iper-gradienti e propone un'approssimazione stabile dell'Hessiana inversa. Il metodo scala su milioni di iperparametri e richiede una memoria costante.
In un approccio diverso[15], viene addestrata un'iper-rete (hypernetwork) al fine di approssimare la funzione di risposta migliore. Uno dei vantaggi di questo metodo è che può gestire anche iperparametri discreti. Le reti di auto-tuning[16] offrono una versione di questo approccio mirante a un uso efficiente della memoria mediante la scelta di una rappresentazione compatta dell'iper-rete. Più recentemente, questo metodo è stato ulteriormente migliorato con il Δ-STN[17] attraverso una leggera riparametrizzazione dell'iper-rete che ne velocizza l'addestramento. Il Δ-STN produce anche una migliore approssimazione della Jacobiana di risposta linearizzando la rete nei pesi, rimuovendo quindi gli effetti non lineari non necessari causati da grandi variazioni nei pesi.
Oltre agli approcci che sfruttano un'iper-rete, i metodi basati sul gradiente possono essere utilizzati per ottimizzare iperparametri discreti anche adottando un rilassamento continuo dei parametri[18]. Tali metodi sono stati ampiamente utilizzati per l'ottimizzazione di iperparametri architetturali nella ricerca dell'architettura neurale ottimale.
Ottimizzazione evolutiva
modificaL'ottimizzazione evolutiva è un'altra metodologia per l'ottimizzazione globale di funzioni black-box rumorose. Nell'ottimizzazione degli iperparametri, essa utilizza algoritmi evolutivi per ricercare nello spazio degli iperparametri di un dato algoritmo. L'ottimizzazione evolutiva degli iperparametri segue un processo ispirato alla nozione di evoluzione in biologia:
- si crea una popolazione iniziale di soluzioni casuali (ovvero, si generano casualmente tuple di iperparametri, in genere >100)
- si valutano le tuple di iperparametri e si acquisisce la loro misura di fitness (ad esempio, l'accuratezza ottenuta dalla convalida incrociata 10-fold applicata all'algoritmo di apprendimento con quegli iperparametri)
- si classificano le tuple di iperparametri in base alla rispettiva adeguatezza (fitness)
- si sostituiscono le tuple di iperparametri con le prestazioni peggiori con nuove tuple generate tramite crossover e mutazione
- si ripetono i passaggi da 2 a 4 fino a quando non si raggiungono prestazioni soddisfacenti dell'algoritmo o non si registri un ulteriore miglioramento.
L'ottimizzazione evolutiva è stata utilizzata nell'ottimizzazione degli iperparametri di algoritmi di apprendimento statistico, quali la struttura di MLP e reti neurali profonde[19] così come l'addestramento dei loro pesi.
Approccio basato sulla popolazione
modificaIl training basato su popolazione (PBT) apprende sia i valori degli iperparametri sia i pesi di una rete. Diversi processi di apprendimento operano in modo indipendente, utilizzando diversi iperparametri. Come nei metodi evolutivi, i modelli con prestazioni peggiori vengono sostituiti iterativamente con modelli che adottano valori degli iperparametri e pesi modificati sulla base dei modelli con le migliori prestazioni. Questa modalità di avvio a caldo del modello di sostituzione è il principale elemento di differenziazione fra il PBT e altri metodi evolutivi. Il PBT consente quindi agli iperparametri di evolvere, eliminando la necessità dell'ottimizzazione manuale. Il processo non fa assunzioni sull'architettura del modello, sulle funzioni di perdita o sulle procedure di addestramento.
Il PBT e le sue varianti sono metodi adattivi: aggiornano gli iperparametri durante l'addestramento dei modelli. Al contrario, i metodi non adattivi adottano la strategia sub-ottimale di fissare un insieme costante di iperparametri per l'intero processo di addestramento.
Arresto anticipato
modifica
È progettata una classe di algoritmi di ottimizzazione degli iperparametri basati sull'arresto anticipato per grandi spazi di ricerca di iperparametri continui e discreti, utili specialmente quando il costo computazionale della valutazione delle prestazioni di una configurazione risulta ingente. Irace implementa un algoritmo di iterated racing, che concentra la ricerca sulle configurazioni più promettenti, utilizzando test statistici per scartare quelle con prestazioni scadenti [20]. Un altro algoritmo ad arresto anticipato è quello del Successive Halving (SHA) [21], che parte come una ricerca casuale ma periodicamente elimina i modelli con prestazioni scadenti, concentrando così le risorse computazionali sui modelli più promettenti. L'Asynchronous successive halving (ASHA) [22] migliora ulteriormente l'utilizzo delle risorse da parte di SHA eliminando la necessità di valutare ed eliminare in modo sincrono i modelli con prestazioni scadenti. Hyperband [23] è un meta-algoritmo basato sull'arresto anticipato che invoca SHA o ASHA variando diversi livelli di aggressività nell'eliminazione, in modo da aumentare l'applicabilità e diminuire gli input richiesti.
Altri approcci
modificaEsempi di altri approcci sviluppati sono costituiti dall'RBF [24] e da quello spettrale [25].
Problematiche correlate
modificaQuando si esegue l'ottimizzazione degli iperparametri, l'insieme di valori viene spesso appreso su un training set selezionato in base alle prestazioni (generalizzazione), o a un punteggio (score), su un insieme di dati di validazione. Tuttavia, questa procedura rischia di sovradattare gli iperparametri ai dati (overfitting). Pertanto, non si può utilizzare lo score sull'insieme di validazione (che può essere costituito da più insiemi nel caso di una procedura di convalida incrociata) per stimare al contempo le prestazioni del modello finale. A tal fine, le prestazioni devono essere valutate su un insieme indipendente, disgiunto dall'insieme (o dagli insiemi) di dati utilizzati per l'ottimizzazione degli iperparametri, altrimenti le stime delle prestazioni potrebbero risultare troppo ottimistiche (alti punteggi). Questo può essere fatto su un secondo set di test o tramite una procedura di validazione esterna (validazione incrociata nidificata), che consente una stima non distorta delle prestazioni del modello, tenendo conto della distorsione dovuta all'ottimizzazione degli iperparametri.
Note
modifica- ^ a b Ethem Alpaydin, 20, in Introduction to machine learning, collana Adaptive computation and machine learning series, 4ª ed., The MIT Press, 2020, ISBN 978-0-262-04379-3.
- ^ Li Yang e Abdallah Shami, 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. URL consultato il 22 luglio 2025.
- ^ a b c James Bergstra e Yoshua Bengio, Random Search for Hyper-Parameter Optimization (PDF), in Journal of Machine Learning Research, vol. 13, 2012.
- ^ Ziyu Wang, Frank Hutter e Masrour Zoghi, Bayesian Optimization in a Billion Dimensions via Random Embeddings, in Journal of Artificial Intelligence Research, vol. 55, 19 febbraio 2016, pp. 361–387, DOI:10.1613/jair.4806. URL consultato il 25 luglio 2025.
- ^ Frank Hutter, Holger H. Hoos e Kevin Leyton-Brown, Sequential Model-Based Optimization for General Algorithm Configuration, vol. 6683, Springer Berlin Heidelberg, 2011, pp. 507–523, DOI:10.1007/978-3-642-25566-3_40, ISBN 978-3-642-25565-6. URL consultato il 25 luglio 2025.
- ^ James Bergstra, Rémi Bardenet, Yoshua Bengio e Balázs Kégl, Algorithms for hyper-parameter optimization, in Proceedings of the 25th International Conference on Neural Information Processing Systems, Curran Associates Inc., 12 dicembre 2011, pp. 2546–2554, DOI:10.5555/2986459.2986743. URL consultato il 25 luglio 2025.
- ^ Jasper Snoek, Hugo Larochelle e Ryan P. Adams, Practical Bayesian Optimization of Machine Learning Algorithms, 29 agosto 2012, DOI:10.48550/arXiv.1206.2944. URL consultato il 25 luglio 2025.
- ^ Chris Thornton, Frank Hutter e Holger H. Hoos, Auto-WEKA: Combined Selection and Hyperparameter Optimization of Classification Algorithms, 6 marzo 2013, DOI:10.48550/arXiv.1208.3719. URL consultato il 25 luglio 2025.
- ^ (EN) SAMBO: Sequential And Model-Based Optimization: Efficient global optimization in Python, Zenodo, 11 dicembre 2024, DOI:10.1007/978-3-642-25566-3_40. URL consultato il 25 luglio 2025.
- ^ Jan Larsen, Lars Kai Hansen e Claus Svarer, Neural Networks for Signal Processing VI. Proceedings of the 1996 IEEE Signal Processing Society Workshop, 1996, pp. 62–71, DOI:10.1109/NNSP.1996.548336, ISBN 0-7803-3550-3.
- ^ (EN) Olivier Chapelle, Vladimir Vapnik e Olivier Bousquet, Choosing Multiple Parameters for Support Vector Machines, in Machine Learning, vol. 46, n. 1-3, 2002-01, pp. 131–159, DOI:10.1023/A:1012450327387. URL consultato il 25 luglio 2025.
- ^ Chuan-sheng Foo, Chuong B. e Andrew Ng, Efficient multiple hyperparameter learning for log-linear models, in Advances in Neural Information Processing Systems, vol. 20, Curran Associates, Inc., 2007. URL consultato il 25 luglio 2025.
- ^ (EN) Justin Domke, Generic Methods for Optimization-Based Modeling, in Proceedings of the Fifteenth International Conference on Artificial Intelligence and Statistics, PMLR, 21 marzo 2012, pp. 318–326. URL consultato il 25 luglio 2025.
- ^ Luca Franceschi, Michele Donini e Paolo Frasconi, Forward and Reverse Gradient-Based Hyperparameter Optimization, 12 dicembre 2017, DOI:10.48550/arXiv.1703.01785. URL consultato il 25 luglio 2025.
- ^ Jonathan Lorraine e David Duvenaud, Stochastic Hyperparameter Optimization through Hypernetworks, 8 marzo 2018, DOI:10.48550/arXiv.1802.09419. URL consultato il 24 luglio 2025.
- ^ Matthew MacKay, Paul Vicol e Jon Lorraine, Self-Tuning Networks: Bilevel Optimization of Hyperparameters using Structured Best-Response Functions, 7 marzo 2019, DOI:10.48550/arXiv.1903.03088. URL consultato il 24 luglio 2025.
- ^ Juhan Bae e Roger Grosse, Delta-STN: Efficient Bilevel Optimization for Neural Networks using Structured Response Jacobians, 26 ottobre 2020, DOI:10.48550/arXiv.2010.13514. URL consultato il 24 luglio 2025.
- ^ Hanxiao Liu, Karen Simonyan e Yiming Yang, DARTS: Differentiable Architecture Search, 23 aprile 2019, DOI:10.48550/arXiv.1806.09055. URL consultato il 24 luglio 2025.
- ^ George Kousiouris, Tommaso Cucinotta e Theodora Varvarigou, The effects of scheduling, workload type and consolidation scenarios on virtual machine performance and their prediction through optimized artificial neural networks, in Journal of Systems and Software, vol. 84, n. 8, 1º agosto 2011, pp. 1270–1291, DOI:10.1016/j.jss.2011.04.013. URL consultato il 25 luglio 2025.
- ^ Manuel López-Ibáñez, Jérémie Dubois-Lacoste e Leslie Pérez Cáceres, The irace package: Iterated racing for automatic algorithm configuration, in Operations Research Perspectives, vol. 3, 1º gennaio 2016, pp. 43–58, DOI:10.1016/j.orp.2016.09.002. URL consultato il 26 luglio 2025.
- ^ Kevin Jamieson e Ameet Talwalkar, Non-stochastic Best Arm Identification and Hyperparameter Optimization, 27 febbraio 2015, DOI:10.48550/arXiv.1502.07943. URL consultato il 26 luglio 2025.
- ^ Liam Li, Kevin Jamieson e Afshin Rostamizadeh, A System for Massively Parallel Hyperparameter Tuning, 16 marzo 2020, DOI:10.48550/arXiv.1810.05934. URL consultato il 26 luglio 2025.
- ^ Lisha Li, Kevin Jamieson e Giulia DeSalvo, Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization, 18 giugno 2018, DOI:10.48550/arXiv.1603.06560. URL consultato il 26 luglio 2025.
- ^ Gonzalo Diaz, Achille Fokoue e Giacomo Nannicini, An effective algorithm for hyperparameter optimization of neural networks, 23 maggio 2017, DOI:10.48550/arXiv.1705.08520. URL consultato il 26 luglio 2025.
- ^ Elad Hazan, Adam Klivans e Yang Yuan, Hyperparameter Optimization: A Spectral Approach, 20 gennaio 2018, DOI:10.48550/arXiv.1706.00764. URL consultato il 26 luglio 2025.
Voci correlate
modifica- Selezione di modelli
- Meta-ottimizzazione
- Self-tuning
- XGBoost
- Optuna
Altri progetti
modifica
Wikimedia Commons contiene immagini o altri file su ottimizzazione degli iperparametri










