Domanda Convoluzione Vs correlazione


Qualcuno può spiegarmi le somiglianze e le differenze, della Correlazione e della Convoluzione? Si prega di spiegare l'intuizione che sta dietro a questo, non l'equazione matematica (cioè, capovolgere il kernel / impulso) .. Gli esempi di applicazione nel dominio di elaborazione delle immagini per ogni categoria sarebbero apprezzati anche


14
2017-12-02 05:11


origine


risposte:


Probabilmente otterrete una risposta molto migliore sullo scambio di dsp stack, ma ... per i principianti ho trovato un numero di termini simili e possono essere complicati definire le definizioni.

  1. Correlazione
  2. Correlazione incrociata
  3. circonvoluzione
  4. Coefficiente di correlazione
  5. Prodotto con puntini scorrevoli
  6. Correlazione di Pearson

1, 2, 3 e 5 sono molto simili

4,6 sono simili

Nota che tutti questi termini hanno prodotti punto che si alzano in testa

Hai posto domande su Correlazione e Convoluzione - queste sono concettualmente le stesse eccetto che l'uscita è girata in convoluzione. Sospetto che potresti aver chiesto la differenza tra il coefficiente di correlazione (come Pearson) e la convoluzione / correlazione.

Prerequisiti

Suppongo che tu sappia come calcolare il dot-product. Dati due vettori di dimensione uguale v e w ciascuno con tre elementi, il prodotto del punto algebrico è v [0] * w [0] + v [1] * w [1] + v [2] * w [2]

C'è molta teoria dietro il prodotto dot in termini di ciò che rappresenta ecc ....

Notare che il prodotto punto è un numero singolo (scalare) che rappresenta la mappatura tra questi due vettori / punti v, w Nella geometria frequentemente si calcola il coseno dell'angolo tra due vettori che utilizza il prodotto punto. Il coseno dell'angolo tra due vettori è compreso tra -1 e 1 e può essere considerato una misura di somiglianza.

Coefficiente di correlazione (Pearson)

Il coefficiente di correlazione tra la lunghezza uguale v, w è semplicemente il prodotto punto di due segnali di media zero (sottrazione media v da v per ottenere zmv e mean w da w per ottenere zmw - qui zm è una scorciatoia per la media zero) diviso per le grandezze di zmv e zmw.

per produrre un numero compreso tra -1 e 1. Vicino a zero significa poca correlazione, vicino a +/- 1 è alta correlazione. misura la somiglianza tra questi due vettori.

Vedere http://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient per una migliore definizione.

Convoluzione e correlazione 

Quando vogliamo correlare / convogliare v1 e v2, fondamentalmente calcoliamo una serie di prodotti punto e li inseriamo in un vettore di output. Diciamo che v1 è tre elementi e v2 è 10 elementi. I prodotti punto che calcoliamo sono i seguenti:

output[0] = v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]
output[1] = v1[0]*v2[1]+v1[1]*v2[2]+v1[2]*v2[3]
output[2] = v1[0]*v2[2]+v1[1]*v2[3]+v1[2]*v2[4]
output[3] = v1[0]*v2[3]+v1[1]*v2[4]+v1[2]*v2[5]
output[4] = v1[0]*v2[4]+v1[1]*v2[5]+v1[2]*v2[6]
output[5] = v1[0]*v2[7]+v1[1]*v2[8]+v1[2]*v2[9]
output[6] = v1[0]*v2[8]+v1[1]*v2[9]+v1[2]*v2[10] #note this is 
#mathematically valid but might give you a run time error in a computer implementation 

L'output può essere capovolto se è necessaria una vera convoluzione.

output[5] = v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2]
output[4] = v1[0]*v2[1]+v1[1]*v2[2]+v1[2]*v2[3]
output[3] = v1[0]*v2[2]+v1[1]*v2[3]+v1[2]*v2[4]
output[2] = v1[0]*v2[3]+v1[1]*v2[4]+v1[2]*v2[5]
output[1] = v1[0]*v2[4]+v1[1]*v2[5]+v1[2]*v2[6]
output[0] = v1[0]*v2[7]+v1[1]*v2[8]+v1[2]*v2[9]

Si noti che nell'output sono presenti meno di 10 elementi, poiché per semplicità sto calcolando la convoluzione solo dove sono definiti sia v1 sia v2

Si noti inoltre che la convoluzione è semplicemente un numero di prodotti punto. C'è stato un notevole lavoro nel corso degli anni per essere in grado di accelerare le circonvoluzioni. I prodotti a punti radicali sono lenti e possono essere accelerati trasformando prima i vettori nello spazio di base di Fourier e poi calcolando una singola moltiplicazione vettoriale, invertendo quindi il risultato, anche se non ne parlerò qui ...

Potresti voler guardare queste risorse e cercare su Google: Calcolo della correlazione e del significato di Pearson in Python


21
2017-12-02 17:45



La migliore risposta che ho ricevuto è stata da questo documento:http://www.cs.umd.edu/~djacobs/CMSC426/Convolution.pdf

Sto solo andando a copiare l'estratto dal doc:

"La differenza chiave tra i due è che la convoluzione è associativa, cioè se F e G sono filtri, quindi F * (GI) = (FG) * I. Se non ci credi, prova un esempio semplice, usando F = G = (- 1 0 1), per esempio. È molto conveniente avere una convoluzione associativa. Supponiamo, per esempio, di voler lisciare un'immagine e quindi prendere la sua derivata. Potremmo fare questo convolvendo l'immagine con un filtro gaussiano e poi convolvendolo con un filtro derivativo. Ma potremmo alternativamente convolvere il filtro derivativo con il gaussiano per produrre un filtro chiamato Differenza di Gaussian (DOG), e quindi convolvolare questo con la nostra immagine. La cosa bella di questo è che il filtro DOG può essere precalcolato, e dobbiamo solo convogliare un filtro con la nostra immagine.

In generale, le persone utilizzano la convoluzione per le operazioni di elaborazione delle immagini, ad esempio la levigatura, e usano la correlazione per abbinare un modello a un'immagine. Quindi, non ci interessa che la correlazione non sia associativa, perché non ha senso combinare due modelli in uno con la correlazione, mentre potremmo spesso voler combinare due filtri insieme per la convoluzione. "


6
2018-06-15 23:40



La convoluzione è come la correlazione, tranne che giriamo il filtro prima di correlare


4
2018-02-15 19:56