¿Existen razones matemáticas para la convolución en redes neuronales más allá de la conveniencia?

14

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 columnasWij

ingrese la descripción de la imagen aquí

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:

  1. El hecho de que la convolución es asociativa mientras que la correlación (cruzada) no lo es.
  2. 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:

FI(x,y)=j=NNi=NNF(i,j)I(x+i,y+j)

que es esencialmente la suma de todas las celdas en un producto Hadamard:

FI(x,y)=[F[N,N]I[xN,yN]F[N,0]I[xN,yN]F[N,N]I[xN,y+N]F[0,N]I[x,yN]F[0,0]I[x,y]F[0,N]I[x,y+N]F[N,N]I[x+N,yN]F[N,0]I[x+N,y]F[N,N]I[x+N,y+N]]

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 ) :F(i,j)I(x,y)(x,y)

ingrese la descripción de la imagen aquí

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:

FI(x,y)=j=NNi=NNF(i,j)I(xi,yj)

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:

FI(x,y)=[F[N,N]I[xN,yN]F[N,0]I[xN,yN]F[N,N]I[xN,y+N]F[0,N]I[x,yN]F[0,0]I[x,y]F[0,N]I[x,y+N]F[N,N]I[x+N,yN]F[N,0]I[x+N,y]F[N,N]I[x+N,y+N]]

ingrese la descripción de la imagen aquí


[1474141626164726412674162616414741]

ingrese la descripción de la imagen aquí


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):

  1. ¿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.

  1. ¿Es la convolución y la correlación cruzada en CNN equivalente?

Si, son equivalentes.

  1. 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) (?).

Antoni Parellada
fuente
Antoni, ¿puedes señalar alguna fuente en la que le den la vuelta a los pesos? Como señaló @hossein, puede hacer cualquier cosa con correlación cruzada que puede hacer con convoluciones, simplemente cambiando el orden. Entonces, todo este dominio de frecuencia es irrelevante.
seanv507
@ seanv507 Edité mi OP para incluir la fuente de lo que creo que me estás preguntando. Entiendo que la convolución es la misma operación que la correlación cruzada con una matriz de filtro invertida, pero no entiendo por qué pasamos el "dolor" de la convolución discreta si no hay nada que no pueda ser logrado con correlación. La respuesta dada es clara, pero podría incluirse en un comentario y no explica la razón detrás de dos operaciones distintas (¿es una "tradición" de DSP transferida a ML?), Las implicaciones en cuanto al proceso de aprendizaje, y la relación con los FT.
Antoni Parellada
1
Antoni, no hay necesidad de voltear. Es más una convención; en dsp la gente habla de convolución en lugar de correlación cruzada, y las redes neuronales de correlación cruzada no salen de la lengua. Pero la operación más natural (para que los humanos la interpreten) es la correlación cruzada (usted es una coincidencia de plantilla) para CNN (considere, por ejemplo, un filtro de borde vertical en lugar de una rotación simétrica). Así que creo que Hugo larochelle es tal vez hablando de bibliotecas numéricas donde convolución en lugar de correlación cruzada es función estándar (que está diciendo efectivamente correlación cruzada se puede hacer mediante una convolución.).
seanv507
1
Antoni, estoy de acuerdo con las 2 primeras preguntas / respuestas, y mi comentario fue responder a la tercera pregunta.
seanv507
1
Si bien no existe necesariamente un vínculo directo entre CNN y FFT, existe evidencia que muestra que puede obtener una aceleración de CNN utilizando FFT cuando retiene la suma de convolución habitual. Ver aquí, por ejemplo: arxiv.org/pdf/1312.5851.pdf
Alex R.

Respuestas:

8

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.

Hossein
fuente
Gracias. Leí con atención el blog al que se vincula, y parece que el uso de la convolución no es simplemente equivalente a la correlación, y responde a la selección de características del dominio de frecuencia. Estoy buscando una respuesta elaborando sobre esto.
Antoni Parellada
Como sé, son equivalentes en lo que pueden hacer , ya que ambos hacen un producto de dos matrices, pero la circunvolución voltea la matriz del filtro antes del producto de punto, y como las CNN aprenden los filtros, pueden aprender los filtros volteados.
Hossein
+1 a la explicación de Hosseins, pero -1 para el enlace del blog. El blog se centra principalmente en hardware, y es un chico de CS sin experiencia en convolución y otros conceptos de procesamiento de señales.
seanv507
Me gustaría seguir insistiendo en tener algún párrafo adicional sobre la relación (o falta de ella) entre la convolución en las CNN y las transformadas de Fourier.
Antoni Parellada
2

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 unnorte×norte filtrar a un píxel requiere O(norte2)multiplicaciones y sumas. Aplicandolo a cada pixel en unnorte×norte imagen por lo tanto requiere norte2norte2operaciones 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(norte2Iniciar sesiónnorte2)y las implementaciones reales a menudo están altamente optimizadas. Cambiar al dominio de Fourier le permite realizar una convolución enO(norte2) tiempo (que está dominado por la multiplicación puntual), en lugar de O(norte2norte2). 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í

Matt Krause
fuente