Propagación inversa a través de capas de agrupación máxima

13

Tengo una pequeña subpregunta a esta pregunta .

Entiendo que cuando se propaga hacia atrás a través de una capa de agrupación máxima, el gradiente se enruta de manera que la neurona en la capa anterior que se seleccionó como máxima obtiene todo el gradiente. De lo que no estoy 100% seguro es de cómo el gradiente en la siguiente capa se enruta de nuevo a la capa de agrupación.

Entonces, la primera pregunta es si tengo una capa de agrupación conectada a una capa completamente conectada, como la imagen a continuación.

Ejemplo 1

Al calcular el gradiente de la "neurona" cian de la capa de agrupación, ¿sumo todos los gradientes de las neuronas de la capa FC? Si esto es correcto, ¿entonces cada "neurona" de la capa de agrupación tiene el mismo gradiente?

Por ejemplo, si la primera neurona de la capa FC tiene un gradiente de 2, la segunda tiene un gradiente de 3 y la tercera un gradiente de 6. ¿Cuáles son los gradientes de las "neuronas" azules y púrpuras en la capa de agrupamiento y por qué?

Y la segunda pregunta es cuando la capa de agrupación está conectada a otra capa de convolución. ¿Cómo calculo el gradiente entonces? Vea el ejemplo a continuación.

ejemplo2

Para la "neurona" superior derecha de la capa de agrupación (la delineada en verde), simplemente tomo el gradiente de la neurona púrpura en la siguiente capa conv y la dirijo hacia atrás, ¿verdad?

¿Qué tal el verde lleno? ¿Necesito multiplicar la primera columna de neuronas en la siguiente capa debido a la regla de la cadena? ¿O necesito agregarlos?

Por favor, no publique un montón de ecuaciones y dígame que mi respuesta está ahí porque he estado tratando de entender las ecuaciones y todavía no lo entiendo perfectamente, por eso estoy haciendo esta pregunta de una manera simple. camino.

Majster
fuente
Con respecto a su primera pregunta, la propagación hacia atrás es ver qué pesos e insumos influyen en su pérdida de qué manera. En caso de agrupación máxima, solo el máximo de las neuronas influye en la salida (excepto cuando hay un empate). Por lo tanto, solo propague el error a la neurona que tuvo el valor de activación máximo.
Jan van der Vegt
Sí, entiendo esto y también lo dije en un resumen al comienzo de mi publicación. Pero no entiendo cómo "combino" el gradiente de las neuronas de la siguiente capa para propagarse. Espero que sepas lo que quiero decir.
Majster

Respuestas:

5

Si esto es correcto, ¿entonces cada "neurona" de la capa de agrupación tiene el mismo gradiente?

No. Depende de los pesos y la función de activación. Y lo más típico es que los pesos sean diferentes desde la primera neurona de la capa de agrupación hasta la capa de FC como desde la segunda capa de la capa de agrupación hasta la capa de FC.

Por lo general, tendrá una situación como:

FCyo=F(jWyojPAGj)

FCyoPAGjFW los pesos.

Esto significa que el gradiente con respecto a P_j es

solrunre(PAGj)=yosolrunre(FCyo)FWyoj

Lo cual es diferente para j = 0 o j = 1 porque W es diferente.

Y la segunda pregunta es cuando la capa de agrupación está conectada a otra capa de convolución. ¿Cómo calculo el gradiente entonces?

No importa a qué tipo de capa está conectado. Es la misma ecuación todo el tiempo. Suma de todos los gradientes en la siguiente capa multiplicada por cómo la neurona de la capa anterior afecta la salida de esas neuronas. La diferencia entre FC y Convolución es que en FC todas las neuronas de la capa siguiente proporcionarán una contribución (aunque sea pequeña), pero en Convolución la neurona de la capa anterior no afecta en absoluto a la mayoría de las neuronas de la capa siguiente. es exactamente cero

Para la "neurona" superior derecha de la capa de agrupación (la delineada en verde), simplemente tomo el gradiente de la neurona púrpura en la siguiente capa conv y la dirijo hacia atrás, ¿verdad?

Correcto. Además, también el gradiente de cualquier otra neurona en esa capa de convolución que toma como entrada la neurona superior derecha de la capa de agrupación.

¿Qué tal el verde lleno? ¿Necesito multiplicar la primera columna de neuronas en la siguiente capa debido a la regla de la cadena? ¿O necesito agregarlos?

Agregalos.Por la regla de la cadena.

metrounXsolrunre(PAGRj)

solrunre(PAGRj)=yosolrunre(PAGyo)FWyoj

F=yoreF=0 0F=1F=0 0

solrunre(PAGRmetrounXnortemituronorte)=yosolrunre(PAGyo)Wyo metrounX nortemituronorte

solrunre(PAGRothmirs)=0.

patapouf_ai
fuente