[Esta pregunta también se planteó en [desbordamiento de pila]](https://stackoverflow.com/questions/26216082/convolutional-neural-networks-arent-the-central-neurons-over-represented-in-th)
La pregunta, en resumen, es la siguiente
Estoy estudiando las redes neuronales convolucionales, y creo que estas redes no tratan cada neurona de entrada (píxel/parámetro) de forma equivalente. Imaginemos que tenemos una red profunda (muchas capas) que aplica la convolución sobre alguna imagen de entrada. Las neuronas en el "medio" de la imagen tienen muchos caminos únicos hacia muchas neuronas de capas más profundas, lo que significa que una pequeña variación en las neuronas del medio tiene un fuerte efecto en la salida. Sin embargo, las neuronas del borde de la imagen sólo tienen $1$ manera (o, dependiendo de la implementación exacta, del orden de $1$ ) vías en las que su información fluye a través del gráfico. Parece que éstas están "infrarrepresentadas".
Me preocupa esto, ya que esta discriminación de las neuronas de borde escala exponencialmente con la profundidad (número de capas) de la red. Ni siquiera añadiendo una capa de agrupación máxima se detendrá el aumento exponencial, sólo una conexión completa pone a todas las neuronas en igualdad de condiciones. Sin embargo, no estoy convencido de que mi razonamiento sea correcto, así que mis preguntas son:
- ¿Estoy en lo cierto de que este efecto tiene lugar en las redes convolucionales profundas?
- ¿Hay alguna teoría sobre esto, se ha mencionado alguna vez en la literatura?
- ¿Hay formas de superar este efecto?
Como no estoy seguro de que esto ofrezca suficiente información, me explayaré un poco más sobre el planteamiento del problema, y por qué creo que es una preocupación.
Explicación más detallada
Imagina que tenemos una red neuronal profunda que toma una imagen como entrada. Supongamos que aplicamos un filtro convolucional de $64\times 64$ píxel sobre la imagen, donde desplazamos la ventana de convolución en $4$ píxeles cada vez. Esto significa que cada neurona en la entrada envía su activación a $16 \times 16 = 265$ neuronas en la capa $2$ . Cada una de estas neuronas puede enviar su activación a otra $265$ de tal manera que nuestra neurona superior está representada en $265^2$ neuronas de salida, y así sucesivamente.
Sin embargo, esto no es cierto para las neuronas de los bordes: éstas podrían estar representadas sólo en un pequeño número de ventanas de convolución, lo que hace que se activen (del orden de) sólo $1$ neurona en la siguiente capa. Utilizar trucos como el reflejo a lo largo de los bordes no ayudará a esto: las neuronas de la segunda capa a las que se proyectará siguen estando en los bordes, lo que significa que las neuronas de la segunda capa estarán infrarrepresentadas (limitando así la importancia de nuestras neuronas de los bordes también). Como se puede ver, esta discrepancia escala exponencialmente con el número de capas.
He creado una imagen para visualizar el problema, que se puede encontrar aquí (no se me permite incluir imágenes en el propio post). Esta red tiene una ventana de convolución de tamaño $3$ . Los números junto a las neuronas indican el número de vías hasta la neurona más profunda. La imagen recuerda a Triángulo de Pascal .
https://www.dropbox.com/s/7rbwv7z14j4h0jr/deep_conv_problem_stackxchange.png?dl=0
¿Por qué es un problema?
Este efecto no parece ser un problema a primera vista: en principio, los pesos deberían ajustarse automáticamente de manera que la red haga su trabajo. Además, los bordes de una imagen no son tan importantes en el reconocimiento de imágenes. Puede que este efecto no se note en las pruebas diarias de reconocimiento de imágenes, pero me sigue preocupando por dos razones: 1. la generalización a otras aplicaciones, y 2. problemas que surgen en el caso de muy redes profundas.
1. Puede haber otras aplicaciones, como el reconocimiento del habla o del sonido, en las que no es cierto que las neuronas más centrales sean las más importantes. La aplicación de la convolución se hace a menudo en este campo, pero no he podido encontrar ningún artículo que mencione el efecto que me preocupa.
2. Las redes muy profundas notarán un exponencialmente mal efecto de la discriminación de las neuronas límite, lo que significa que las neuronas centrales pueden estar sobrerrepresentadas en varios órdenes de magnitud (imaginemos que tenemos $10$ capas de tal manera que el ejemplo anterior daría $265^{10}$ formas en que las neuronas centrales pueden proyectar su información). A medida que se aumenta el número de capas, se llega a un límite en el que los pesos no pueden compensar este efecto.
Ahora imagina que perturbamos todas las neuronas en una pequeña cantidad. Las neuronas centrales harán que la salida cambie más fuertemente en varios órdenes de magnitud, en comparación con las neuronas del borde. Creo que para aplicaciones generales, y para redes muy profundas, habría que encontrar formas de evitar mi problema