Come e perché funzionano la normalizzazione e il ridimensionamento delle funzionalità?


61

Vedo che molti algoritmi di machine learning funzionano meglio con la cancellazione media e l'equalizzazione della covarianza. Ad esempio, le reti neurali tendono a convergere più velocemente e K-Means generalmente fornisce un clustering migliore con funzionalità pre-elaborate. Non vedo l'intuizione dietro questi passaggi di pre-elaborazione che portano a prestazioni migliori. Qualcuno può spiegarlo?

Risposte:


25

È semplicemente il caso di ottenere tutti i tuoi dati sulla stessa scala: se le scale per funzionalità diverse sono enormemente diverse, questo può avere un effetto a catena sulla tua capacità di apprendimento (a seconda dei metodi che stai usando per farlo) . Garantire che i valori standardizzati delle funzioni ponderino implicitamente tutte le funzionalità nella loro rappresentazione.


3
cosa intendi con "questo può avere un effetto a catena sulla tua capacità di apprendimento", forse potresti ampliarlo?
Charlie Parker,

14
Questa non è davvero una buona spiegazione. Per raggiungere la vera comprensione è necessario andare almeno a un livello più profondo nella spiegazione.
Zelphir Kaltstahl,

ho bisogno di qualsiasi riferimento alla mia tesi per favore
x-rw

40

È vero che la preelaborazione dell'apprendimento automatico è in qualche modo un'arte molto nera. Non è molto scritto nei documenti perché diversi passaggi di preelaborazione sono essenziali per farlo funzionare. Inoltre, non sono sicuro che sia compreso in ogni caso. Per rendere le cose più complicate, dipende fortemente dal metodo utilizzato e anche dal dominio del problema.

Alcuni metodi, ad esempio, sono invarianti per la trasformazione affine. Se hai una rete neurale e applichi semplicemente una trasformazione affine ai tuoi dati, la rete non perde o guadagna nulla in teoria. In pratica, tuttavia, una rete neurale funziona meglio se gli ingressi sono centrati e bianchi. Ciò significa che la loro covarianza è diagonale e la media è il vettore zero. Perché migliora le cose? È solo perché l'ottimizzazione della rete neurale funziona in modo più grazioso, poiché le funzioni di attivazione nascoste non si saturano così velocemente e quindi non ti danno quasi zero gradienti all'inizio dell'apprendimento.

Altri metodi, ad esempio K-Means, potrebbero offrire soluzioni totalmente diverse a seconda della preelaborazione. Questo perché una trasformazione affine implica un cambiamento nello spazio metrico: la distanza euclidea tra due campioni sarà diversa dopo quella trasformazione.

Alla fine, vuoi capire cosa stai facendo ai dati. Ad esempio lo sbiancamento nella visione artificiale e la saggia normalizzazione del campione è qualcosa che fa anche il cervello umano nella sua pipeline di visione.


17

Alcune idee, riferimenti e grafici sul perché la normalizzazione dell'input può essere utile per ANN e k-significa:

K-significa :

Il clustering di K significa "isotropico" in tutte le direzioni dello spazio e quindi tende a produrre cluster più o meno rotondi (piuttosto che allungati). In questa situazione, lasciare le varianze disuguali equivale a dare più peso alle variabili con varianza minore.

Esempio in Matlab:

X = [randn(100,2)+ones(100,2);...
     randn(100,2)-ones(100,2)];

% Introduce denormalization
% X(:, 2) = X(:, 2) * 1000 + 500;

opts = statset('Display','final');

[idx,ctrs] = kmeans(X,2,...
                    'Distance','city',...
                    'Replicates',5,...
                    'Options',opts);

plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(ctrs(:,1),ctrs(:,2),'kx',...
     'MarkerSize',12,'LineWidth',2)
plot(ctrs(:,1),ctrs(:,2),'ko',...
     'MarkerSize',12,'LineWidth',2)
legend('Cluster 1','Cluster 2','Centroids',...
       'Location','NW')
title('K-means with normalization')

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

