Cos'è l'apprendimento d'insieme?

Autori

Jacob Murel Ph.D.

Senior Technical Content Creator

Eda Kavlakoglu

Business Development + Partnerships

IBM Research

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 di ensemble 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 di ensemble. 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 di ensemble, in particolare quelli sequenziali, trasformano efficacemente i weak learner in strong learner.4

Le ultime tendenze in materia di AI, proposte da esperti

Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Perché utilizzare l'apprendimento d'insieme?

Compromesso tra distorsione e varianza

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, dove 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

Formula dell'errore totale per l'apprendimento d'insieme

Molti modelli contro uno

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 di ensemble 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 di ensemble risultante. L'apprendimento d'insieme può quindi risolvere problemi di regressione come l'overfitting senza influenzare la distorsione del modello. Di fatto, la ricerca suggerisce che gli insiemi composti da diversi modelli poco regolarizzati (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à.

Tipi di modelli di ensemble

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 sequenzialmente e per fasi.9

Diagramma che illustra insiemi paralleli e sequenziali.

I metodi paralleli si dividono ulteriormente in metodi omogenei ed eterogenei. Gli ensemble paralleli omogenei utilizzano lo stesso algoritmo di apprendimento di base per produrre tutti i base learner che li compongono. Gli ensemble paralleli eterogenei utilizzano algoritmi diversi per produrre base learner.10

Voto

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 di base per una determinata istanza di dati e utilizza la previsione della maggioranza come previsione finale. Il voto di maggioranza pesato è un'estensione di questa tecnica che dà maggiore peso alle previsioni di alcuni learner rispetto ad altri.11

Tecniche di apprendimento d'insieme

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.

Bagging

Il bagging è un metodo parallelo omogeneo noto anche come aggregazione bootstrap. 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 di ensemble Scikit-learn in Python contiene funzioni per l'implementazione del bagging, come BaggingClassifier.

Più precisamente, il bagging utilizza una tecnica chiamata ricampionamento bootstrap 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 ricampionamento bootstrap copia n istanze di dati da quel set in un nuovo set di dati di sotto-campionamento, con alcune istanze iniziali che possono apparire più di una volta e altre escluse del tutto. Questi sono esempi di bootstrapping. 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

Diagramma che illustra il bagging nel contesto dell'apprendimento d'insieme.

La foresta casuale è un'estensione del bagging che denota specificamente l'uso del bagging per costruire insiemi di alberi decisionali randomizzati. Si differenziano dagli alberi decisionali 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

Stacking

Lo stacking, o stacked generalization15 è 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

Diagramma che illustra lo stacking nel contesto dell'apprendimento d'insieme

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.

Boosting

Gli algoritmi di boosting sono un metodo di ensemble 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 campiona quindi 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. Viene quindi 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

Diagramma che illustra il boosting nel contesto dell'apprendimento d'insieme

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 boosting del gradiente utilizza errori residui durante l'addestramento di nuovi learner. Anziché pesare i campioni classificati in modo errato, il boosting del gradiente 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.

Ricerche recenti

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 di ensemble 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 di ensemble 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 e tecniche di pre-elaborazione e post-elaborazione per migliorare l'equità nei modelli di ensemble.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.

Soluzioni correlate
IBM watsonx.ai

Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Fai il passo successivo

Ottieni l'accesso completo a funzionalità che coprono l'intero ciclo di vita dello sviluppo dell'AI. Crea soluzioni AI all'avanguardia con interfacce intuitive, workflow e accesso alle API e agli SDK standard di settore.

Esplora watsonx.ai Prenota una demo live