Cos’è il boosting nel machine learning?

Il boosting è un metodo utilizzato nel machine learning per ridurre gli errori nell'analisi predittiva dei dati. I data scientst addestrano software di machine learning, chiamati modelli di machine learning, su dati etichettati per formulare ipotesi su dati non etichettati. Un singolo modello di machine learning potrebbe causare errori di previsione a seconda dell'accuratezza del set di dati di addestramento. Ad esempio, se un modello di identificazione di gatti è stato addestrato solo su immagini di gatti bianchi, occasionalmente potrebbe identificare erroneamente un gatto nero. Il boosting tenta di superare questo problema addestrando più modelli in sequenza per migliorare l'accuratezza del sistema generale.

Perché il boosting è importante?

Il boosting migliora l’accuratezza predittiva e la performance dei modelli delle mcchine convertendo più learner deboli in un singolo modello forte di apprendimento. I modelli di machine learning possono essere learner deboli o forti:

Learner deboli

I learner deboli hanno bassa accuratezza predittiva, simile all’ipotesi casuale. Sono soggetti all’overfitting, ovvero non possono classificare i dati che si allontanano troppo dal set di dati originale. Ad esempio, se addestri il modello all’identificazione di gatti come animali con le orecchie a punta, esso potrebbe fallire nel riconoscere un gatto con le orecchie arricciate.

Learner forti

I learner forti hanno un’accuratezza predittiva maggiore. Il boosting converte un sistema di learner deboli in un unico sistema di learning forte. Ad esempio, per identificare l’immagine del gatto, esso combina un learner debole che formula un'ipotesi sulle orecchie a punta e un altro learner che formula un'ipotesi sugli occhi a forma di gatto. Dopo aver analizzato l’immagine dell’animale cercando le orecchie a punta, il sistema lo analizza un'altra volta per cercare gli occhi a forma di gatto. Ciò migliora l’accuratezza generale del sistema.

Serie di webinar sull’algoritmo incorporato di Amazon SageMaker: XGBoost

Come funziona il boosting?

Per capire il funzionamento del boosting, illustriamo in che modo i modelli di machine learning prendono delle decisioni. Sebbene vi siano molteplici variazioni nell’implementazione, i data scientist spesso utilizzano il boosting con algoritmi ad albero decisionale:

Alberi decisionali

Gli alberi decisionali sono strutture di dati in machine learning che funzionano dividendo il set di dati in sottogruppi sempre più piccoli sulla base delle loro caratteristiche. L’idea è che gli alberi decisionali dividano i dati ripetutamente finché non sia rimasta solo una classe. Ad esempio, l'albero potrebbe porre una serie di domande con risposta sì/no e dividere i dati in categorie ad ogni passaggio.

Metodo ensemble di boosting

Il boosting crea un modello ensemble combinando sequenzialmente molti alberi decisionali deboli. Attribuisce peso all’output di singoli alberi. Poi dà alle classificazioni errate del primo albero decisionale un peso maggiore e un input all'albero successivo. Dopo numerosi circoli, il metodo boosting combina queste regole deboli in una sola regola predittiva potente.

Il boosting a confronto col bagging

Boosting e bagging sono i due metodi comuni ensemble che migliorano l’accuratezza della previsione. La principale differenza tra questi metodi di apprendimento è il metodo di addestramento. Nel bagging i data scientist migliorano l’accuratezza dei learner deboli addestrando molti di questi una sola volta in molteplici set di dati. Al contrario, il boosting addestra i learner deboli uno dopo l’altro.

Come si svolge l’addestramento nel boosting?

Il metodo di addestramento varia in base al tipo di elaborazione boosting, detta algoritmo di boosting. Ad ogni modo, un algoritmo necessita delle seguenti fasi generali per addestrare il modello di boosting:

Fase 1

L’algoritmo del boosting assegna ugual peso a ogni campione dati. Fornisce i dati al primo modello di machine, l’algoritmo base. L’algoritmo base fa ipotesi per ogni campione di dati.

Fase 2

L’algoritmo di boosting valuta le previsioni del modello e aumenta il peso dei campioni con un errore più significativo. Assegna inoltre un peso sulla base della prestazione del modello. Un modello che genera previsioni eccellenti avrà maggiore influenza sulla decisione finale.

Fase 3

L’algoritmo trasferisce i dati pesati all'albero decisionale successivo.

Fase 4

L’algoritmo ripete le fasi 2 e 3 finché le istanze di errori di addestramento si trovano al di sotto di una certa soglia.

Quali sono le tipologie di boosting?

Le seguenti sono le tre principali tipologie di boosting:

Adaptive boosting

Adaptive boosting (AdaBoost) fu uno dei primi modelli di boosting sviluppati. Si adatta e tenta di auto correggersi in ogni iterazione del processo di boosting. 

AdaBoost inizialmente dà lo stesso peso a ogni set di dati. Successivamente regola automaticamente i pesi dei punti di dati dopo ogni albero decisionale. Dà più peso agli elementi classificati in modo errato per correggerli in funzione della fase seguente. Ripete il processo fino a quando l'errore residuo, o la differenza tra i valori reali e quelli previsti, scende al di sotto di una soglia accettabile.

È possibile utilizzare AdaBoost con molti predittori, e in genere non è così sensibile come altri algoritmi di boosting. Questo approccio non funziona quando vi è correlazione tra le caratteristiche o l’elevata dimensionalità dei dati. Complessivamente, AdaBoost è un tipo di boosting adatto alla classificazione di problemi.

