mozzicone Che cos'è il potenziamento del gradiente? - Unite.AI
Seguici sui social
Corso di perfezionamento sull'intelligenza artificiale:

AI 101

Che cos'è il potenziamento del gradiente?

mm
aggiornato on

Un tipo comune di modello di apprendimento automatico che è riuscito a essere estremamente utile nelle competizioni di scienza dei dati è un modello di potenziamento del gradiente. Aumento del gradiente è fondamentalmente il processo di conversione di modelli di apprendimento deboli in modelli di apprendimento forti. Ma come si ottiene esattamente questo? Diamo un'occhiata più da vicino agli algoritmi di aumento del gradiente e meglio capire come funziona un modello di potenziamento del gradiente trasforma gli studenti deboli in studenti forti.

Definizione del potenziamento del gradiente

Questo articolo ha lo scopo di darti una buona intuizione di cosa sia il gradient boosting, senza molte analisi matematiche che sono alla base degli algoritmi. Una volta che hai compreso come funziona il potenziamento del gradiente ad alto livello, sei incoraggiato ad approfondire ed esplorare la matematica che lo rende possibile.

Iniziamo definendo cosa significa "potenziare" uno studente. Gli studenti deboli vengono convertiti in studenti forti regolando le proprietà del modello di apprendimento. Esattamente quale algoritmo di apprendimento viene potenziato?

I modelli di potenziamento funzionano potenziando un altro modello di apprendimento automatico comune, un albero decisionale

A albero decisionale funzioni del modello suddividendo un set di dati in porzioni sempre più piccole e, una volta che i sottoinsiemi non possono essere ulteriormente suddivisi, il risultato è un albero con nodi e foglie. I nodi in un albero decisionale sono i luoghi in cui vengono prese le decisioni sui punti dati utilizzando diversi criteri di filtraggio. Le foglie in un albero decisionale rappresentano i punti dati che sono stati classificati. Gli algoritmi dell'albero decisionale possono gestire sia dati numerici che categorici e le suddivisioni nell'albero si basano su variabili/caratteristiche specifiche.

