En las redes neuronales convolucionales (CNN), la matriz de pesos en cada paso cambia sus filas y columnas para obtener la matriz del núcleo, antes de continuar con la convolución. Esto se explica en una serie de videos de Hugo Larochelle aquí :
Calcular los mapas ocultos correspondería a hacer una convolución discreta con un canal de la capa anterior, utilizando una matriz [...] del núcleo, y ese núcleo se calcula a partir de la matriz de pesos ocultos , donde volteamos las filas y columnas
Si tuviéramos que comparar los pasos reducidos de una convolución con la multiplicación matricial regular como en otros tipos de NN, la conveniencia sería una explicación clara . Sin embargo, esta podría no ser la comparación más pertinente ...
En el procesamiento de imágenes digitales, la aplicación de la convolución de un filtro a una imagen ( este es un gran video de YouTube para una intuición práctica ) parece estar relacionada con:
- El hecho de que la convolución es asociativa mientras que la correlación (cruzada) no lo es.
- La posibilidad de aplicar filtros en el dominio de frecuencia de la imagen como multiplicaciones, ya que la convolución en el dominio del tiempo es equivalente a la multiplicación en el dominio de la frecuencia ( teorema de convolución ).
En este entorno técnico particular de correlación DSP se define como:
que es esencialmente la suma de todas las celdas en un producto Hadamard:
donde es una función de filtro (expresada como una matriz) e I ( x , y ) es el valor de píxel de una imagen en la ubicación ( x , y ) :
El objetivo de la correlación cruzada es evaluar qué tan similar es una imagen de sonda a una imagen de prueba. El cálculo de un mapa de correlación cruzada se basa en el teorema de convolución.
Por otro lado, la convolución se define como:
que mientras el filtro sea simétrico, es lo mismo que una operación de correlación con las filas y columnas del filtro invertidas:
Computacionalmente, ambas operaciones son un producto interno de Frobenius, que equivale a calcular la traza de una multiplicación de matriz .
Preguntas (reformulando después de comentarios y primera respuesta):
- ¿El uso de convoluciones en CNN está vinculado a FFT?
Por lo que deduzco hasta ahora, la respuesta es no. Las FFT se han utilizado para acelerar las implementaciones de convoluciones de GPU . Sin embargo, las FFT no suelen formar parte de la estructura o las funciones de activación en las CNN, a pesar del uso de convoluciones en los pasos de preactivación.
- ¿Es la convolución y la correlación cruzada en CNN equivalente?
Si, son equivalentes.
- Si es tan simple como "no hay diferencia", ¿cuál es el punto de voltear los pesos en la matriz del núcleo?
Ni la asociatividad de convolución (útil en pruebas matemáticas), ni ninguna consideración con respecto a FT y el teorema de convolución son aplicables. De hecho, parece que el cambio ni siquiera tiene lugar (la correlación cruzada simplemente se etiqueta erróneamente como convolución) (?).