17 votos

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

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.

enter image description here

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:

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

enter image description here

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}$$

enter image description here


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:

enter image description here


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

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

  1. ¿Son equivalentes la convolución y la correlación cruzada en la CNN?

Sí, son equivalentes.

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

10voto

jgtumusiime Puntos 63

No hay diferencias en lo que pueden hacer las redes neuronales cuando utilizan la convolución o la correlación. Esto se debe a que los filtros son aprendido y si una CNN puede aprender a realizar una determinada tarea mediante la operación de convolución, también puede aprender a realizar la misma tarea mediante 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 que la gente a veces encuentra más intuitivo pensar en la convolución que en la correlación, este puesto puede ser útil.

Queda la pregunta de que si no hay diferencia entre la convolución y la correlación cruzada, ¿qué sentido tiene voltear los pesos en la matriz del núcleo? Me gustaría incluir algunas frases del Aprendizaje profundo libro de Ian Goodfellow et al. para responder a esta pregunta:

"La única razón para voltear el núcleo es obtener la propiedad conmutativa. Aunque la propiedad conmutativa es útil para escribir pruebas, no suele ser una propiedad importante de la implementación de una red neuronal... Muchas bibliotecas de aprendizaje automático implementan la correlación cruzada pero la llaman convolución. "

La conclusión es que, aunque la convolución es una de las operaciones favoritas en las aplicaciones clásicas de visión artificial, se sustituye por la correlación en muchas de las implementaciones de las redes neuronales convolucionales.

0 votos

Gracias. He leído con atención el blog que enlazas, y parece que el uso de la convolución no es simplemente equivalente a la correlación, y sí responde a la selección de características en el dominio de la frecuencia. Estoy buscando una respuesta que profundice en esto.

0 votos

Según sé, son equivalentes en lo que pueden hacer ya que ambas hacen un producto punto de dos matrices, pero la convolución voltea la matriz del filtro antes del producto punto, y como las CNN aprenden los filtros, pueden aprender los filtros volteados.

0 votos

+1 a la explicación de Hosseins, pero -1 al enlace del blog. El blog se centra principalmente en el hardware, y él es un tipo de CS sin experiencia en la convolución y otros conceptos de procesamiento de señales.

2voto

Rob Allen Puntos 486

El vínculo entre las FFT y la convolución tiene una razón práctica.

La convolución es lenta en el dominio tiempo/imagen. La aplicación de un $n \times n$ filtro a un píxel requiere $O(n^2)$ multiplicaciones y sumas. Aplicándolo a cada píxel de un $N \times N$ imagen requiere por tanto $n^2N^2$ operaciones. Esto crece rápidamente, y el gran número de operaciones no sólo 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. Las FFT son rápidas: tienen un buen rendimiento asintótico $O(N^2 \log N^2)$ y las implementaciones reales suelen estar muy optimizadas. Pasar al dominio de Fourier permite, pues, realizar una convolución en $O(N^2)$ tiempo (que está dominado por la multiplicación puntual), en lugar de $O(n^2N^2)$ . Esto puede proporcionar un aumento considerable de la velocidad, aunque parece mucho más complicado seguir la ruta FFT -> multiplicación -> FFT inversa. Más información

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X