È necessario ridimensionare il valore target oltre alle funzionalità di ridimensionamento per l'analisi di regressione?


52

Sto costruendo modelli di regressione. Come fase di preelaborazione, ridimensiono i valori della mia funzione in modo che abbiano media 0 e deviazione standard 1. È necessario normalizzare anche i valori target?

Risposte:


50

Analizziamo innanzitutto perché viene eseguito il ridimensionamento delle funzionalità. Il ridimensionamento delle caratteristiche migliora la convergenza degli algoritmi di discesa più ripidi, che non possiedono la proprietà dell'invarianza della scala.

In esempi di allenamento con discesa gradiente stocastica informa gli aggiornamenti di peso in modo iterativo in questo modo,

wt+1=wtγw(fw(x),y)

Dove sono i pesi, è una dimensione progressiva, è la pendenza dei pesi , è una funzione di perdita, è la funzione parametrizzata da , è un esempio di addestramento e è la risposta / etichetta.wγwfwwxy

Confronta le seguenti funzioni convesse, che rappresentano il ridimensionamento corretto e il ridimensionamento improprio.

Ridimensionamento delle funzionalità

Un passaggio attraverso un aggiornamento di peso di size produrrà una riduzione molto migliore dell'errore nel caso correttamente ridimensionato rispetto al caso non correttamente ridimensionato. Di seguito è la direzione di di lunghezza .γw(fw(x),y)γ

Aggiornamento gradiente

La normalizzazione dell'output non influirà sulla forma di , quindi generalmente non è necessaria.f

L'unica situazione che posso immaginare per ridimensionare gli output ha un impatto, è se la tua variabile di risposta è molto grande e / o stai usando variabili f32 (che è comune con l'algebra lineare GPU). In questo caso è possibile ottenere un overflow in virgola mobile di un elemento dei pesi. Il sintomo è un valore Inf o si avvolgerà sull'altra rappresentazione estrema.


Ma se non ridimensioniamo gli input e applichiamo la Gradient Descent, per risolvere per theta in qualcosa come y = theta0 + theta1 * x1 + theta2 * x2, se stiamo aggiornando i valori di X1 e X2 (ridimensionandoli) mantenendo Y (output previsto) lo stesso, le previsioni risultanti per theta1, theta2 saranno errate quando le applicheremo all'equazione originale?
Prashant,

14

In generale, non è necessario. Gli input di ridimensionamento aiutano a evitare la situazione, quando una o più funzionalità dominano le altre in grandezza, di conseguenza, il modello difficilmente rileva il contributo delle variabili di scala più piccole, anche se sono forti. Ma se ridimensionate il target, l'errore quadratico medio viene ridimensionato automaticamente. MSE> 1 significa automaticamente che stai facendo peggio di una previsione costante (ingenua).


7

No, le trasformazioni lineari della risposta non sono mai necessarie. Tuttavia, possono essere utili per facilitare l'interpretazione del modello. Ad esempio, se la risposta viene fornita in metri ma in genere è molto piccola, può essere utile ridimensionare, ad esempio, millimetri. Nota anche che centrare e / o ridimensionare gli input può essere utile per lo stesso motivo. Ad esempio, è possibile interpretare approssimativamente un coefficiente come l'effetto sulla risposta per unità cambia nel predittore quando tutti gli altri predittori sono impostati su 0 . Ma 0 spesso non sarà un valore valido o interessante per quelle variabili. La centratura degli input consente di interpretare il coefficiente come effetto per variazione di unità quando gli altri predittori assumono i loro valori medi.

Altre trasformazioni (ad es. Log o radice quadrata) possono essere utili se la risposta non è lineare nei predittori sulla scala originale. In questo caso, puoi leggere i modelli lineari generalizzati per vedere se sono adatti a te.


1

Essa non pregiudica discesa del gradiente in un cattivo modo. controlla la formula per la discesa del gradiente:

xn+1=xnγΔF(xn)

supponiamo che sia una funzionalità 1000 volte maggiore dix2x1

per abbiamo . Il modo ottimale per raggiungere (0,0) che è l'ottimale globale è spostarsi attraverso la diagonale ma se una delle caratteristiche domina l'altra in termini di scala che non accadrà.F(x)=x2ΔF(x)=2x

Per illustrare: se si esegue la trasformazione , assumere un tasso di apprendimento uniforme per entrambe le coordinate e calcolare il gradiente quindiLa forma funzionale è la stessa, ma la velocità di apprendimento per la seconda coordinata deve essere regolata a 1/1000 di quella affinché la prima coordinata corrisponda. In caso contrario le coordinate due domineranno e il vettore punterà maggiormente verso quella direzione.z=(x1,1000x1)γ

zn+1=znγΔF(z1,z2).
Δ

Di conseguenza sollecita il delta a puntare solo in quella direzione e rallenta la convergenza.


0

, è necessario ridimensionare la variabile di destinazione. Citerò questo riferimento :

Una variabile target con una vasta gamma di valori, a sua volta, può comportare valori di gradiente di errore di grandi dimensioni che causano cambiamenti drammatici dei valori di peso, rendendo instabile il processo di apprendimento.

Nel riferimento, c'è anche una dimostrazione del codice in cui i pesi del modello sono esplosi durante l'allenamento a causa degli errori molto grandi e, a loro volta, sono esplosi anche i gradienti di errore calcolati per gli aggiornamenti di peso. In breve, se non ridimensionate i dati e avete valori molto grandi, assicuratevi di utilizzare valori di velocità di apprendimento molto piccoli. Questo è stato menzionato anche da @drSpacy.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.