Data di pubblicazione: 18 marzo 2024
Autori: Jacob Murel Ph.D., Eda Kavlakoglu
L'apprendimento d'insieme combina più learner per migliorare le prestazioni predittive. È stato adottato in risposta a problemi legati a set di dati limitati.
L'apprendimento d'insieme è una tecnica di machine learning che aggrega due o più learner (ad es. modelli di regressione e reti neurali) per produrre previsioni migliori. In altre parole, un modello d'insieme combina diversi modelli individuali per produrre previsioni più accurate rispetto a un singolo modello autonomo.1 Talvolta, questa tecnica è chiamata "committee-based learning". L'apprendimento d'insieme si basa sul principio che una collettività di learner produce una maggiore precisione complessiva rispetto a un singolo learner.2 In effetti, la ricerca ne dimostra l'efficacia con i modelli di machine learning e le reti neurali convoluzionali (CNN).
Una nota sulla terminologia: base learner, base model e, in alcuni casi, base estimator si riferiscono al modello o ai modelli individuali utilizzati negli algoritmi d'insieme. La letteratura divide ulteriormente i base learner in strong learner e weak learner. I weak model o learner sono definiti come quelli che ottengono risultati di poco superiori a quelli di un'ipotesi casuale. Per i problemi di classificazione binaria, i classificatori deboli sono più formalmente quelli che raggiungono un'accuratezza di circa il cinquanta percento. Al contrario, gli strong model o learner raggiungono prestazioni predittive eccellenti, che nella classificazione binaria equivalgono a un'accuratezza pari o superiore all'ottanta percento.3
È necessario precisare che alcune fonti confondono il weak learner e il base learner, dato che i metodi d'insieme, in particolare quelli sequenziali, trasformano efficacemente i weak learner in strong learner.4
Esplora IBM watsonx e scopri come creare modelli di machine learning utilizzando set di dati statistici.
Iscriviti alla newsletter IBM
Il compromesso distorsione/varianza è un problema ben noto nel machine learning e un principio alla base di molte tecniche di regolarizzazione. Queste possono essere così definite:
- La distorsione misura la differenza media tra i valori previsti e i valori reali. Quando la distorsione aumenta, un modello predice in modo meno accurato su un set di dati di addestramento. Un'elevata distorsione si riferisce a un elevato errore nell'addestramento. L'ottimizzazione consiste nei tentativi di ridurre la distorsione.
- La varianza misura la differenza tra le previsioni tra le varie realizzazioni di un determinato modello. Con l'aumento della varianza, un modello predice in modo meno accurato sui dati non visti. L'alta varianza si riferisce a un errore elevato durante il test e la convalida. La generalizzazione consiste nei tentativi di ridurre la varianza.
La distorsione e la varianza rappresentano quindi inversamente l'accuratezza del modello rispettivamente sui dati di addestramento e di prova.5 Rappresentano due dei tre termini che compongono il tasso di errore totale di un modello; il terzo è l'errore irriducibile. Questo terzo termine indica l'errore derivante dalla casualità intrinseca di un set di dati. L'errore totale del modello può essere definito dalla formula:6
Ogni algoritmo di addestramento di un modello è costituito da numerose variabili, ad esempio dati di addestramento, iperparametri e così via, che influiscono sull'errore totale del modello risultante. Pertanto, anche un singolo algoritmo di addestramento può produrre modelli diversi, ciascuno con i propri tassi di distorsione, varianza ed errore irriducibile. Combinando diversi modelli, gli algoritmi d'insieme possono produrre un tasso di errore complessivo inferiore pur mantenendo le complessità e i vantaggi di ogni singolo modello, come una distorsione notevolmente bassa per un sottoinsieme di dati specifico.7
La ricerca suggerisce che, in generale, maggiore è la diversità tra i modelli combinati, più accurato è il modello d'insieme risultante. L'apprendimento d'insieme può quindi risolvere problemi di regressione come l'overfitting senza influenzare la distorsione del modello. In effetti, la ricerca suggerisce che gli insiemi composti da diversi modelli poco regolarizzati (ad esempio i modelli che tendono a fare overfitting sui dati di addestramento) superano le prestazioni di singoli modelli regolarizzati.8 Inoltre, le tecniche di apprendimento d'insieme possono aiutare a risolvere i problemi derivanti dai dati ad alta dimensionalità e quindi servire efficacemente come alternativa alla riduzione della dimensionalità.
La letteratura classifica ampiamente i metodi di apprendimento d'insieme nel machine learning in due gruppi: paralleli e sequenziali.
- I metodi paralleli addestrano ogni base learner separatamente dagli altri. Come dice il nome, quindi, i metodi d'insieme paralleli addestrano i base learner in parallelo e indipendentemente l'uno dall'altro.
- I metodi sequenziali addestrano un nuovo base learner in modo da ridurre al minimo gli errori commessi dal modello precedente addestrato nella fase precedente. In altre parole, i metodi sequenziali costruiscono modelli di base in modo sequenziale per fasi.9
I metodi paralleli si dividono ulteriormente in metodi omogenei ed eterogenei. I metodi d'insieme paralleli omogenei utilizzano lo stesso algoritmo di apprendimento di base per produrre tutti i componenti base learner. I metodi d'insieme paralleli eterogenei utilizzano algoritmi diversi per produrre base learner.10
In che modo i metodi d'insieme combinano i base learner in un learner finale? Alcune tecniche, ad es. lo stacking, utilizzano algoritmi di machine learning separati per addestrare un ensemble learner a partire dai base learner. Ma un metodo comune per consolidare le previsioni dei base learner è il voto e, più precisamente, il voto di maggioranza.
Il voto di maggioranza considera la previsione di ogni base learner per una determinata istanza di dati e produce una previsione finale determinata da ciò che prevede la maggioranza dei learner. Ad esempio, in un problema di classificazione binaria, il voto di maggioranza prende le previsioni di ciascun classificatore base per una determinata istanza di dati e utilizza la previsione della maggioranza come previsione finale. Il voto di maggioranza pesata è un'estensione di questa tecnica che dà maggiore peso alle previsioni di alcuni learner rispetto ad altre.11
Tre delle tecniche di apprendimento d'insieme più popolari sono probabilmente il bagging, il boosting e lo stacking. In effetti, questi esemplificano insieme le distinzioni tra metodi d'insieme sequenziali, paralleli, omogenei ed eterogenei.
È opportuno notare che questa panoramica non è esaustiva: esistono diversi altri metodi d'insieme, come il blending e i metodi d'insieme a media pesata. Si tratta solo di una rassegna di alcuni dei metodi più importanti in letteratura.
Il bagging è un metodo parallelo omogeneo a noto anche come bootstrap aggregating. Utilizza repliche modificate di un determinato set di dati di addestramento per addestrare più base learner con lo stesso algoritmo di addestramento.12 Il modulo d'insieme di Scikit-learn in Python contiene funzioni per l'implementazione del bagging, come BaggingClassifier.
Più precisamente, il bagging utilizza una tecnica chiamata bootstrap resampling per ricavare più set di dati nuovi da un set di dati di addestramento iniziale, al fine di addestrare più base learner. Come funziona? Supponiamo che un set di dati di addestramento contenga n esempi di addestramento. Il bootstrap resampling copia n istanze di dati da quel set in un nuovo set di dati di sottocampionamento, con alcune istanze iniziali che possono apparire più di una volta e altre escluse del tutto. Questi sono esempi di bootstrap. La ripetizione di questo processo x volte produce x iterazioni del set di dati originale, ciascuna contenente n campioni dal set iniziale. Ogni iterazione del set iniziale viene quindi utilizzata per addestrare un base learner separato con lo stesso algoritmo di apprendimento.13
La foresta casuale è un'estensione del bagging che denota specificamente l'uso del bagging per costruire insiemi di decision trees randomizzati. Si differenziano dai decision trees standard in quanto questi ultimi campionano ogni caratteristica per identificare quella migliore per la suddivisione. Al contrario, le foreste casuali campionano iterativamente sottoinsiemi casuali di caratteristiche per creare un nodo decisionale.14
Lo stacking, o stacked generalization 15 è un metodo parallelo eterogeneo che esemplifica ciò che è noto come meta-learning. Il meta-learning consiste nell'addestrare un meta-learner dall'output di più base learner. Lo stacking addestra specificamente diversi base learner dallo stesso set di dati utilizzando un algoritmo di addestramento diverso per ogni learner. Ogni base learner effettua previsioni su un set di dati non visto. Queste prime previsioni del modello vengono poi compilate e utilizzate per addestrare un modello finale, ovvero il meta-model.16
Per addestrare il meta-learner, è importante utilizzare un set di dati diverso da quello utilizzato per addestrare i base learner. L'utilizzo dello stesso set di dati per addestrare i base learner e il meta-learner può comportare l'overfitting. Questo può richiedere l'esclusione di istanze di dati dai dati di addestramento del base learner da utilizzare come dati di test, che a loro volta diventano dati di addestramento per il meta-learner. La letteratura spesso raccomanda tecniche come la convalida incrociata per garantire che questi set di dati non si sovrappongano.17
Come per il bagging, il modulo sklearn.ensemble in Python fornisce varie funzioni per l'implementazione di tecniche di stacking.
Gli algoritmi di boosting sono un metodo d'insieme sequenziale. Il boosting ha molte varianti, ma tutte seguono la stessa procedura generale. Il boosting addestra un learner su un set di dati iniziale, d. Il learner risultante è in genere debole e classifica erroneamente molti campioni nel set di dati. Proprio come il bagging, il boosting quindi campiona le istanze dal set di dati iniziale per creare un nuovo set di dati (d2). A differenza del bagging, tuttavia, il boosting dà la priorità alle istanze di dati classificate in modo errato provenienti dal primo modello o learner. Un nuovo learner viene addestrato su questo nuovo set di dati d2. Quindi viene compilato un terzo set di dati (d3) da d1 e d2, dando priorità ai campioni classificati erroneamente del secondo learner e ai casi in cui d1 e d2 sono in disaccordo. Il processo si ripete n volte per produrre n learner. Il boosting, quindi, combina e pesa tutti i learner per produrre previsioni finali.18
Gli algoritmi di boosting differiscono ampiamente nel modo in cui danno priorità alle istanze di dati erroneamente previste durante la creazione di un nuovo set di dati. Due dei metodi di boosting più importanti possono illustrare questo concetto:
- L'adaptive boosting (AdaBoost) pesa gli errori del modello. Cioè, quando si crea una nuova iterazione di un set di dati per l'addestramento del learner successivo, AdaBoost aggiunge pesi ai campioni classificati erroneamente del learner precedente, facendo sì che il learner successivo dia priorità a quei campioni classificati erroneamente.
- Il gradient boosting utilizza errori residui durante l'addestramento di nuovi learner. Anziché pesare i campioni classificati in modo errato, il gradient boosting utilizza gli errori residui di un modello precedente per impostare le previsioni target per il modello successivo. In questo modo, si tenta di colmare il divario di errore lasciato da un modello.19
Sfortunatamente, sklearn non contiene funzioni predefinite per l'implementazione del boosting. La libreria open source Extreme Gradient Boosting (XGBoost), tuttavia, fornisce il codice per l'implementazione del gradient boosting in Python.
Data la difficoltà di acquisire grandi set di dati etichettati per l'addestramento dei learner, l'apprendimento d'insieme ha visto molte applicazioni nel tentativo di migliorare le prestazioni dei learner con meno dati. Ad esempio, diversi studi recenti mostrano risultati promettenti con il miglioramento della capacità di generalizzazione del modello utilizzando metodi d'insieme per attività di computer vision, come l'addestramento di diversi modelli con diverse rappresentazioni di un set di dati20 o la combinazione di diversi modelli distorti.21
Nonostante la capacità dei metodi d'insieme di migliorare la capacità di generalizzazione, possono tuttavia comportare una mancanza di equità. Nel machine learning, l'equità indica i tentativi di alleviare la distorsione degli algoritmi (spesso contro gruppi minoritari) nei sistemi automatizzati, di solito derivanti da learner addestrati su dati sensibili. Alcuni studi propongono metriche, tecniche di pre-elaborazione e post-elaborazione per migliorare l'equità nei modelli d'insieme.22 Gli sforzi continui per migliorare l'equità e le pratiche etiche nell'AI continuano a essere un ambito molto importante per la ricerca futura.
1 Zhi-Hua Zhou, Ensemble Methods: Foundations and Algorithms, CRC Press, 2012.
2 Gavin Brown, "Ensemble Learning", Encyclopedia of Machine Learning and Data Mining, Springer, 2017.
3 Gautam Kunapuli, Ensemble Methods for Machine Learning, Manning Publications, 2023. Lior Rokach, Pattern Classification Using Ensemble Methods, World Scientific Publishing Company, 2010.
4 Zhi-Hua Zhou, Ensemble Methods: Foundations and Algorithms, CRC Press, 2012.
5 Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani, and Jonathan Taylor, An Introduction to Statistical Learning with Applications in Python, Springer, 2023.
6 George Kyriakides and Konstantinos G. Margaritis, Hands-On Ensemble Learning with Python, Packt Publishing, 2019.
7 Zhi-Hua Zhou, Machine Learning, translated by Shaowu Liu, Springer, 2021. George Kyriakides and Konstantinos G. Margaritis, Hands-On Ensemble Learning with Python, Packt Publishing, 2019.
8 Peter Sollich and Anders Krogh, "Learning with ensembles: How overfitting can be useful", Advances in Neural Information Processing Systems, Vol. 8, 1995, https://papers.nips.cc/paper_files/paper/1995/hash/1019c8091693ef5c5f55970346633f92-Abstract.html (link esterno a ibm.com).
9 Gautam Kunapuli, Ensemble Methods for Machine Learning, Manning Publications, 2023.
10 Zhi-Hua Zhou, Ensemble Methods: Foundations and Algorithms, CRC Press, 2012.
11 Ibomoiye Domor Mienye and Yanxia Sun, "A Survey of Ensemble Learning: Concepts, Algorithms, Applications, and Prospects", IEEE Access, Vol. 10, 2022, pagg. 99129-99149, https://ieeexplore.ieee.org/document/9893798 (link esterno a ibm.com). Lior Rokach, "Ensemble-based Classifiers", Artificial Intelligence Review, Vol. 33, 2010, pagg. 1-39, https://link.springer.com/article/10.1007/s10462-009-9124-7 (link esterno a ibm.com).
12 M. Galar, A. Fernandez, E. Barrenechea, H. Bustince and F. Herrera, "A Review on Ensembles for the Class Imbalance Problem: Bagging-, Boosting-, and Hybrid-Based Approaches", IEEE Transactions on Systems, Man, and Cybernetics, Vol. 42, N. 4, 2012, pagg. 463-484, https://ieeexplore.ieee.org/document/5978225 (link esterno a ibm.com).
13 Zhi-Hua Zhou, Ensemble Methods: Foundations and Algorithms, CRC Press, 2012.
14 Gautam Kunapuli, Ensemble Methods for Machine Learning, Manning Publications, 2023.
15 Robi Palikar, "Ensemble Learning", Ensemble Machine Learning: Methods and Applications, Springer, 2012.
16 Ibomoiye Domor Mienye and Yanxia Sun, "A Survey of Ensemble Learning: Concepts, Algorithms, Applications, and Prospects", IEEE Access, Vol. 10, 2022, pagg. 99129-99149, https://ieeexplore.ieee.org/document/9893798 (link esterno a ibm.com).
17 Zhi-Hua Zhou, Ensemble Methods: Foundations and Algorithms, CRC Press, 2012. Gautam Kunapuli, Ensemble Methods for Machine Learning, Manning Publications, 2023.
18 Robi Palikar, "Ensemble Learning", Ensemble Machine Learning: Methods and Applications, Springer, 2012. Zhi-Hua Zhou, Ensemble Methods: Foundations and Algorithms, CRC Press, 2012.
19 Gautam Kunapuli, Ensemble Methods for Machine Learning, Manning Publications, 2023.
20 Devesh Walawalkar, Zhiqiang Shen, and Marios Savvides, "Online Ensemble Model Compression Using Knowledge Distillation", 2020, pagg. 18-35, https://link.springer.com/chapter/10.1007/978-3-030-58529-7_2 (link esterno a ibm.com).
21 Xinzhe Han, Shuhui Wang, Chi Su, Qingming Huang, and Qi Tian, "Greedy Gradient Ensemble for Robust Visual Question Answering", atti della IEEE/CVF International Conference on Computer Vision (ICCV), 2021, pagg. 1584-1593, https://openaccess.thecvf.com/content/ICCV2021/html/Han_Greedy_Gradient_Ensemble_for_Robust_Visual_Question_Answering_ICCV_2021_paper.html (link resides outside of ibm.com).
22 Usman Gohar, Sumon Biswas, and Hridesh Rajan, "Towards Understanding Fairness and its Composition in Ensemble Machine Learning", 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE), 2023, pagg. 1533-1545, https://ieeexplore.ieee.org/abstract/document/10172501 (link esterno a ibm.com). Khaled Badran, Pierre-Olivier Côté, Amanda Kolopanis, Rached Bouchoucha, Antonio Collante, Diego Elias Costa, Emad Shihab, and Foutse Khomh, "Can Ensembling Preprocessing Algorithms Lead to Better Machine Learning Fairness?" Computer, Vol. 56, N. 4, 2023, pagg. 71-79, https://ieeexplore.ieee.org/abstract/document/10098174 (link esterno a ibm.com). Swanand Kadhe, Anisa Halimi, Ambrish Rawat, and Nathalie Baracaldo, "FairSISA: Ensemble Post-Processing to Improve Fairness of Unlearning in LLMs", Socially Responsible Language Modelling Research Workshop, 2023, https://neurips.cc/virtual/2023/78908 (link esterno a ibm.com).