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) (?).
fuente
Respuestas:
No hay diferencias en lo que pueden hacer las redes neuronales cuando usan convolución o correlación. Esto se debe a que los filtros se aprenden y si una CNN puede aprender a hacer una tarea en particular usando la operación de convolución, también puede aprender a hacer la misma tarea usando la operación de correlación (aprendería la versión rotada de cada filtro).
Para encontrar más detalles sobre las razones por las cuales las personas a veces encuentran más intuitivo pensar en la convolución que en la correlación, esta publicación puede ser útil.
Queda la pregunta de que si no hay diferencia entre convolución y correlación cruzada, ¿cuál es el punto de voltear los pesos en la matriz del núcleo? Me gustaría incluir algunas oraciones del libro Deep learning de Ian Goodfellow et al. para responder esta pregunta:
"La única razón para voltear el kernel es obtener la propiedad conmutativa. Si bien la propiedad conmutativa es útil para escribir pruebas, generalmente no es una propiedad importante de una implementación de red neuronal ... Muchas bibliotecas de aprendizaje automático implementan correlación cruzada pero llaman es convolución " .
La conclusión es que, aunque la convolución es una operación favorita en las aplicaciones clásicas de visión artificial, se reemplaza por la correlación en muchas de las implementaciones de las redes neuronales convolucionales.
fuente
Hay una razón práctica para el vínculo entre las FFT y la convolución.
La convolución es lenta en el dominio del tiempo / imagen. Aplicando unn × n filtrar a un píxel requiere O ( n2) multiplicaciones y sumas. Aplicandolo a cada pixel en unnorte× N imagen por lo tanto requiere norte2norte2 operaciones Esto crece rápidamente y la gran cantidad de operaciones no solo requiere tiempo extra, sino que también introduce más errores numéricos.
El teorema de la convolución dice que la convolución en el dominio del tiempo es equivalente a la multiplicación puntual en el dominio de la frecuencia. Los FFT son rápidos: tienen un buen rendimiento asintóticoO ( N2Iniciar sesiónnorte2) y las implementaciones reales a menudo están altamente optimizadas. Cambiar al dominio de Fourier le permite realizar una convolución enO ( N2) tiempo (que está dominado por la multiplicación puntual), en lugar de O ( n2norte2) . Esto puede proporcionar una aceleración considerable, aunque parezca mucho más complicado descender por la ruta FFT -> multiplicación -> FFT inversa. Más aquí
fuente