Há muita sutileza entre os significados de convolução e correlação. Ambos pertencem à idéia mais ampla de produtos internos e projeções na álgebra linear, ou seja, projetando um vetor sobre o outro para determinar o quão "forte" é na direção do último.
Essa idéia se estende ao campo das redes neurais, onde projetamos uma amostra de dados em cada linha de uma matriz, para determinar quão bem "se encaixa" nessa linha. Cada linha representa uma certa classe de objetos. Por exemplo, cada linha pode classificar uma letra no alfabeto para reconhecimento de manuscrito. É comum se referir a cada linha como um neurônio, mas também pode ser chamado de filtro correspondente.
Em essência, estamos medindo como duas coisas são semelhantes ou tentando encontrar um recurso específico em algo, por exemplo, um sinal ou imagem. Por exemplo, quando você envolve um sinal com um filtro passa-banda, está tentando descobrir qual conteúdo ele tem nessa banda. Quando você correlaciona um sinal com um sinusóide, por exemplo, a DFT, procura a força da frequência do sinusóide no sinal. Observe que, no último caso, a correlação não desliza, mas você ainda está "correlacionando" duas coisas. Você está usando um produto interno para projetar o sinal no sinusóide.
Então, qual é a diferença? Bem, considere que, com a convolução, o sinal é inverso em relação ao filtro. Com um sinal variável no tempo, isso faz com que os dados sejam correlacionados na ordem em que entram no filtro. Por um momento, vamos definir a correlação simplesmente como um produto escalar, ou seja, projetando uma coisa na outra. Portanto, no início, estamos correlacionando a primeira parte do sinal com a primeira parte do filtro. À medida que o sinal continua através do filtro, a correlação se torna mais completa. Observe que cada elemento no sinal é multiplicado apenas pelo elemento do filtro que está "tocando" naquele momento.
Então, com a convolução, estamos nos correlacionando em certo sentido, mas também estamos tentando preservar a ordem no tempo em que as mudanças ocorrem à medida que o sinal interage com o sistema. Se o filtro for simétrico, no entanto, como costuma ser, não importa. Convolução e correlação produzirão os mesmos resultados.
Com a correlação, estamos apenas comparando dois sinais, e não tentando preservar uma ordem de eventos. Para compará-los, queremos que eles estejam na mesma direção, ou seja, alinhados. Deslizamos um sinal sobre o outro para testar sua semelhança em cada janela de tempo, caso estejam fora de fase um com o outro ou procuremos um sinal menor em um maior.
No processamento de imagens, as coisas são um pouco diferentes. Nós não nos importamos com o tempo. A convolução ainda possui algumas propriedades matemáticas úteis . No entanto, se você estiver tentando combinar partes de uma imagem maior com uma menor (por exemplo, filtragem correspondente), não será necessário invertê-la, pois os recursos não serão alinhados. A menos, é claro, que o filtro seja simétrico. No processamento de imagens, a correlação e a convolução são às vezes usadas de forma intercambiável, particularmente com redes neurais . Obviamente, o tempo ainda é relevante se a imagem for uma representação abstrata de dados bidimensionais, onde uma dimensão é o tempo - por exemplo, espectrograma.
Portanto, em resumo, tanto a correlação quanto a convolução são produtos internos deslizantes, usados para projetar uma coisa na outra, pois variam ao longo do espaço ou do tempo. A convolução é usada quando a ordem é importante e geralmente é usada para transformar os dados. A correlação é normalmente usada para encontrar uma coisa menor dentro de uma coisa maior, ou seja, para combinar. Se pelo menos uma das duas "coisas" for simétrica, não importa qual você use.