En las redes neuronales convolucionales (CNN) el matriz de pesos en cada paso se voltean sus filas y columnas para obtener la matriz del núcleo, antes de proceder a la convolución. Esto se explica en una serie de vídeos de Hugo Larochelle aquí :
El cálculo de los mapas ocultos correspondería a hacer una convolución discreta convolución con un canal de la capa anterior, utilizando una matriz matriz [...], y ese núcleo se calcula a partir de la matriz de pesos ocultos matriz $W_{ij}$ donde volteamos las filas y las columnas.
Si comparáramos los pasos reducidos de una convolución con la multiplicación de matrices regular como en otros tipos de NN, la conveniencia sería una clara explicación . Sin embargo, quizá no sea la comparación más pertinente...
En el procesamiento de imágenes digitales, la aplicación de convolución de un filtro a una imagen ( este es un gran video de youtube para una intuición práctica ) parece estar relacionado con:
- El hecho de que la convolución es asociativa mientras que correlación (cruzada) no lo es.
- La posibilidad de aplicar filtros en el dominio de la frecuencia de la imagen como multiplicaciones, ya que la convolución en el dominio del tiempo equivale a la multiplicación en el dominio de la frecuencia ( teorema de convolución ).
En este entorno técnico particular de DSP correlación se define como:
$$F\circ I(x,y)=\sum_{j=-N}^{N}\sum_{i=-N}^N\, F(i,j)\,I(x+i, y+j)$$
que es esencialmente la suma de todas las celdas de un producto Hadamard:
$$\small F\circ I(x,y)=\Tiny\begin{bmatrix}F[-N,-N]\,I[x-N,y-N]&\cdots&F[-N,0]\,I[x-N,y-N]&\cdots& F[-N,N]\,I[x-N,y+N]\\ \vdots&\ddots&\vdots&\ddots&\vdots\\ F[0,-N]\,I[x,y-N]&\cdots&F[0,0]\,I[x,y]&\cdots& F[0,N]\,I[x,y+N]\\ \vdots&\ddots&\vdots&\ddots&\vdots\\ F[N,-N]\,I[x+N,y-N]&\cdots&F[N,0]\,I[x+N,y]&\cdots& F[N,N]\,I[x+N,y+N]\\ \end{bmatrix}$$
donde $F(i,j)$ es una función de filtro (expresada como una matriz), y $I(x,y)$ es el valor del píxel de una imagen en la posición $(x,y)$ :
El objetivo de la correlación cruzada es evaluar la similitud de una imagen de sondeo con una imagen de prueba. El cálculo de un mapa de correlación cruzada se basa en el teorema de la convolución.
Por otro lado, la convolución se define como:
$$F* I(x,y)=\sum_{j=-N}^{N}\sum_{i=-N}^N\, F(i,j)\,I(x-i, y-j)$$
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:
$$\small F* I(x,y)=\Tiny\begin{bmatrix}F[N,N]\,I[x-N,y-N]&\cdots&F[N,0]\,I[x-N,y-N]&\cdots& F[N,-N]\,I[x-N,y+N]\\ \vdots&\ddots&\vdots&\ddots&\vdots\\ F[0,N]\,I[x,y-N]&\cdots&F[0,0]\,I[x,y]&\cdots& F[0,-N]\,I[x,y+N]\\ \vdots&\ddots&\vdots&\ddots&\vdots\\ F[-N,-N]\,I[x+N,y-N]&\cdots&F[-N,0]\,I[x+N,y]&\cdots& F[-N,-N]\,I[x+N,y+N]\\ \end{bmatrix}$$
La convolución en DSP sirve para aplicar filtros a la imagen (por ejemplo, para suavizarla o afinarla). Como ejemplo, después de convolucionar la cara de Joseph Fourier con un Filtro de convolución gaussiano : $\small\begin{bmatrix} 1&4&7&4&1\\ 4&16&26&16&4\\ 7&26&41&26&7\\ 4&16&26&16&4\\ 1&4&7&4&1\end{bmatrix}$ los bordes de su cara son más borrosos:
Computacionalmente, ambas operaciones son un Producto interno de Frobenius, que equivale a calcular la traza de una multiplicación de matrices .
Preguntas (reformulación tras los comentarios y la primera respuesta):
- ¿El uso de convoluciones en la CNN está relacionado con la FFT?
Por lo que deduzco hasta ahora la respuesta es no. Las FFT se han utilizado para acelerar Implementaciones de GPU de convoluciones . Sin embargo, las FFT no suelen formar parte de la estructura o de las funciones de activación en las CNN, a pesar de que se utilizan convoluciones en los pasos de preactivación.
- ¿Son equivalentes la convolución y la correlación cruzada en la CNN?
Sí, son equivalentes.
- Si es tan sencillo como "no hay diferencia", ¿qué sentido tiene volcar los pesos en la matriz del núcleo?
No son aplicables ni la asociatividad de la convolución (útil en las pruebas matemáticas), ni las consideraciones sobre los FT y el teorema de la convolución. De hecho, parece que la inversión ni siquiera tiene lugar (la correlación cruzada está simplemente mal etiquetada como convolución) ( ).
0 votos
Antoni ¿podrías señalar alguna fuente en la que se volteen los pesos? Como ha señalado @hossein, con la correlación cruzada se puede hacer todo lo que se puede hacer con las convoluciones, simplemente cambiando el orden. Así que todo esto del dominio de la frecuencia es irrelevante.
0 votos
@seanv507 He editado mi OP para incluir la fuente de lo que creo que me preguntas. Entiendo que la convolución es la misma operación que la correlación cruzada con una matriz de filtro volteada, pero no entiendo por qué nos pasamos por el "forro" de la convolución discreta si no hay nada que no se pueda conseguir con la correlación. La respuesta que se ha dado es claramente de conocimiento, pero podría encajar en un comentario, y no explica la razón de dos operaciones distintas (¿es una "tradición" de DSP trasladada a ML?), las implicaciones en cuanto al proceso de aprendizaje, y la relación con los FT.
0 votos
No veo que se mencione la aceleración en el dominio de la frecuencia ni la invariabilidad de la traslación. Esos son parte de ello.
0 votos
@EngrStudent No estoy seguro de si te refieres a que te falta esto en mi ya prohibitivamente largo OP, o en los enlaces, pero el OP está lejos de ser una pregunta retórica, y la escueta respuesta proporcionada es claramente precisa dados los upvotes, sin embargo, hace muy poco por los no iniciados. Así que espero una respuesta (no necesariamente una disertación) que toque las cuestiones planteadas en el PO.
0 votos
@EngrStudent Por ejemplo, esta es una gran respuesta casi aborda mi OP: la animación puede ser una correlación cruzada (no sé si mat se voltea), y el término "convolución" puede ser laxa (?) léxico. Puede ser que no haya diferencia si la FFT realmente nunca se aplica en las CNN (a diferencia de la DSP), y entonces voltear las filas y coles es un paso innecesario, traído sólo para ilustrar la equivalencia de la correlación cruzada y la convolución en las CNN. Si estos puntos se incluyeran en una respuesta, estaría encantado de aceptarla.
1 votos
Antoni, no hay necesidad de voltear. Es más bien una convención; en dsp se habla de convolución y no 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 (estás coincidiendo con la plantilla) para la CNN (considera, por ejemplo, un filtro de bordes verticales en lugar de una rotación simétrica) . Así que creo que Hugo larochelle tal vez está hablando de las bibliotecas numéricas donde la convolución en lugar de la correlación cruzada es la función estándar (él está diciendo efectivamente la correlación cruzada se puede hacer por una convolución).
0 votos
@seanv507 ¡Gracias! ¡Tu comentario es la pieza que faltaba! Supongo que las tres preguntas, provisionalmente autocontestadas, del final del post son correctas, ¿no? Quiero animarte de nuevo a que publiques una respuesta formal. Tu comentario, de nuevo, ha sido la información más útil.
0 votos
@AntoniParellada He añadido algunos puntos más a mi respuesta. Espero que esto sea ahora la respuesta a su pregunta final.
0 votos
@Hossein Sí, hace una gran diferencia. Gracias. En cuanto al OP editado, y a la pregunta concreta 1, "¿El uso de convoluciones en la CNN está ligado a la FFT?", ¿podrías comentar un poco si la respuesta que presumo es correcta es efectivamente correcta?
1 votos
Antoni, de acuerdo en las 2 primeras preguntas/respuestas, y mi comentario respondía a la 3ª pregunta.
0 votos
@AntoniParellada Sí, tu primera respuesta es correcta. Para ser más claros, en la visión artificial clásica había un fuerte vínculo entre la convolución y la FFT (para interpretar los filtros de paso alto/bajo), pero este vínculo no es necesario para las CNN.
1 votos
Aunque no hay necesariamente una relación directa entre las CNN y las FFT, hay pruebas que demuestran que se puede obtener una aceleración de las CNN utilizando las FFT cuando se mantiene la suma de convolución habitual. Véase aquí, por ejemplo: arxiv.org/pdf/1312.5851.pdf
0 votos
En mi opinión, la convolución es la mejor solución de la naturaleza para encontrar el camino en un espacio de aprendizaje de mayor dimensión dentro de una geometría tridimensional (es decir, el cerebro). Así que, sí, la conveniencia es la razón.