Relación entre convolución en matemáticas y CNN

10

He leído la explicación de la convolución y la entiendo hasta cierto punto. ¿Alguien puede ayudarme a entender cómo esta operación se relaciona con la convolución en redes neuronales convolucionales? ¿Es el filtro como una función gque aplica peso?

Vladimir Lenin
fuente
Eso es exactamente lo que estoy leyendo y veo desde allí que la convolución en CNN es una operación matricial. ¿Y la convolución "funcional" nunca se usa allí? Entonces, ¿esto es solo 2 operaciones diferentes con el mismo nombre?
VladimirLenin
2
Posiblemente, la diferencia que está viendo es entre vistas discretas y continuas de convolución: es esencialmente la misma operación, pero debe realizarse de manera diferente en esos dos espacios diferentes. Las CNN usan convoluciones discretas. Y solo lo hacen porque es una forma conveniente de expresar las matemáticas de las conexiones (esto se aplica en ambas direcciones; es una conveniencia matemática dado el diseño, y probablemente esa sea una razón por la que este diseño es popular porque se asigna perfectamente a un pozo -comprendida función ya utilizada en el procesamiento de la señal)
Neil Slater

Respuestas:

2

Usando la notación de la página de wikipedia, la convolución en un CNN será el núcleo del cual aprenderemos algunos pesos para extraer la información que necesitamos y luego quizás aplicar una función de activación.sol

Circunvoluciones discretas

Desde la página de Wikipedia, la convolución se describe como

(Fsol)[norte]=metro=-infinfF[metro]sol[norte-metro]

Por ejemplo, suponiendo que es la función y es la función de convolución ,unaFsisol

ingrese la descripción de la imagen aquí

Para resolver esto, podemos usar la ecuación primero, volteamos la función verticalmente, debido a la que aparece en la ecuación. Luego calcularemos la suma de cada valor de . Al cambiar , la función original no se mueve, sin embargo, la función de convolución se desplaza en consecuencia. Comenzando en ,si-metronortenortenorte=0 0

C[0 0]=metrouna[metro]si[-metro]=0 00.25+0 00,5+11+0,50 0+10 0+10 0=1

C[1]=metrouna[metro]si[-metro]=0 00.25+10,5+0,51+10 0+10 0=1

C[2]=metrouna[metro]si[-metro]=10.25+0,50,5+11+10 0+10 0=1,5

C[3]=metrouna[metro]si[-metro]=10 0+0,50.25+10,5+11=1.625

C[4 4]=metrouna[metro]si[-metro]=10 0+0,50 0+10.25+10,5+0 01=0,75

C[5 5]=metrouna[metro]si[-metro]=10 0+0,50 0+10 0+10.25+0 00,50 01=0.25

Como puede ver, eso es exactamente lo que obtenemos en la gráfica . Entonces cambiamos la función sobre la función .C[norte]si[norte]una[norte]

Convolución discreta 2D

Por ejemplo, si tenemos la matriz en verde

ingrese la descripción de la imagen aquí

con el filtro de convolución

ingrese la descripción de la imagen aquí

Entonces, la operación resultante es una multiplicación por elementos y la suma de los términos que se muestran a continuación. Al igual que muestra la página de Wikipedia, este núcleo (matriz naranja) se desplaza a través de toda la función (matriz verde) .solF

ingrese la descripción de la imagen aquí

tomado del enlace que hace referencia a @Hobbes. Notarás que no hay volteo del kernel como lo hicimos para el cálculo explícito de la convolución anterior. Esto es una cuestión de notación como señala @Media. Esto debería llamarse correlación cruzada. Sin embargo, computacionalmente, esta diferencia no afecta el rendimiento del algoritmo porque el núcleo está siendo entrenado de tal manera que sus pesos son los más adecuados para la operación, por lo que agregar la operación de volteo simplemente haría que el algoritmo aprenda los pesos en diferentes celdas del núcleo para acomodar el flip. Entonces podemos omitir el cambio.sol

JahKnows
fuente
1

Sí, están relacionados. Como ejemplo, considere el suavizado gaussiano (en.wikipedia.org/wiki/Gaussian_blur), que es una convolución con un núcleo de valores gaussianos. Una CNN aprende los pesos de los filtros (es decir, los núcleos) y, por lo tanto, puede aprender a realizar el suavizado si es necesario.

MD004
fuente
1

Aunque CNNsignifica redes neuronales convolucionales, lo que hacen se denomina correlación cruzada en matemáticas y no convolución. Echa un vistazo aquí .

Ahora, antes de continuar, hay un comentario técnico que quiero hacer sobre la correlación cruzada versus las convoluciones y solo por los hechos lo que tiene que hacer para implementar redes neuronales convolucionales. Si lee un libro de texto matemático diferente o un libro de texto de procesamiento de señales, hay otra posible inconsistencia en la notación que es que, si observa el libro de texto matemático típico, la forma en que se define la convolución antes de hacer el producto del elemento Y y sumar, en realidad otro paso ...

Medios de comunicación
fuente