Gradient boosting

Gradient Boosting (GB) è simile ad AdaBoost, in quanto è anch’esso una tecnica sequenziale di addestramento. La differenza tra AdaBoost e GB è che GB non dà un peso maggiore agli elementi classificati in modo errato. Il software GB, invece, ottimizza la funzione di perdita generando sequenzialmente learner di base, così che il learner di base corrente sia sempre più efficace del precedente. Questo metodo tenta di generare risultati accurati inizialmente, invece di correggere gli errori attraverso il processo, come AdaBoost. Per questa ragione, il software GB può portare a risultati più accurati. Gradient Boosting può aiutare sia con la classificazione che con i problemi basati sulla regressione.

Gradient boosting estremo

Il gradient boosting estremo (XGBoost) migliora il gradient boosting in velocità computazionale e scala in modi diversi. XGBoost utilizza molteplici core della CPU così che l’apprendimento possa avvenire in parallelo durante l'addestramento. Si tratta di un algoritmo di boosting che può gestire set di dati estesi, adatto ad applicazioni di big data. Le caratteristiche chiave di XGBoost sono la parallelizzazione, il calcolo distribuito, l’ottimizzazione della cache e l’elaborazione out-of-core.

Quali sono i vantaggi del boosting?

Il boosting offre i seguenti principali vantaggi:

Facilità di implementazione

Il boosting possiede algoritmi facili da comprendere e da interpretare che imparano dai propri errori. Questi algoritmi non richiedono alcuna pre-elaborazione dei dati e hanno routine integrate per gestire i dati mancanti. Inoltre, la maggior parte delle lingue ha librerie integrate per implementare gli algoritmi di boosting con molti parametri che possono ottimizzare la prestazione.

Riduzione del bias

Il bias è la presenza di incertezza o inaccuratezza nei risultati di machine learning. Gli algoritmi boosting combinano molteplici learner deboli in un metodo sequenziale, che migliora iterativamente le osservazioni. Questo approccio aiuta a ridurre il bias elevato, comune nei modelli di machine learning.

Efficienza computazionale

Gli algoritmi di boosting danno priorità a caratteristiche che aumentano l’accuratezza di previsione durante l'addestramento. Possono aiutare a ridurre gli attributi dei dati e gestire efficientemente set di dati ampi.

Quali sono le sfide del boosting?

I seguenti sono limiti comuni dei modelli boosting:

Vulnerabilità ai dati outlier

I modelli di boosting sono vulnerabili ai dati outliers o ai valori dei dati diversi dal resto del set di dati. Dal momento che ogni modello prova a correggere gli errori dei propri predecessori, gli outlier possono alterare significativamente i risultati.

Implementazione in tempo reale

Si potrebbe anche ritenere difficoltoso l’utilizzo del boosting per l’implementazione in tempo reale, dal momento che l’algoritmo è più complesso di qualsiasi altro processo. I metodi di boosting hanno adattabilità elevata, quindi è possibile utilizzare un'ampia varietà di parametri del modello che influenzano immediatamente la prestazione dello stesso.

In che modo AWS può rivelarsi utile per il boosting?

I servizi di rete AWS sono pensati per offrire alle aziende:

Amazon SageMaker

Amazon SageMaker riunisce un'ampia gamma di capacità costruite appositamente per il machine learning. Si può utilizzare per preparare, costruire, addestrare e implementare rapidamente modelli di machine learning di alta qualità.

Amazon SageMaker Autopilot

Amazon SageMaker Autopilot elimina il pesante fardello della costruzione di modelli di machine learning e aiuta a costruire e addestrare automaticamente modelli basati sui dati. Con SageMaker Autopilot, si fornisce un set di dati tabulare e si seleziona la colonna target su cui fare previsioni, che può essere un numero o una categoria. SageMaker Autopilot vaglierà automaticamente diverse soluzioni per trovare il modello migliore. È quindi possibile implementare direttamente il modello in produzione con un solo clic o migliorarne ulteriormente la qualità con le soluzioni consigliate tramite Amazon SageMaker Studio.

Amazon SageMaker Debugger

Amazon SageMaker Debugger semplifica l'ottimizzazione dei modelli di machine learning tramite l'acquisizione in tempo reale dei parametri di addestramento e l'invio di allarmi quando rileva errori. In questo modo è possibile correggere immediatamente le previsioni del modello come l'identificazione errata di un'immagine.

Amazon SageMaker offre metodi rapidi e semplici per l'addestramento di modelli di deep leaning e set di dati di grandi dimensioni. Le librerie distribuite di SageMaker addestrano più rapidamente set di dati di grandi dimensioni.

Inizia oggi stesso a utilizzare Amazon SageMaker creando un account AWS.

Fasi successive del machine learning di AWS

Standard Product Icons (Features) Squid Ink
Scopri ulteriori risorse correlate al prodotto
Ulteriori informazioni sui servizi di machine learning 
Sign up for a free account
Visualizza i servizi gratuiti di machine learning

Effettua l’accesso immediato ai servizi di machine learning Piano gratuito di AWS.

Visualizza i servizi gratuiti di machine learning 
Standard Product Icons (Start Building) Squid Ink
Inizia subito a costruire nella console

Inizia subito a utilizzare Amazon SageMaker nella Console di gestione AWS.

Registrati