Boosting del gradiente (unità facoltativa)

Nei problemi di regressione, ha senso definire l'errore firmato come la differenza tra la previsione e l'etichetta. Tuttavia, in altri tipi di problemi, questa strategia spesso porta a risultati scadenti. Una strategia migliore utilizzata per il boosting del gradiente è:

  • Definire una funzione di perdita simile alle funzioni di perdita utilizzate nelle reti neurali. Ad esempio, l'entropia (nota anche come perdita di log) per un problema di classificazione.
  • Addestra il modello debole per prevedere il gradiente della perdita in base all'output del modello efficace.

Formalmente, data una funzione di perdita $L(y,p)$ dove $y$ è un'etichetta e $p$ una previsione, la pseudo risposta $z_i$ utilizzata per addestrare il modello debole al passaggio $i$ è:

$$ z_i = \frac {\partial L(y, F_i)} {\partial F_i} $$

dove:

  • $F_i$ è la previsione del modello forte.

L'esempio precedente era un problema di regressione: l'obiettivo è prevedere un valore numerico. Nel caso della regressione, l'errore quadrato è una funzione di perdita comune:

$$ L(y,p) = (y - p)^2 $$

In questo caso, il gradiente è:

$$ z = \frac {\partial L(y, F_i)} {\partial F_i} = \frac {\partial(y-p)^2} {\partial p} = 2(y - p) = 2 \ \text{signed error} $$

Nell'ordine di parole, il gradiente è l'errore firmato del nostro esempio con fattore 2. Tieni presente che a causa del restringimento non sono importanti i fattori costanti. Tieni presente che questa equivalenza è vera solo per problemi di regressione con perdita di errori quadrati. Per altri problemi di apprendimento supervisionato (ad esempio classificazione, ranking, regressione con perdita percentile), non esiste equivalenza tra il gradiente e un errore firmato.

Ottimizzazione di foglia e struttura con il passaggio del metodo di Newton

Il metodo di Newton è un metodo di ottimizzazione come la discesa del gradiente. Tuttavia, a differenza della discesa del gradiente che utilizza solo il gradiente della funzione per l'ottimizzazione, il metodo di Newton utilizza sia il gradiente (derivata prima) sia la seconda derivata della funzione per l'ottimizzazione.

Un passaggio di discesa del gradiente è il seguente:

$$ x_{i+1} = x_i - \frac {df}{dx}(x_i) = x_i - f'(x_i) $$

e il metodo di Newton come segue:

$$ x_{i+1} = x_i - \frac {\frac {df}{dx} (x_i)} {\frac {d^2f}{d^2x} (x_i)} = x_i - \frac{f'(x_i)}{f''(x_i)}$$

Facoltativamente, il metodo di Newton può essere integrato nell'addestramento degli alberi con gradiente in due modi:

  1. Dopo aver addestrato un albero, viene applicato un passaggio di Newton su ogni foglia e ne esegue l'override. La struttura ad albero è intatta; cambiano solo i valori delle foglie.
  2. Durante la crescita di un albero, le condizioni vengono selezionate in base a un punteggio che include un componente della formula di Newton. La struttura dell'albero è interessata.
Codice YDF
In YDF:
  • YDF applica sempre un passo di Newton sulla foglia (opzione 1).
  • Puoi attivare l'opzione 2 con use_hessian_gain=True.