C'è molta sottigliezza tra i significati di convoluzione e correlazione. Entrambi appartengono all'idea più ampia di prodotti interni e proiezioni in algebra lineare, ovvero proiettare un vettore su un altro per determinare quanto "forte" sia nella direzione di quest'ultimo.
Questa idea si estende nel campo delle reti neurali, dove proiettiamo un campione di dati su ogni riga di una matrice, per determinare quanto "si adatti" a quella riga. Ogni riga rappresenta una determinata classe di oggetti. Ad esempio, ogni riga può classificare una lettera nell'alfabeto per il riconoscimento della grafia. È comune riferirsi ad ogni riga come un neurone, ma potrebbe anche essere chiamato un filtro abbinato.
In sostanza, stiamo misurando quanto sono simili due cose o stiamo cercando di trovare una caratteristica specifica in qualcosa, ad esempio un segnale o un'immagine. Ad esempio, quando contorti un segnale con un filtro passa-banda, stai cercando di scoprire quale contenuto ha in quella banda. Quando si collega un segnale a una sinusoide, ad esempio il DFT, si sta cercando la forza della frequenza della sinusoide nel segnale. Nota che in quest'ultimo caso, la correlazione non scorre, ma stai ancora "correlando" due cose. Stai usando un prodotto interno per proiettare il segnale sulla sinusoide.
Allora, qual è la differenza? Bene, considera che con convoluzione il segnale è all'indietro rispetto al filtro. Con un segnale che varia nel tempo, ciò ha l'effetto che i dati sono correlati nell'ordine in cui entrano nel filtro. Per un momento, definiamo la correlazione semplicemente come un prodotto punto, ovvero proiettando una cosa su un'altra. Quindi, all'inizio, stiamo correlando la prima parte del segnale con la prima parte del filtro. Man mano che il segnale continua attraverso il filtro, la correlazione diventa più completa. Si noti che ogni elemento nel segnale viene moltiplicato solo per l'elemento del filtro che "tocca" in quel momento.
Quindi, con convoluzione, ci stiamo correlando in un certo senso, ma stiamo anche cercando di preservare l'ordine nel tempo in cui si verificano i cambiamenti mentre il segnale interagisce con il sistema. Se il filtro è simmetrico, tuttavia, come spesso accade, in realtà non importa. La convoluzione e la correlazione produrranno gli stessi risultati.
Con la correlazione, stiamo solo confrontando due segnali e non stiamo cercando di preservare un ordine di eventi. Per confrontarli, vogliamo che siano rivolti nella stessa direzione, cioè allineati. Facciamo scorrere un segnale sull'altro in modo da poter testare la loro somiglianza in ogni finestra temporale, nel caso in cui siano sfasati l'uno con l'altro o stiamo cercando un segnale più piccolo in uno più grande.
Nell'elaborazione delle immagini, le cose sono leggermente diverse. Non ci interessa il tempo. La convoluzione ha ancora alcune utili proprietà matematiche , però. Tuttavia, se stai provando a far corrispondere parti di un'immagine più grande a una più piccola (ovvero un filtro abbinato), non vorrai capovolgerla perché le funzionalità non si allineeranno. A meno che, ovviamente, il filtro non sia simmetrico. Nell'elaborazione delle immagini, la correlazione e la convoluzione sono talvolta utilizzate in modo intercambiabile, in particolare con le reti neurali . Ovviamente, il tempo è ancora rilevante se l'immagine è una rappresentazione astratta di dati bidimensionali, dove una dimensione è il tempo, ad esempio lo spettrogramma.
Quindi, in sintesi, sia la correlazione che la convoluzione sono prodotti interni scorrevoli, usati per proiettare una cosa su un'altra mentre variano nello spazio o nel tempo. La convoluzione viene utilizzata quando l'ordine è importante e in genere viene utilizzata per trasformare i dati. La correlazione viene in genere utilizzata per trovare una cosa più piccola all'interno di una cosa più grande, cioè per abbinare. Se almeno una delle due "cose" è simmetrica, non importa quale usi.