(FYI: Come posso rilevare se il mio set di dati è raggruppato o non cluster (cioè formando un singolo cluster )

Clustering distribuito :

L'analisi comparativa mostra che i risultati del clustering distribuito dipendono dal tipo di procedura di normalizzazione.

Rete neurale artificiale (ingressi) :

Se le variabili di input sono combinate linearmente, come in un MLP, raramente è strettamente necessario standardizzare gli input, almeno in teoria. Il motivo è che qualsiasi ridimensionamento di un vettore di input può essere annullato efficacemente modificando i pesi e le inclinazioni corrispondenti, lasciandoti con gli stessi identici output di prima. Tuttavia, ci sono una serie di ragioni pratiche per cui la standardizzazione degli input può rendere più veloce l'allenamento e ridurre le possibilità di rimanere bloccati negli optima locali. Inoltre, la riduzione del peso e la stima bayesiana possono essere eseguite in modo più conveniente con input standardizzati.

Rete neurale artificiale (ingressi / uscite)

Dovresti fare una di queste cose ai tuoi dati? La risposta è, dipende.

La standardizzazione delle variabili di input o target tende a migliorare il comportamento del processo di formazione migliorando la condizione numerica (vedi ftp://ftp.sas.com/pub/neural/illcond/illcond.html ) del problema di ottimizzazione e assicurando che vari valori predefiniti i valori coinvolti nell'inizializzazione e nella terminazione sono appropriati. La standardizzazione degli obiettivi può anche influire sulla funzione obiettivo.

La standardizzazione dei casi dovrebbe essere affrontata con cautela perché scarta le informazioni. Se tali informazioni sono irrilevanti, la standardizzazione dei casi può essere molto utile. Se tali informazioni sono importanti, la standardizzazione dei casi può essere disastrosa.


È interessante notare che la modifica delle unità di misura può persino portare a vedere una struttura di cluster molto diversa: Kaufman, Leonard e Peter J. Rousseeuw .. "Trovare gruppi nei dati: un'introduzione all'analisi dei cluster". (2005).

In alcune applicazioni, la modifica delle unità di misura può persino portare a vedere una struttura di clustering molto diversa. Ad esempio, l'età (in anni) e l'altezza (in centimetri) di quattro persone immaginarie sono riportate nella Tabella 3 e riportate nella Figura 3. Sembra che {A, B) e {C, 0) siano due cluster ben separati . D'altra parte, quando l'altezza è espressa in piedi si ottiene la Tabella 4 e la Figura 4, dove i cluster evidenti sono ora {A, C} e {B, D}. Questa partizione è completamente diversa dalla prima perché ogni soggetto ha ricevuto un altro compagno. (La figura 4 sarebbe stata appiattita ancora di più se l'età fosse stata misurata in giorni).

Per evitare questa dipendenza dalla scelta delle unità di misura, si ha la possibilità di standardizzare i dati. Questo converte le misure originali in variabili senza unità.

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Kaufman et al. continua con alcune considerazioni interessanti (pagina 11):

Da un punto di vista filosofico, la standardizzazione non risolve davvero il problema. In effetti, la scelta delle unità di misura genera pesi relativi delle variabili. Esprimere una variabile in unità più piccole porterà a un intervallo più ampio per quella variabile, che avrà quindi un grande effetto sulla struttura risultante. D'altra parte, standardizzando si tenta di dare a tutte le variabili un peso uguale, nella speranza di raggiungere l'obiettività. Come tale, può essere utilizzato da un professionista che non possiede alcuna conoscenza precedente. Tuttavia, può darsi che alcune variabili siano intrinsecamente più importanti di altre in una particolare applicazione, e quindi l'assegnazione dei pesi dovrebbe essere basata sulla conoscenza della materia (vedi, ad esempio, Abrahamowicz, 1985). D'altro canto, ci sono stati tentativi di escogitare tecniche di clustering indipendenti dalla scala delle variabili (Friedman e Rubin, 1967). La proposta di Hardy e Rasson (1982) è quella di cercare una partizione che minimizzi il volume totale degli scafi convessi dei cluster. In linea di principio, tale metodo è invariante rispetto alle trasformazioni lineari dei dati, ma sfortunatamente non esiste alcun algoritmo per la sua implementazione (tranne un'approssimazione limitata a due dimensioni). Pertanto, il dilemma della standardizzazione appare attualmente inevitabile e i programmi descritti in questo libro lasciano la scelta all'utente. La proposta di Hardy e Rasson (1982) è quella di cercare una partizione che minimizzi il volume totale degli scafi convessi dei cluster. In linea di principio, tale metodo è invariante rispetto alle trasformazioni lineari dei dati, ma sfortunatamente non esiste alcun algoritmo per la sua implementazione (tranne un'approssimazione limitata a due dimensioni). Pertanto, il dilemma della standardizzazione appare attualmente inevitabile e i programmi descritti in questo libro lasciano la scelta all'utente. La proposta di Hardy e Rasson (1982) è quella di cercare una partizione che minimizzi il volume totale degli scafi convessi dei cluster. In linea di principio, tale metodo è invariante rispetto alle trasformazioni lineari dei dati, ma sfortunatamente non esiste alcun algoritmo per la sua implementazione (tranne un'approssimazione limitata a due dimensioni). Pertanto, il dilemma della standardizzazione appare attualmente inevitabile e i programmi descritti in questo libro lasciano la scelta all'utente.


6

Perché il ridimensionamento delle funzioni funziona? Posso farti un esempio (da Quora )

30000-


4
Se stai citando un post di Quora, devi davvero collegarti alla fonte.
Matthew Drury,

5

Esistono due problemi separati:

a) apprendere la giusta funzione, ad es. k-significa: la scala di input specifica sostanzialmente la somiglianza, quindi i cluster trovati dipendono dal ridimensionamento. regolarizzazione - ad es. regolarizzazione dei pesi l2 - supponi che ogni peso debba essere "ugualmente piccolo" - se i tuoi dati non vengono ridimensionati "in modo appropriato", non sarà così

b) ottimizzazione, in particolare mediante discesa gradiente (ad esempio la maggior parte delle reti neurali). Per la discesa gradiente, devi scegliere il tasso di apprendimento ... ma un buon tasso di apprendimento (almeno sul 1 ° livello nascosto) dipende dal ridimensionamento dell'input: piccoli input [rilevanti] in genere richiedono pesi più grandi, quindi desideri un apprendimento più grande tasso per quel peso (per arrivarci più velocemente) e vv per input di grandi dimensioni ... poiché si desidera utilizzare solo un singolo tasso di apprendimento, si ridimensionano gli input. (e lo sbiancamento, ad esempio la decorazione è anche importante per lo stesso motivo)



1

Questo documento parla solo di k-mean, ma spiega e dimostra abbastanza bene il requisito della pre-elaborazione dei dati.

La standardizzazione è la fase di preelaborazione centrale nel data mining, per standardizzare i valori di caratteristiche o attributi da diversi intervalli dinamici in un intervallo specifico. In questo articolo, abbiamo analizzato le prestazioni dei tre metodi di standardizzazione sull'algoritmo K-medie convenzionale. Confrontando i risultati sui set di dati relativi alle malattie infettive, è stato riscontrato che il risultato ottenuto con il metodo di standardizzazione z-score è più efficace ed efficiente dei metodi di standardizzazione min-max e decimale.

.

... se ci sono alcune caratteristiche, con una grande dimensione o una grande variabilità, questo tipo di caratteristiche influenzerà fortemente il risultato del clustering. In questo caso, la standardizzazione dei dati sarebbe un importante compito di preelaborazione per ridimensionare o controllare la variabilità dei set di dati.

.

... le caratteristiche devono essere senza dimensioni poiché i valori numerici degli intervalli di caratteristiche dimensionali si basano sulle unità di misura e, quindi, una selezione delle unità di misura può alterare in modo significativo i risultati del clustering. Pertanto, non si dovrebbero usare misure di distanza come la distanza euclidea senza avere la normalizzazione dei set di dati

Fonte: http://maxwellsci.com/print/rjaset/v6-3299-3303.pdf


1

La pre-elaborazione spesso funziona perché rimuove le funzionalità dei dati che non sono correlate al problema di classificazione che si sta tentando di risolvere. Pensa, ad esempio, alla classificazione dei dati audio da altoparlanti diversi. Le fluttuazioni del volume (ampiezza) potrebbero essere irrilevanti, mentre lo spettro delle frequenze è l'aspetto veramente rilevante. Quindi, in questo caso, normalizzare l'ampiezza sarà davvero utile per la maggior parte degli algoritmi ML, poiché rimuove un aspetto dei dati che è irrilevante e causerebbe una rete neurale sovrautilizzata a schemi spuri.


1

Penso che ciò avvenga semplicemente in modo tale che la funzione con un valore maggiore non offuschi gli effetti della funzione con un valore inferiore quando si apprende un classificatore. Ciò diventa particolarmente importante se la funzione con valori più piccoli contribuisce effettivamente alla separabilità della classe. I classificatori come la regressione logistica avrebbero difficoltà ad apprendere il limite decisionale, ad esempio se esiste a livello micro di una funzione e abbiamo altre caratteristiche dell'ordine di milioni Inoltre aiuta l'algoritmo a convergere meglio. Pertanto non corriamo rischi nel codificarli nei nostri algoritmi. È molto più facile per un classificatore apprendere in questo modo i contributi (pesi) delle funzionalità. Vero anche per K significa quando si usano le norme euclidee (confusione a causa della scala). Alcuni algoritmi possono funzionare anche senza normalizzazione.

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.