Pregunta sobre el sesgo en las redes convolucionales

11

Estoy tratando de averiguar cuántos pesos y sesgos se necesitan para CNN.

Digamos que tengo una imagen (3, 32, 32) y quiero aplicar un filtro (32, 5, 5). Para cada mapa de características tengo 5x5 pesos, por lo que debería tener 3 x (5x5) x 32 parámetros. Ahora necesito agregar el sesgo. Creo que solo tengo (3 x (5x5) + 1) x 32 parámetros, entonces, ¿el sesgo es el mismo en todos los colores (RGB)?

¿Es esto correcto? ¿Mantengo el mismo sesgo para cada imagen en su profundidad (en este caso 3) mientras uso pesos diferentes? ¿Porqué es eso?

usuario
fuente

Respuestas:

6

El sesgo funciona por neurona virtual, por lo que no tiene ningún valor tener múltiples entradas de sesgo donde hay una sola salida, eso equivaldría a sumar los diferentes pesos de sesgo en un solo sesgo.

En los mapas de características que son la salida de la primera capa oculta, los colores ya no se mantienen separados *. Efectivamente, cada mapa de características es un "canal" en la siguiente capa, aunque generalmente se visualizan por separado donde la entrada se visualiza con canales combinados. Otra forma de pensar en esto es que los canales RGB separados en la imagen original son 3 "mapas de características" en la entrada.

No importa cuántos canales o entidades haya en una capa anterior, la salida a cada mapa de entidades en la siguiente capa es un valor único en ese mapa. Un valor de salida corresponde a una sola neurona virtual, que necesita un peso de sesgo.

En una CNN, como explica en la pregunta, los mismos pesos (incluido el peso de polarización) se comparten en cada punto del mapa de características de salida. Por lo tanto, cada mapa de características tiene su propio peso de sesgo, así como previous_layer_num_features x kernel_width x kernel_heightpesos de conexión.

Entonces, sí, su ejemplo que resulta en (3 x (5x5) + 1) x 32pesos totales para la primera capa es correcto para un CNN con la primera capa oculta que procesa la entrada RGB en 32 mapas de características separadas.


* Es posible que se confunda al ver la visualización de los pesos de CNN que se pueden separar en los canales de color en los que operan.

Neil Slater
fuente
Pensé que había un sesgo por filtro ... ¿tenemos diferentes definiciones de neuronas virtuales?
Charlie Parker
@CharlieParker En términos de número de parámetros, un sesgo por filtro es igual a un sesgo por neurona. Hay algunas formas equivalentes de ver la arquitectura de un mapa de características de CNN. Una sería la capa "completamente expandida" con un gran número de neuronas que comparten los mismos parámetros. Otra sería pensar en cada filtro convolucional como una descripción de las conexiones locales de una sola neurona, y la capa usa repetidamente esta misma neurona. Así que creo que probablemente tengamos la misma definición de neurona, pero la respuesta describe las cosas desde una sola perspectiva.
Neil Slater
Interesante, supongo que piensas en cada neurona para cada filtro, estaba pensando por alguna razón en cada activación para cada neurona, pero el filtro se activa en muchos lugares de la imagen, así que, por supuesto, tenía muchas más neuronas en mente.
Charlie Parker
1

Es propiedad de las CNN que utilizan pesos y sesgos compartidos (mismos pesos y sesgos para todas las neuronas ocultas en una capa) para detectar la misma característica. Esto conduce a un aprendizaje más profundo en comparación con las redes neuronales simples. Puedes leer esto como referencia:

http://deeplearning.net/tutorial/lenet.html
http://neuralnetworksanddeeplearning.com/chap6.html#introducing_convolutional_networks

enterML
fuente
Estoy haciendo una pregunta diferente. Mi pregunta es sobre el sesgo. A partir de la fórmula, parece que para cada mapa de características hay diferentes pesos, pero se utiliza el mismo sesgo en todos los mapas de características.
usuario