Illustrazione del modo in cui vengono addestrati i modelli di potenziamento.
Foto: SeattleDataBuy tramite Wikimedia Commons, CC 4.0 (https://commons.wikimedia.org/wiki/File:Boosting.png)

Un tipo di algoritmo di potenziamento è il Algoritmo AdaBoost. Gli algoritmi AdaBoost iniziano addestrando un modello di albero decisionale e assegnando un peso uguale a ogni osservazione. Dopo che il primo albero è stato valutato per l'accuratezza, i pesi per le diverse osservazioni vengono aggiustati. Le osservazioni che erano facili da classificare hanno il loro peso abbassato, mentre le osservazioni che erano difficili da classificare hanno il loro peso aumentato. Viene creato un secondo albero utilizzando questi pesi regolati, con l'obiettivo che le previsioni del secondo albero siano più accurate delle previsioni del primo albero.

Il modello è ora costituito dalle previsioni per l'albero originale e il nuovo albero (o Albero 1 + Albero 2). L'accuratezza della classificazione viene valutata ancora una volta sulla base del nuovo modello. Viene creato un terzo albero in base all'errore calcolato per il modello e i pesi vengono regolati ancora una volta. Questo processo continua per un determinato numero di iterazioni e il modello finale è un modello di ensemble che utilizza la somma pesata delle previsioni fatte da tutti gli alberi costruiti in precedenza.

Il processo sopra descritto utilizza alberi decisionali e predittori/modelli di base, tuttavia è possibile eseguire un approccio di potenziamento con un'ampia gamma di modelli come i numerosi modelli di classificatore e regressore standard. I concetti chiave da comprendere sono che i predittori successivi apprendono dagli errori commessi da quelli precedenti e che i predittori vengono creati in sequenza.

Il vantaggio principale del potenziamento degli algoritmi è che impiegano meno tempo per trovare le previsioni correnti rispetto ad altri modelli di machine learning. Tuttavia, è necessario prestare attenzione quando si utilizzano algoritmi di potenziamento, poiché sono soggetti a overfitting.

Aumento graduale

Ora esamineremo uno degli algoritmi di potenziamento più comuni. I Gradient Boosting Models (GBM) sono noti per la loro elevata precisione e aumentano i principi generali utilizzati in AdaBoost.

La differenza principale tra un Gradient Boosting Model e AdaBoost è che i GBM utilizzano un metodo diverso per calcolare quali studenti stanno identificando erroneamente i punti dati. AdaBoost calcola dove un modello è sottoperformante esaminando i punti dati che sono fortemente ponderati. Nel frattempo, i GBM utilizzano i gradienti per determinare l'accuratezza degli studenti, applicando una funzione di perdita a un modello. Le funzioni di perdita sono un modo per misurare l'accuratezza dell'adattamento di un modello al set di dati, calcolando un errore e ottimizzando il modello per ridurre tale errore. I GBM consentono all'utente di ottimizzare una funzione di perdita specificata in base all'obiettivo desiderato.

Prendendo la funzione di perdita più comune - Errore quadratico medio (MSE) - come esempio, discesa gradiente viene utilizzato per aggiornare le previsioni in base a un tasso di apprendimento predefinito, con l'obiettivo di trovare i valori in cui la perdita è minima.

Per renderlo più chiaro:

Nuove previsioni del modello = variabili di output – vecchie previsioni imperfette.

In un senso più statistico, i GBM mirano a trovare modelli rilevanti nei residui di un modello, adattando il modello per adattarlo al modello e portando i residui il più vicino possibile allo zero. Se dovessi eseguire una regressione sulle previsioni del modello, i residui sarebbero distribuiti intorno a 0 (adattamento perfetto) e i GBM stanno trovando schemi all'interno dei residui e aggiornando il modello attorno a questi schemi.

In altre parole, le previsioni vengono aggiornate in modo che la somma di tutti i residui sia il più vicino possibile a 0, il che significa che i valori previsti saranno molto vicini ai valori effettivi.

Si noti che un'ampia varietà di altre funzioni di perdita (come la perdita logaritmica) può essere utilizzata da un GBM. MSE è stato selezionato sopra per semplicità.

Variazioni sui modelli di potenziamento del gradiente

I modelli Gradient Boosting sono algoritmi avidi che sono inclini all'overfitting su un set di dati. Questo può essere evitato con diversi metodi che possono migliorare le prestazioni di un GBM.

I GBM possono essere regolati con quattro diversi metodi: Shrinkage, Tree Constraints, Stochastic Gradient Boosting e Penalized Learning.

restringimento

Come accennato in precedenza, nei GBM le previsioni vengono sommate insieme in modo sequenziale. In "Ritiro", vengono regolate le aggiunte di ogni albero alla somma complessiva. Vengono applicati pesi che rallentano la velocità di apprendimento dell'algoritmo, richiedendo l'aggiunta di più alberi al modello, il che in genere migliora la robustezza e le prestazioni del modello. Il compromesso è che il modello impiega più tempo per l'addestramento.

Vincoli dell'albero

Vincolare l'albero con varie modifiche come aggiungere più profondità all'albero o aumentare il numero di nodi o foglie nell'albero può rendere più difficile l'overfitting del modello. L'imposizione di un vincolo sul numero minimo di osservazioni per suddivisione ha un effetto simile. Ancora una volta, il compromesso è che il modello impiegherà più tempo per l'addestramento.

Campionamento Casuale

I singoli studenti possono essere creati attraverso un processo stocastico, basato su sottocampioni selezionati casualmente del set di dati di addestramento. Ciò ha l'effetto di ridurre le correlazioni tra gli alberi, il che protegge dall'overfitting. Il set di dati può essere sottoposto a sottostamping prima di creare gli alberi o prima di considerare una suddivisione nell'albero.

Apprendimento penalizzato

Oltre a vincolare il modello limitando la struttura dell'albero, è possibile utilizzare un albero di regressione. Gli alberi di regressione hanno valori numerici associati a ciascuna delle foglie e questi funzionano come pesi e possono essere regolati con funzioni di regolarizzazione comuni come la regolarizzazione L1 e L2.

Blogger e programmatore con specialità in machine Learning ed Deep Learning temi. Daniel spera di aiutare gli altri a usare il potere dell'intelligenza artificiale per il bene sociale.