Tecniche di potenziamento nell'apprendimento automatico: miglioramento della precisione e riduzione degli errori
Pubblicato: 2025-01-16Il boosting è una potente tecnica di apprendimento d'insieme nell'apprendimento automatico (ML) che migliora l'accuratezza del modello riducendo gli errori. Addestrando modelli sequenziali per affrontare le carenze precedenti, il potenziamento crea robusti sistemi predittivi. Questa guida spiega come funziona il potenziamento; i suoi vantaggi, sfide e applicazioni; e come si confronta con l'insaccamento.
Sommario
- Cos'è il potenziamento?
- Bias vs. varianza
- Boosting vs. insaccamento
- Come funziona il potenziamento
- Tipi di algoritmi di potenziamento
- Applicazioni del potenziamento
- Vantaggi del potenziamento
- Sfide e limiti del potenziamento
Cos'è il potenziamento?
Il potenziamento è una tecnica di apprendimento dell'insieme che addestra nuovi modelli sequenziali per correggere gli errori dei modelli precedenti nell'insieme. Le tecniche di apprendimento d'insieme sono modi di utilizzare più modelli simili per migliorare le prestazioni e la precisione. Nel potenziamento, i nuovi modelli vengono addestrati esclusivamente sugli errori precedenti dell'insieme. Quindi i nuovi modelli si uniscono all’insieme per aiutarlo a fornire previsioni più accurate. Qualsiasi nuovo input viene passato attraverso i modelli e aggregato per ridurre gli errori su tutti i modelli.
La precisione è un concetto ampio. Il potenziamento aumenta specificamente le prestazioni del modello riducendo la distorsione del modello (e, in misura minore, la varianza). Varianza e bias sono due importanti concetti di ML che tratteremo nella sezione successiva.
Bias vs. varianza
Bias e varianza sono due proprietà fondamentali dell’apprendimento automatico nel suo insieme. L'obiettivo di qualsiasi algoritmo ML è ridurre la varianza e la distorsione dei modelli. Data la loro importanza, spiegheremo di più su ciascuno e perché di solito sono in contrasto tra loro.
Per spiegare ciascun concetto, prendiamo l'esempio della previsione del prezzo di vendita delle case sulla base dei dati sulle loro caratteristiche (ad esempio, metratura, numero di camere da letto, ecc.).
Pregiudizio
Il bias è una misura di quanto un modello sia in media sbagliato. Se una casa viene effettivamente venduta per $ 400.000 e il modello prevede $ 300.000, la distorsione per quel punto dati è −$ 100.000. Calcola la media della distorsione sull'intero set di dati di addestramento e otterrai la distorsione di un modello.
I bias di solito derivano da modelli troppo semplici per cogliere le complesse relazioni tra caratteristiche e risultati. Un modello troppo semplice potrebbe imparare a guardare solo la metratura e sarà costantemente sbagliato, anche sui dati di addestramento. Nel gergo ML, questo si chiama underfitting.
Varianza
La varianza misura quanto differiscono gli output di un modello a fronte di input simili. Nella maggior parte dei casi, case in quartieri simili e con metratura, numero di camere da letto e numero di bagni simili dovrebbero avere prezzi simili. Ma un modello con una varianza elevata può dare prezzi molto diversi. Perché?
Il modello potrebbe aver appreso relazioni spurie dai dati di addestramento (ad esempio, pensare che i numeri civici influenzino il prezzo). Queste relazioni spurie possono quindi soffocare le relazioni utili nei dati. In genere, i modelli complessi rilevano queste relazioni irrilevanti, fenomeno chiamato overfitting.
Compromesso bias-varianza
Idealmente, si desidera un modello ML a bassa distorsione e bassa varianza che rilevi le relazioni reali nei dati ma non altro. Tuttavia, questo è difficile da realizzare nella pratica.
Aumentare il livello di sofisticazione o complessità di un modello può ridurne la distorsione dandogli il potere di trovare modelli più profondi nei dati. Tuttavia, questo stesso potere può anche aiutarlo a trovare modelli irrilevanti e viceversa, rendendo difficile da risolvere questo compromesso tra bias e varianza.
Il potenziamento migliora la distorsione e la varianza
Il potenziamento è una tecnica di apprendimento d'insieme molto popolare perché può ridurre sia la distorsione che la varianza (sebbene la riduzione della varianza non sia così comune).
Correggendo gli errori precedenti, il boosting riduce il tasso di errore medio e la dimensione dell’insieme di modelli, riducendo la distorsione.
Utilizzando più modelli, è possibile eliminare gli errori dei singoli modelli, portando potenzialmente a una varianza inferiore.
Boosting vs. insaccamento
Nell'apprendimento d'insieme, le due tecniche più comuni sono il boosting e il bagging. Il bagging prende il set di dati di addestramento, ne crea sottoinsiemi randomizzati e addestra un modello diverso su ciascun sottoinsieme. Quindi i modelli vengono utilizzati insieme per fare previsioni. Ciò porta ad alcune differenze tra bagging e boosting, che descriviamo in dettaglio di seguito.
Insaccamento | Potenziamento | |
Formazione modello | I modelli vengono addestrati in parallelo su diversi sottoinsiemi di dati. | I modelli vengono addestrati in sequenza, in cui ciascun modello si concentra sugli errori del modello precedente. |
Focus sulla riduzione degli errori | Riduce la varianza | Riduce i pregiudizi |
Algoritmi comuni | Foresta casuale, alberi decisionali impacchettati | AdaBoost, potenziamento del gradiente, XGBoost |
Rischio di adattamento eccessivo | Minore rischio di overfitting dovuto al campionamento casuale | Maggiore rischio di overfitting |
Complessità di calcolo | Inferiore | Più alto |
Entrambe le tecniche sono comuni, ma il potenziamento è la scelta più popolare perché può ridurre bias e varianza.
Come funziona il potenziamento
Vediamo come funziona il potenziamento. In sostanza, il potenziamento consiste nell'addestrare ogni nuovo modello sui punti dati che i modelli precedenti hanno sbagliato. Ci sono tre parti:
- Ponderazione dei dati di addestramento in base agli errori
- Addestramento di un nuovo modello su questo set di dati sugli errori ponderati
- Aggiunta del nuovo modello all'ensemble
Per cominciare, supponiamo di aver addestrato il modello iniziale (un insieme di uno).
Ponderazione dei dati di addestramento in base agli errori
Eseguiamo i dati di addestramento attraverso l'insieme esistente e notiamo per quali input l'insieme ha fornito previsioni errate. Quindi creiamo una versione modificata del set di dati di addestramento in cui gli input problematici sono più rappresentati o più importanti.
Formazione del nuovo modello
Utilizziamo il set di dati modificato che abbiamo creato per addestrare un nuovo modello, che è dello stesso tipo degli altri modelli nell'insieme. Tuttavia, questo nuovo modello si concentra maggiormente sugli esempi concreti tratti dai dati di addestramento, quindi probabilmente avrà prestazioni migliori su di essi. Questo miglioramento delle prestazioni in termini di errori è una parte importante della riduzione delle distorsioni.
Incorporando il nuovo modello
Il modello appena addestrato viene aggiunto all'insieme e le sue previsioni vengono ponderate in base alla loro accuratezza. In parallelo, il nuovo input viene passato a ciascun modello dell'ensemble e gli output finali di ciascun modello vengono ponderati per ottenere l'output dell'ensemble.
Per i compiti di classificazione (di solito scegliendo tra due etichette nei problemi di potenziamento), la classe con la somma più alta di voti ponderati viene scelta come previsione dell'insieme.
Per le attività di regressione, la previsione dell'insieme è la media ponderata della previsione di ciascun modello.
A questo punto, il processo può ripetersi se il bias è ancora troppo elevato.
Tipi di algoritmi di potenziamento
Esistono diverse varianti degli algoritmi di potenziamento, con alcune notevoli differenze tra loro. I più popolari sono il potenziamento adattivo (AdaBoost), il potenziamento del gradiente, il potenziamento del gradiente estremo (XGBoost) e il potenziamento del gatto. Tratteremo ciascuno di essi a turno.
AdaBoost
AdaBoost è molto simile all'algoritmo di potenziamento che abbiamo presentato in precedenza: i dati di addestramento che pongono problemi per gli insiemi precedenti vengono ponderati maggiormente durante l'addestramento del modello successivo. AdaBoost è stato uno degli algoritmi di potenziamento originali ed è noto per la sua semplicità.
AdaBoost è meno incline al sovradattamento rispetto ad altri algoritmi di potenziamento poiché i nuovi modelli vedono diverse variazioni (con i punti dati concreti che sono più comuni) del set di dati di addestramento. Ma, rispetto ad altre tecniche di potenziamento, è più sensibile ai dati anomali e non riduce così tanto i bias.
Aumento del gradiente
L'incremento del gradiente è un approccio unico all'incremento. A differenza del potenziamento adattivo, i nuovi modelli non ricevono una versione ponderata per gli errori del set di dati di addestramento. Ottengono il set di dati originale. Tuttavia, invece di provare a prevedere gli output per gli input nel set di dati, provano a prevedere il gradiente negativo dell’insieme precedente su ciascun input.
Il gradiente negativo è essenzialmente la direzione in cui i pesi e le previsioni del modello dell'insieme dovrebbero muoversi per ridurre l'errore, per avvicinarsi alla risposta giusta. I gradienti negativi vengono aggiunti (con un fattore di ponderazione applicato) alla previsione di output dell'insieme precedente per avvicinarla alla correttezza.
Il potenziamento del gradiente è molto più performante di AdaBoosting, soprattutto su dati complessi. Ci sono anche più iperparametri da ottimizzare, il che offre alle persone un maggiore controllo ma aumenta anche la necessità di sperimentazione.
XGBoost
XGBoost (o potenziamento del gradiente estremo) è una versione altamente ottimizzata del potenziamento del gradiente. XGBoost rende l'addestramento e l'inferenza con potenziamento del gradiente molto più paralleli. XGBoost aggiunge anche la regolarizzazione (ovvero penalità per la complessità) per prevenire l'overfitting e gestisce molto meglio i dati mancanti. Infine, XGBoost è molto più scalabile per set di dati o carichi di lavoro di grandi dimensioni.
XGBoost è ancora più performante del gradient boosting ed è stato uno degli algoritmi ML più popolari negli anni 2010. Ma è anche più difficile da interpretare e molto più costoso dal punto di vista computazionale da gestire.
CatBoost
CatBoost è una forma di potenziamento del gradiente progettata per funzionare su dati categorici. I dati categorici sono dati in cui i valori possono trovarsi in pochi gruppi limitati. Ecco alcuni esempi:
- Sì-no dati (ad esempio, la casa ha un garage?)
- Categorie di colore (ad esempio, rosso, blu, verde)
- Categorie di prodotto (ad es. elettronica, abbigliamento, mobili)
I modelli di potenziamento del gradiente generalmente non funzionano bene con i dati categorici, mentre CatBoost sì. CatBoost può anche gestire dati continui, rendendolo un'altra scelta di potenziamento popolare. Come con altri modelli di potenziamento del gradiente, CatBoost soffre di complessità computazionale e overfitting.
Applicazioni del potenziamento
Il potenziamento può essere applicato a quasi tutti i problemi di ML poiché gli errori e i bias sono spesso più elevati di quanto vorremmo. La classificazione e la regressione sono due delle grandi suddivisioni del ML e il potenziamento si applica a entrambi. Le raccomandazioni sui contenuti e il rilevamento delle frodi sono due esempi di problemi di ML che le aziende devono affrontare e per i quali anche il potenziamento può essere d'aiuto.
Classificazione e regressione
La classificazione e la regressione sono due delle attività principali del machine learning. Un utente potrebbe voler prevedere se un'immagine contiene un cane o un gatto (classificazione) oppure potrebbe voler prevedere il prezzo di vendita di una casa (regressione). Il potenziamento funziona bene per entrambi i compiti, soprattutto quando i modelli sottostanti sono deboli o non complessi.
Consigli sui contenuti
Il potenziamento migliora i consigli sui contenuti (ad esempio, i film suggeriti da Netflix) migliorando in modo iterativo la precisione della previsione per le preferenze dell'utente. Quando un modello di raccomandazione non riesce a catturare determinati modelli di visualizzazione (come le preferenze stagionali o le scelte dipendenti dal contesto), il potenziamento crea modelli aggiuntivi che si concentrano specificamente su questi modelli mancati. Ogni nuovo modello nella sequenza attribuisce un peso maggiore alle preferenze degli utenti precedentemente scarsamente previste, con conseguente riduzione degli errori.
Rilevamento delle frodi
Nel rilevamento delle frodi, un caso d'uso comune per le società finanziarie, il potenziamento eccelle imparando progressivamente da transazioni classificate erroneamente. Se i modelli iniziali non rilevano modelli di frode sofisticati, i modelli più recenti mirano specificamente a questi casi problematici. La tecnica si adatta particolarmente bene alle mutevoli tattiche di frode attribuendo pesi maggiori alle recenti classificazioni errate, consentendo al sistema di mantenere elevati tassi di rilevamento.
Vantaggi del potenziamento
Il potenziamento è eccellente per ridurre la distorsione del modello e, in misura minore, la varianza. Rispetto ad altre tecniche di ensemble, richiede meno dati e offre alle persone un maggiore controllo sull’overfitting.
Distorsione e varianza ridotte
Un bias elevato significa che i modelli sono spesso sbagliati. Il boosting è un'ottima tecnica per ridurre la distorsione nei modelli. Poiché ciascun modello si concentra sulla correzione degli errori dei modelli precedenti, l’insieme nel suo insieme riduce il proprio tasso di errore.
La varianza ridotta ha anche un effetto collaterale: i modelli più recenti possono avere diversi mix di dati di addestramento, consentendo agli errori nei diversi modelli di annullarsi a vicenda.
Ha bisogno di meno dati
A differenza di altre tecniche di ensemble, il potenziamento non necessita di un enorme set di dati per funzionare bene. Poiché ogni nuovo modello si concentra principalmente sugli errori di quelli precedenti, ha un obiettivo ristretto e non necessita di grandi quantità di dati. Il nuovo modello può utilizzare i dati di training esistenti ed eseguire ripetutamente il training sugli errori.
Maggiore controllo sul sovradattamento
Il potenziamento ha alcuni iperparametri che controllano il contributo di ogni nuovo modello alla previsione dell'insieme. Modificando questi iperparametri, gli utenti possono ridurre l’influenza dei nuovi modelli. Ciò aumenterebbe la distorsione ma potenzialmente ridurrebbe la varianza, dando agli utenti il controllo su dove vogliono arrivare nel compromesso bias-varianza.
Sfide e limiti del potenziamento
Il potenziamento ha però i suoi avvertimenti. Richiede più tempo per l'addestramento e l'utilizzo, è sensibile ai dati anomali e richiede una maggiore ottimizzazione degli iperparametri.
Tempo di allenamento più lungo
Nel potenziamento, ogni nuovo modello dipende dagli errori dell'insieme precedente. Ciò significa che i modelli devono essere addestrati uno alla volta, il che comporta tempi di addestramento lunghi. Un altro svantaggio è che l'addestramento sequenziale significa che potresti non sapere se il potenziamento sarà efficace finché non avrai addestrato una dozzina di modelli.
Sensibilità anomala
Nel potenziamento, i modelli più recenti si concentrano esclusivamente sugli errori dei modelli precedenti. Alcuni dati anomali nel set di addestramento che dovrebbero essere ignorati potrebbero invece diventare l'unico obiettivo dei modelli successivi. Ciò può peggiorare le prestazioni complessive dell'ensemble e far perdere tempo all'addestramento. Potrebbe essere necessaria un’attenta elaborazione dei dati per contrastare gli effetti dei valori anomali.
Maggiore ottimizzazione degli iperparametri
Il vantaggio di offrire agli utenti un maggiore controllo sull’overfitting significa anche che gli utenti devono ottimizzare più iperparametri per trovare un buon equilibrio tra bias e varianza. Spesso sono necessari più esperimenti di potenziamento, il che rende l'addestramento sequenziale ancora più noioso. Il potenziamento richiede molte risorse computazionali.