Una capa de red convolucional es una capa totalmente conectada en la que se cumplen dos cosas:
- se eliminan ciertas conexiones; lo que significa que sus pesos son forzados a ser constantes cero. Así que puedes ignorar estas conexiones/pesos
- cada uno de los pesos no nulos se comparte entre múltiples conexiones, es decir, entre múltiples pares de neuronas de entrada/salida
Cuando un peso se comparte entre conexiones, la actualización del gradiente para ese peso es la suma de los gradientes de todas las conexiones que comparten el mismo peso.
Así que mirando sus preguntas:
¿O se supone que se actualiza cada peso (cada valor en el filtro 2x2) individualmente por su propio gradiente como en una red neuronal artificial normal ANN?
Cada peso se actualiza igual que en una "ann normal", por lo que interpreto que se trata de una capa totalmente conectada, o "densa", o "lineal", ¿no? Sin embargo, como se ha dicho, la actualización aplicada a cada uno de los pesos será la suma de los gradientes de todas las conexiones que comparten ese peso.
El delta de 2x2 se retropropaga en un filtro de 2x2 que crea una cuadrícula de 3x3 del cambio en los pesos Si se supone que se suman esos 9 valores y luego se añaden al filtro original de 2x2 en todas las posiciones, simplemente cambiará cada valor en el filtro de 2x2 en la misma cantidad y en las mismas direcciones. ¿Es esa la forma correcta de actualizar los pesos en una CNN?
Los gradientes "vuelven" al lugar de donde proceden. En el paso hacia delante, cada peso del "núcleo" de la CNN se utilizará para calcular la salida de múltiples conexiones. En el paso hacia atrás, los gradientes "fluyen hacia atrás", a lo largo de esas mismas conexiones, hacia los pesos de origen.
En el peor de los casos, en lugar de pensar en la CNN como algo mágico, se puede, como se ha dicho, considerar que una CNN es una capa estándar totalmente conectada/lineal, con muchas conexiones/pesos forzados a ser cero, y los pesos restantes compartidos entre múltiples conexiones. Entonces, puedes usar tu conocimiento existente para las capas completamente conectadas / lineales, para manejar la capa CNN.
Como antecedentes, algunos objetivos/motivaciones conceptuales de una capa CNN en comparación con una capa totalmente conectada son:
- impone una prioridad en la adyacencia. Dado que los píxeles de las imágenes tienden a tener más correlación y relaciones con los píxeles adyacentes, por lo que mantenemos sólo las conexiones entre los píxeles de entrada/salida adyacentes, y eliminamos las demás conexiones
- en parte para eliminar los parámetros, para evitar el sobreajuste, y en parte porque queremos imponer una prioridad en la invariabilidad a la traslación, compartimos los pesos de tal manera que los píxeles de entrada en una región darán resultados idénticos, sin importar en qué parte de la imagen se encuentren, pero simplemente trasladados en la imagen de salida