Hay mucha sutileza entre los significados de convolución y correlación. Ambos pertenecen a la idea más amplia de productos internos y proyecciones en álgebra lineal, es decir, proyectar un vector sobre otro para determinar qué tan "fuerte" es en la dirección de este último.
Esta idea se extiende al campo de las redes neuronales, donde proyectamos una muestra de datos en cada fila de una matriz, para determinar qué tan bien se "ajusta" a esa fila. Cada fila representa una cierta clase de objetos. Por ejemplo, cada fila podría clasificar una letra en el alfabeto para el reconocimiento de escritura a mano. Es común referirse a cada fila como una neurona, pero también podría llamarse un filtro coincidente.
En esencia, estamos midiendo cuán similares son dos cosas, o tratando de encontrar una característica específica en algo, por ejemplo, una señal o imagen. Por ejemplo, cuando convoluciona una señal con un filtro de paso de banda, está tratando de averiguar qué contenido tiene en esa banda. Cuando correlaciona una señal con una sinusoide, por ejemplo, el DFT, está buscando la intensidad de la frecuencia de la sinusoide en la señal. Tenga en cuenta que en el último caso, la correlación no se desliza, pero aún está "correlacionando" dos cosas. Estás utilizando un producto interno para proyectar la señal en la sinusoide.
Entonces, ¿cuál es la diferencia? Bueno, considere que con convolución la señal es hacia atrás con respecto al filtro. Con una señal que varía con el tiempo, esto tiene el efecto de que los datos están correlacionados en el orden en que ingresan al filtro. Por un momento, definamos la correlación simplemente como un producto de punto, es decir, proyectando una cosa sobre otra. Entonces, al principio, correlacionamos la primera parte de la señal con la primera parte del filtro. A medida que la señal continúa a través del filtro, la correlación se vuelve más completa. Tenga en cuenta que cada elemento en la señal solo se multiplica con el elemento del filtro que está "tocando" en ese momento.
Entonces, con convolución, estamos correlacionando en cierto sentido, pero también estamos tratando de preservar el orden a tiempo que ocurren los cambios a medida que la señal interactúa con el sistema. Sin embargo, si el filtro es simétrico, como suele serlo, en realidad no importa. La convolución y la correlación arrojarán los mismos resultados.
Con la correlación, solo estamos comparando dos señales, y no estamos tratando de preservar un orden de eventos. Para compararlos, queremos que estén orientados en la misma dirección, es decir, que se alineen. Deslizamos una señal sobre la otra para que podamos probar su similitud en cada ventana de tiempo, en caso de que estén desfasadas entre sí o si estamos buscando una señal más pequeña en una más grande.
En el procesamiento de imágenes, las cosas son un poco diferentes. No nos importa el tiempo. Sin embargo, la convolución todavía tiene algunas propiedades matemáticas útiles . Sin embargo, si está tratando de hacer coincidir partes de una imagen más grande con una más pequeña (es decir, filtrado coincidente), no querrá voltearla porque las características no se alinearán. A menos, por supuesto, que el filtro sea simétrico. En el procesamiento de imágenes, la correlación y la convolución a veces se usan indistintamente, particularmente con redes neuronales . Obviamente, el tiempo sigue siendo relevante si la imagen es una representación abstracta de datos bidimensionales, donde una dimensión es el tiempo, por ejemplo, el espectrograma.
En resumen, tanto la correlación como la convolución son productos internos deslizantes, que se utilizan para proyectar una cosa sobre otra a medida que varían en el espacio o el tiempo. La convolución se usa cuando el orden es importante, y generalmente se usa para transformar los datos. La correlación se usa típicamente para encontrar una cosa más pequeña dentro de una cosa más grande, es decir, para hacer coincidir. Si al menos una de las dos "cosas" es simétrica, no importa cuál use.